значение переменной не меняется в python - PullRequest
0 голосов
/ 10 июля 2020
def type_():
    z = input("enter an integer : \n")
    try:
        z = int(z)
        a = 1
    except:
        print("it is not an integer")
        a = 0
    return z,a
z,a = type_()
print (z,a)
while a == 0:
    type_()

# код работает нормально, но проблема в том, что когда я ввожу не целое число, в то время как l oop возвращается наверх, но значение «а» не меняется после этого, даже когда я ввожу целое число, l oop работает бесконечно ... Пожалуйста, помогите, заранее спасибо

Ответы [ 3 ]

0 голосов
/ 10 июля 2020

Вы не меняете a внутри l oop, вам нужно устанавливать значения z и a каждый раз, когда вы запускаете l oop:

while a == 0:
    z, a = type_()
0 голосов
/ 10 июля 2020
def type_():
    z = input("enter an integer : \n")
    try:
        z = int(z)
        a = 1
    except:
        print("it is not an integer")
        a = 0
    return z,a
z,a = type_()
print (z,a)
while a == 0:
    z, a = type_() # You forgot to overide the a variable
0 голосов
/ 10 июля 2020

Проблема в том, что вы назначаете имя a в глобальной области только один раз. Имена не обновляются волшебным образом, они не знают, как и когда их следует (пере) назначать самостоятельно.

Переназначить a при вызове type_ в while l oop .

while a == 0:
    z, a = type_()
...