1

我创建了一个素数生成器,并希望用户指定生成的素数的数量。我想知道如何将“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
4

1 回答 1

3

首先,将 替换5000为变量(例如,primes_to_generate)。然后在循环之前,while通过调用int. 会将其从字符串转换为数字,从而修复您的错误raw_inputint

primes_to_generate = int(raw_input("How many to generate? "))

try如果有人输入“90”而不是“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.
于 2013-02-10T00:23:02.143 回答