【发布时间】:2020-11-06 06:18:56
【问题描述】:
我正在尝试编写一个程序,该程序将使用单独的函数确定投掷到空中的球的最大高度,每个函数都会接受输入,确定它是否有效,然后计算高度。我让前两个工作,但 maxHeight 函数将返回一个 NameError 说明它或其中一个参数未定义。我知道输入函数中的值没有被传递。提前感谢您的帮助。
def isValid(h, v):
if h and v > -1:
pass
else:
print("Please enter a nonnegative number")
getInput()
def getInput():
h = int(input("Enter initial height of the ball:"))
v = int(input("Enter initial velocity of the ball:"))
isValid(h, v)
return (h, v)
def maxHeight(h, v):
height = h
velocity = v
maximum = height + (velocity / 32)
return maximum
print(getInput())
print(maxHeight(h, v))
示例输入和回溯
Enter initial height of the ball:5
Enter initial velocity of the ball:5
(5, 5)
Traceback (most recent call last):
File ".\test.py", line 23, in <module>
print(maxHeight(h,v))
NameError: name 'h' is not defined
【问题讨论】:
-
请在问题中还包括使用的输入值和错误的回溯。如果需要,它将帮助人们找到问题,并帮助人们写下答案。
-
不用修改答案,可以在答案下面写cmets
-
关于
isValid函数在全局范围内没有定义h和v的问题:这是不可能的。也许您正在使用某种交互式 shell(IPython、Jupyter notebook、Spyder 等),并且在测试代码时您在全局中有h和v。
标签: python function parameter-passing