你的主要问题是,你没有设置
isint
.但你无论如何都不应该,因为你已经在
try
块因此,如果你达到了这个代码,它必然是一个
int
.2其他一些小事情是,我在运行Python 3,因为它是14年前发布的,所以
raw_input
是
input
,养成用
[]
而不是
list()
.它有时更快,但从不慢下来。
以下是工作代码:
import sys
target_int = input("How many integers?")
try:
target_int = int(target_int)
except ValueError:
sys.exit("You must enter an integer")
ints = []
count = 0
while count < target_int:
new_int = input("Please enter integer {0}:".format(count + 1))
try:
new_int = int(new_int)
except ValueError:
print("You must enter an integer")
continue # so it doesn't try to append
# No need to check isint. It is.
ints.append(new_int)
count += 1
print("Using a for loop")
for value in ints:
print(str(value))
另一个小的改进是避免
count
总之,因为它总是
ints
已经
import sys
target_int = input("How many integers?")
try:
target_int = int(target_int)
except ValueError:
sys.exit("You must enter an integer")
ints = []
while len(ints) < target_int:
new_int = input("Please enter integer {0}:".format(len(ints) + 1))
try:
ints.append(int(new_int))
except ValueError:
print("You must enter an integer")
print("Using a for loop")
for value in ints:
print(str(value))