1

我正在从代码学院学习 python,并且正在尝试完成他们的复习作业。我应该定义一个函数,然后设置一个 if/else 循环来检查我得到的输入类型,然后返回 int/float 的绝对值或错误消息。

我试图查看类似的问题,但我不明白这些代码比我能理解的 O_O 复杂得多。我再次查看了功能模块课程,但我认为我正确地遵循了功能制作模式?在我调用函数之前应该有额外的一行吗?我试图继续前进,但后来我在其他练习中得到了同样的错误消息。

我会很感激任何回应:)

def distance_from_zero(thing):
     thing = input 
     if type(thing) != int or float: 
         return "Not an integer or float!"
     else:
         return abs(thing)
distance_from_zero(thing)
4

3 回答 3

2

您是否尝试使用输入函数从用户那里获取值?如果是这样,您必须为其添加括号:

thing = input()
# If you're using python 2.X, you should use raw_input instead:
# thing = raw_input()

此外,如果您要这样做,则不需要输入参数。

如果您确实input想成为一个参数,那么您会尝试在定义变量之前使用它们。distance_from_zero(thing)无法工作,因为thing尚未在您的函数之外定义,因此您应该先定义该变量或使用文字值调用它:

thing = 42
distance_from_zero(thing)
# or
distance_from_zero(42)
于 2013-07-14T17:40:11.843 回答
1

您没有定义thing. 请试试

def distance_from_zero(thing): 
     if type(thing) != int or float: 
         return "Not an integer or float!"
     else:
         return abs(thing)

thing = 1
distance_from_zero(thing)

或者你的意思是这样,接受用户输入?

def distance_from_zero():
     thing = int(input())
     if type(thing) != int or float: 
         return "Not an integer or float!"
     else:
         return abs(thing)
distance_from_zero()

而且您的代码if type(thing) != int or float:将永远Trueif (type(thing) != int) or float. 将其更改为if not isinstance(thing, (int, float)):.

于 2013-07-14T17:32:33.480 回答
1

thing将其传递给 distance_from_zero 函数时未定义?

def distance_from_zero(input):
     if type(input) != int or float: 
         return "Not an integer or float!"
     else:
         return abs(input)

thing = 5
distance_from_zero(thing)
于 2013-07-14T17:32:36.027 回答