我是 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
