Цикл Python Code-While никогда не заканчивается
Я новичок в Python. Пытаюсь изучить это. Это мой код:
import sys
my_int=raw_input("How many integers?")
try:
my_int=int(my_int)
except ValueError:
("You must enter an integer")
ints=list()
count=0
while count<my_int:
new_int=raw_input("Please enter integer{0}:".format(count+1))
isint=False
try:
new_int=int(new_int)
except:
print("You must enter an integer")
if isint==True:
ints.append(new_int)
count+=1
Код выполняется, но цикл всегда повторяется и не позволяет мне ввести второе целое число.
Выход:
How many integers?3
Please enter integer1:1
Please enter integer1:2
Please enter integer1:3
Please enter integer1:
Могу ли я узнать, что не так с моим кодом? Спасибо
3 ответа
Проблема вашего кода в том, что isint
никогда не меняется и всегда False
таким образом count
никогда не меняется Я предполагаю, что вы хотите, чтобы при вводе действительного целого числа count
иначе ничего не делать count
,
Вот код, isint
флаг не нужен
import sys
while True:
my_int=raw_input("How many integers?")
try:
my_int=int(my_int)
break
except ValueError:
print("You must enter an integer")
ints=list()
count=0
while count<my_int:
new_int=raw_input("Please enter integer{0}:".format(count+1))
try:
new_int=int(new_int)
ints.append(new_int)
count += 1
except:
print("You must enter an integer")
isint должен быть обновлен после утверждения, что ввод был int
ОБНОВЛЕНИЕ: есть еще одна проблема с первой попытки - кроме. Если ввод не был целочисленным, программа должна иметь возможность выйти или вернуть вас к началу. Следующее будет продолжаться до тех пор, пока вы сначала не введете целое число
ints=list()
proceed = False
while not proceed:
my_int=raw_input("How many integers?")
try:
my_int=int(my_int)
proceed=True
except:
print ("You must enter an integer")
count=0
while count<my_int:
new_int=raw_input("Please enter integer{0}:".format(count+1))
isint=False
try:
new_int=int(new_int)
isint=True
except:
print("You must enter an integer")
if isint==True:
ints.append(new_int)
count+=1
Лучший код:
import sys
my_int=raw_input("How many integers?")
try:
my_int=int(my_int)
except ValueError:
("You must enter an integer")
ints = []
for count in range(0, my_int):
new_int=raw_input("Please enter integer{0}:".format(count+1))
isint=False
try:
new_int=int(new_int)
isint = True
except:
print("You must enter an integer")
if isint==True:
ints.append(new_int)