Я решил изучить python, и я выбрал книгу «Книга python», чтобы сделать это, но я столкнулся с проблемой при кодировании одной из программ упражнений, я делаю программу, которая показывает, как работают структуры управления, но он застревает в цикле while, я думаю, что это потому, что логическая переменная (isint) не устанавливает значение true, поэтому она просто застряла там, но я не уверен, потому что я новичок в программировании ,Проблемы, возникающие при использовании python (новое для программирования)
#!/usr/bin/env python2
import sys
target_int=raw_input("How many integers? ")
try:
target_int=int(target_int)
except ValueError:
sys.exit("You must enter an integer")
ints=list()
count=0
while count<target_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
print("Using a for loop")
for value in ints:
print(str(value))
print("Using a while loop")
total=len(ints)
count=0
while count<total:
print(str(ints[count]))
count+=1
Я хотел бы получить этот результат каждый раз, когда я запустил программу:
[email protected]:~/Python$ ./construct.py
How many integers? 1
Please enter integer1:2
Please enter integer1:3
Please enter integer1:4
Please enter integer1:4
Please enter integer1:23
Please enter integer1:13
Как вы можете видеть, независимо от того, что я ставлю там цикл в то время как только продолжает идти.
Вы никогда не измените 'isint', поэтому он всегда будет 'false'. Поэтому оператор 'if' никогда не будет выполнен, то есть' count' никогда не будет изменен, что означает, что цикл 'while' будет работать вечно. – MattDMo
Да, я подумал об этом, но, будучи полным новичком на этом языке, я думал, что было бы хорошо оставить его таким, потому что так оно и было написано в книге, кроме того, он сказал, что как только заявление о завершении закончится, он собирался Станьте верным –