为什么打印语句运行两次?

问题描述 投票:-3回答:2

image of the executed code代码已执行,但打印语句运行了两次。有人可以解释为什么吗?

n = input('you are lost in the woods, turn left or right\n**********\n**********\n:)\n**********\n**********\n')
m = 0
if n == 'right':
    while n == 'right' and m < 2:
        n = input('you are lost in the woods, turn left or right:')
        m += 1
    print('**********\n***    ***\n (/⚬⎯○)/ ∐\n**********\n**********')
if n == 'left':
    print('You got out of the woods')

如果输入是“正确的”三次,我希望第一个打印语句运行。如果输入为“ left”,我希望第二条打印语句运行。

问题是,如果我输入'right',则第三个if块中的print语句第三次执行两次。如果我输入“ left”,则第二个if块中的print语句执行两次。

python control-flow
2个回答
1
投票

这里是正确的代码:

n = input('you are lost in the woods, turn left or right\n**********\n**********\n:)\n**********\n**********\n')
m = 0
if n == 'right':
    while n == 'right' and m < 1:
        n = input('you are lost in the woods, turn left or right:')
        m += 1
    print('**********\n***    ***\n (/⚬⎯○)/ ∐\n**********\n**********')
if n == 'left':
    print('You got out of the woods')

m开头是0,而您确实是

while n == 'right' and m < 2:

-2
投票

哪个打印语句运行两次?从我所看到的,您可以删除一会儿,然后在if语句中检查m < 2

© www.soinside.com 2019 - 2024. All rights reserved.