Python:无法获得正确的数据类型

时间:2012-10-19 16:08:24

标签: python

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

问题:

这是两个部分:首先,用一个参数定义一个函数distance_from_zero(选择你喜欢的任何参数名称)。 其次,有该功能执行以下操作: 检查它收到的输入类型。 如果类型为int或float,则函数应返回函数输入的绝对值。 如果类型是任何其他类型,则函数应返回“This is not integer or a 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!"

5 个答案:

答案 0 :(得分:3)

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

  1. 当您尝试将一串非数字转换为int时会发生什么?
  2. 当您尝试将类似整数的字符串转换为int时会发生什么?
  3. 当您尝试将类似浮动的字符串转换为int时会发生什么?
  4. 当您尝试将类似浮动的字符串转换为float时会发生什么?

答案 1 :(得分:2)

根据作业的措辞,我认为你根本不需要得到用户的意见。 n已经是函数的参数,因此只需检查传入的值而不用n=raw_input("Please enter a number:")覆盖它。然后只需使用不同的参数类型调用该函数。

答案 2 :(得分:1)

try:
    float(n)
except Exception:
    //not a float

尝试类似的东西让你开始。

答案 3 :(得分:0)

尝试:

def distance_from_zero(n):
    if type(n) == int or type(n) == float:
        return abs(n)
    else:
        return "Nope"

答案 4 :(得分:0)

def distance_from_zero(n):
if type(n) == int or type(n) == float:
    return abs(n)
else:
    return("Nope")