我正在尝试编写最简单的代码,以便不断打印出Perfect Squares。我的代码到目前为止读了这个
x = 1
y = 1
while True:
final = x * y
print final
x = x + 1
y = y + 1
当我运行它时,我收到语法错误。红色位在“打印最终”中的“最终”
道歉,如果这是一个非常基本的错误,但我很难过。
感谢您抽出宝贵时间阅读本文
答案 0 :(得分: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
OR 使用for
循环。
for i in range(10):
print(i**2)
答案 1 :(得分:2)
在Python 3中,print
is no longer a statement but a function,所以你必须在括号中包含你想要打印的内容:
print(final)
Here's关于该功能的链接。
你也有一个IndentationError,y = y + 1
应该有一个空格。
您可以将其简化为y += 1
(就整数而言,这是相同的事情)
您还可以为while循环添加条件:
x = 0
while x < 5:
print x ** 2
x += 1
打印:
0
1
4
9
16
答案 2 :(得分: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
希望这有帮助! 杰克。