我正在从代码学院学习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)
答案 0 :(得分: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
尚未在您的函数之外定义,因此您应首先定义该变量或使用litteral值调用该变量:
thing = 42
distance_from_zero(thing)
# or
distance_from_zero(42)
答案 1 :(得分: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:
将永远转到True
,因为它是if (type(thing) != int) or float
。将其更改为if not isinstance(thing, (int, float)):
。
答案 2 :(得分:1)
thing
未定义?
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)