0

我是 Python 编程的新手。我在其中一个练习中遇到了问题,想不出出路。所以,我必须检查输入是“int”还是“float”并返回它的绝对值。否则会出现错误消息。我选择使用“raw_input()”来接受用户的输入,但问题是它接受输入作为字符串。再说一次,我是 Python 新手,所以如果这个问题看起来很愚蠢,请原谅,但我真的需要帮助。我也添加了问题和我的代码。谢谢!!

问题:

这是一个两部分:首先,使用一个参数定义一个函数 distance_from_zero(选择您喜欢的任何参数名称)。其次,让该函数执行以下操作:检查它接收的输入的类型。如果类型是 int 或 float,则函数应返回函数输入的绝对值。如果类型是任何其他类型,则函数应返回“这不是整数或浮点数!”

代码:

def distance_from_zero(n):
    n=raw_input("Please enter a number:")
    if type(n)==int or type(n)==float:
        print abs(n)
    else:
        print "This isn't an integer or a float!"
4

6 回答 6

3

这里有一些问题可以让你像程序员一样思考这个问题。

  1. 当您尝试将一串非数字转换为 时会发生什么int
  2. 当您尝试将类似整数的字符串转换为 a 时会发生什么int
  3. 当您尝试将类似浮点的字符串转换为 时会发生什么int
  4. 当您尝试将 float-like-string 转换为 a 时会发生什么float
于 2012-10-19T16:15:22.967 回答
2

根据作业的措辞,我认为您根本不需要从用户那里获得输入。 n已经是函数的参数,所以只需检查传入的值而不用覆盖它n=raw_input("Please enter a number:")。然后只需调用具有不同参数类型的函数。

于 2012-10-19T16:11:42.733 回答
1
try:
    float(n)
except Exception:
    //not a float

尝试类似的方法让你开始。

于 2012-10-19T16:12:47.250 回答
0

尝试:

def distance_from_zero(n):
    if type(n) == int or type(n) == float:
        return abs(n)
    else:
        return "Nope"
于 2014-06-09T01:16:47.170 回答
0

你需要让它返回而不是打印你的结束语句

于 2015-05-03T04:19:57.173 回答
0
def distance_from_zero(n):
if type(n) == int or type(n) == float:
    return abs(n)
else:
    return("Nope")
于 2017-07-23T04:45:17.367 回答