def check(x):
global username
while True:
if x.isalpha():
break
else:
x = input("Please type your name with letters only!: ")
continue
username = input("? ")
check(username)
print (username)
我有这个代码的问题,如果第一个用户输入不是alpha,程序将再次询问用户的输入,直到用户只使用字母输入正确的输入。但是,当我在(用户名)变量中打印值后,即使输入错误,他也会得到第一个用户的输入,并且他已经在函数check()中更改了它。我试图使用许多解决方案,但它没有奏效。我认为这是一个与全局变量有关的问题,尽管我已经将(用户名)变量设置为全局变量。如果有人对此问题有任何解决方法,请帮助我。更改参数(x)函数内的全局变量的值:
在功能末尾输入'username = x' – tdelaney
谢谢您的解答和快速回复。如果我不想为(用户名)变量使用其他变量的函数,该怎么办?例如,我想在(SureName)变量上应用相同的函数。 –
可能的重复[如何通过引用传递变量?](http://stackoverflow.com/questions/986006/how-do-i-pass-a-variable-by-reference) – Barmar