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

10-12 17:02
查看更多