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)
У меня проблема с этим кодом, если первый пользовательский ввод не является альфа, программа будет запрашивать ввод пользователя снова до тех пор, пока пользователь вводит правильный ввод, используя только буквенные буквы. Но когда я печатаю значение внутри переменной (имя пользователя) после этого, я получу вход первого пользователя, даже если это неправильный ввод, и он уже изменил его внутри функции check() :. Я попытался использовать множество решений, но это не сработало. Я думаю, что это проблема, связанная с глобальными переменными, хотя я установил переменную (имя пользователя) в качестве глобальной переменной. Если у кого-нибудь есть решение этой проблемы, пожалуйста, помогите мне.Изменение значения глобальной переменной внутри функции параметра (x):
do 'username = x' в конце функции – tdelaney
Спасибо за ваше решение и быстрый ответ. Что делать, если я хочу использовать функцию для других переменных не только для переменной (username). Например, я хочу применить ту же функцию к переменной (SureName). –
Возможный дубликат [Как передать переменную по ссылке?] (Http://stackoverflow.com/questions/986006/how-do-i-pass-a-variable-by-reference) – Barmar