我是python的新手,正在尝试编写代码以打印所有平方数,直到用户输入所需值的平方为止。
n = raw_input("Enter number")
a=1
while a < n:
a=1
print a*a
a += 1
if a > n:
break
当我运行此代码时,它无限地打印“ 1”……我猜想
a
的值不会增加+=
,所以永远是a=1
。我该如何解决? 最佳答案
有一些问题。首先,您的输入(raw_input()
返回的内容)是一个字符串,因此必须将其转换为整数:
n = int(raw_input(...))
其次,您要在每次迭代中设置
a = 1
,因此,由于循环条件为a < n
,因此循环将永远运行(如果n > 1
)。您应该删除该行a = 1
最后,不必检查
a > n
是否是必需的,因为循环条件会处理它:while a < n:
print a * a
a += 1
# 'if' is not necessary
关于python - Python中的平方数序列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22304562/