我正在尝试编写最简单的代码来连续打印出完美的正方形。到目前为止,我的代码是这样的
x = 1
y = 1
while True:
final = x * y
print final
x = x + 1
y = y + 1
当我运行它时,我得到一个语法错误。红色位在“print final”中的“final”上
抱歉,如果这是一个非常基本的错误,但我很难过。
感谢您抽时间阅读
我正在尝试编写最简单的代码来连续打印出完美的正方形。到目前为止,我的代码是这样的
x = 1
y = 1
while True:
final = x * y
print final
x = x + 1
y = y + 1
当我运行它时,我得到一个语法错误。红色位在“print final”中的“final”上
抱歉,如果这是一个非常基本的错误,但我很难过。
感谢您抽时间阅读
我假设您使用的是 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)
在 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
如果您还没有,我会推荐使用 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
希望这有帮助!杰克。