Python 中的简单“if”语句

Jus*_*tin 1 python if-statement

我很难让这个简单的 if 语句起作用。我正在尝试使用“if”语句将字符串打印一定次数

x = 0
if x < 9:
    print "this works"
    x = x + 1
else:
    print "this doesn't work"
Run Code Online (Sandbox Code Playgroud)

上面代码的结果是它只打印了一次“this works”。我希望将 1 添加到 x 直到 x 达到 9 并且该语句不再正确。

有人能帮我一下吗?

Cra*_*sta 5

我认为你要的是一个 while 语句。尝试这个:

x = 0
while x < 9:
    print "this works"
    x = x + 1

print "this doesn't work"
Run Code Online (Sandbox Code Playgroud)

if 语句不循环。你可以从英语的意义上来理解:

  • “如果某事是真的,那么做其他事情做一些不同的事情” - 在这个陈述中没有暗示多次做某事。
  • “虽然有些事情是真的,但做事。” - 这里的“while”表示某事可能发生多次。

其他方法:

如果您想要做的只是遍历值 x 0-9 的内容,那么 for 循环会很好地工作:

for x in range(9):
    print "this works"
print "this doesn't work"
Run Code Online (Sandbox Code Playgroud)

在这种情况下,range(9)可以替换range(start_value, stop_value+1)为更通用。这是更典型的做法,我建议这样做只是因为它听起来最像你想的那样。

其它的办法:

x = 0
while True:
    if x < 9:
        print "this works"
        x = x + 1
    else:
        print "this doesn't work"
        break
Run Code Online (Sandbox Code Playgroud)

基于亚当的解决方案。通常不用于可以轻松计算出结束条件的情况,但在结束条件不是很明显的情况下很有用。目前想不出任何适合此用例的具体示例。这是对 do 的替代dummy_var = Truewhile dummy_var:然后设置dummy_var = False何时要转储。