如何让用户指定一个数字而不会让错误回到我身边?

时间:2013-02-10 00:15:08

标签: python python-2.7

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

1 个答案:

答案 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.