问题描述
我正在用Python编写一个函数,在其中接受用户输入并对其进行验证。稍后,我使用return将其保存到变量中。 但是在调用变量后,它说变量未定义。
def user_input():
position = 'wrong'
position_range = range(1,10)
within_range = False
while position.isdigit == False or within_range == False:
position=input('select the postion from (1-10): ')
if position.isdigit()==False:
print('hey! thats not a valid input')
elif position.isdigit()==True:
if int(position) in position_range:
within_range=True
else:
print('hey! thats out of range')
within_range=False
return int(position)
user_input()
print(position)
解决方法
函数外部没有位置变量,因此代码无法识别它。
你必须
print(user_input())
在代码末尾获得所需的结果,或更明确地说,您可以将user_input()的结果分配给变量并打印出来
x=user_input()
print(x)
,
由于范围有限,您无法在函数外部访问变量位置。变量的范围在函数user_input()
中,并且只能在其中访问。要在外部访问它,您需要执行以下操作:
position = user_input()
print(position)
,
返回工作的方式是您可以执行以下操作:
variable = function()
无论function()返回什么,都将分配给该变量。 您应该执行以下操作:
position = user_input()
print(position)
顺便说一句,我建议对位置使用不同的名称,因为它也在函数内部使用,但是由于该位置是在函数内部定义的,因此它仅存在于函数的作用域中,并且与位置不同外。因此,您应该使用不同的名称。