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