0

我正在尝试编写最简单的代码来连续打印出完美的正方形。到目前为止,我的代码是这样的

x = 1
y = 1
while True:
    final = x * y
    print final
    x = x + 1
   y = y + 1

当我运行它时,我得到一个语法错误。红色位在“print final”中的“final”上

抱歉,如果这是一个非常基本的错误,但我很难过。

感谢您抽时间阅读

4

3 回答 3

5

我假设您使用的是 Python 3。print现在是 Python 3 中的一个函数。

print(final)而不是print final.

x此外,您的价值观和y价值观似乎是一样的。为什么不丢弃其中一个而只使用一个呢?

x = 1
while True:
    final = x * x
    print(final)
    x = x + 1

或者更好的是,使用内置的幂运算符**

x = 1
while True:
    final = x **2
    print(final)
    x += 1

此外,您的代码似乎进入了无限循环。你可能需要一个条件break

例如,如果你想在x到达时中断10,只需在循环中添加一个条件while,如下所示:

x = 1
while True:
    final = x **2
    print(final)
    x += 1
    if x == 10:
        break

OR在语句中指定一个条件while,如下所示:

x = 1
while x < 10:
    final = x **2
    print(final)
    x += 1

使用for循环。

for i in range(10):
    print(i**2)
于 2013-07-18T10:53:20.387 回答
2

在 Python 3 中,print不再是语句而是函数,因此您必须将要打印的内容括在括号中:

print(final)

这是有关该功能的链接。


你也有一个 IndentationError,y = y + 1应该给一个空格。

您可以将其简化为y += 1(就整数而言,这是同一件事)


您还可以在 while 循环中添加条件:

x = 0
while x < 5:
    print x ** 2
    x += 1

印刷:

0
1
4
9
16
于 2013-07-18T10:53:10.430 回答
1

如果您还没有,我会推荐使用 Python 3。此外,由于 x 和 y 在任何时候都是相同的值,因此您只需要其中一个。所以不要阅读:

x = 1
y = 1
while True:
    final = x * y
    print final
    x = x + 1
    y = y + 1

你应该写:

x = 1

while True:

    final = x * x

    print(final)

    x = x + 1

希望这有帮助!杰克。

于 2013-07-18T11:31:15.167 回答