擅长:python、mysql、java
<p>您可以使用<a href="http://docs.python.org/3/library/stdtypes.html#str.isdigit" rel="nofollow">str.isdigit()</a>来完成此操作。根据文档,isdigit()接受兼容的上标数字,如\u0660123。但是python3的input()转义了这种类型输入的反斜杠,因此这些字符串不会引起任何问题。在</p>
<pre><code>while True:
n = input("How many numbers to sum up?: ")
if n.isdigit() and int(n) > 0:
break
else:
print("You have to write a positive integer; try again!")
squares = (i**2 for i in range(1,int(n)+1))
s = 0
for integer in range(1,int(n)+1):
nextsquare = next(squares)
s += nextsquare
print(integer, "*", integer, '=', nextsquare, sep='')
print('Sum', s)
</code></pre>