我已经创建了一个素数生成器,并希望用户指定生成的素数的数量。我想知道如何将“1000”更改为raw_input,而程序不会像我们一样向我抛出错误。另外如何将生成的列表保存到.txt文件中?提前致谢
代码:
no_of_primes = 1
candidate = 2
start = 2
list_of_primes = []
while no_of_primes <= 5000:
result = candidate % start
if result > 0:
start +=1
elif result == 0:
if start == candidate:
list_of_primes.append(candidate)
candidate +=1
no_of_primes +=1
start =2
else:
candidate +=1
start = 2
print list_of_primes
答案 0 :(得分:3)
首先,将5000
替换为变量(例如,primes_to_generate
)。然后在while
循环之前,通过在int
的结果上调用raw_input
来设置该变量。 int
会将其从字符串转换为数字,从而修复错误:
primes_to_generate = int(raw_input("How many to generate? "))
您还可以使用try
块来捕获错误,例如,如果有人输入“九十”而不是“90”:
try:
primes_to_generate = int(raw_input("How many to generate? "))
except ValueError:
print "Whoa! That's not a number I know!"
# You'd probably then want to let the user retry
# by enclosing this whole thing in a loop or something.