我目前正在使用Python 3.3.0编写一个程序,它打印出n个第一个方形数字并最终打印出它们的总和。条件是用户只能计算大于零的整数项。这里是代码:检查输入是否是一个循环中的字符串
print("WELCOME!")
n = input("How many numbers to sum up?: ")
while n <= 0:
print("You have to write a positive integer; try again!")
n = input("How many numbers to sum up?: ")
i = 1
sum = 0
while 0 < i <= n:
print(i,"*",i,"=", i**2)
sum += i**2
i += 1
print("Sum:", sum)
现在,我设法编写错误消息,当用户键入一个负数。但是,在用户键入字符串时(例如“十五”),编码错误消息时遇到困难。
我希望程序允许用户尝试一次又一次地赋值'n'的值,就好像他们输入了一个负数;基本上我想编写一个循环,如果用户输入一个字符串,就会一遍又一遍地询问相同的事情。
问题是input()总是将一个字符串赋值给一个任意变量,所以我试图编写将字符串转换为整数的代码。当用户输入一个整数值时它工作正常,但是如果'n'不是整数,它不能定义int(n)。
我在这个问题上搜索了很多,我发现了一些使用try和except ValueError的例子,但是他们都没有能够创建一个循环。
有人有想法吗?
您还可以看看['ast.literal_eval'(http://docs.python.org/2/library/ast.html#ast.literal_eval) – Bakuriu 2013-02-10 07:36:47