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

时间:2019-12-14 17:27:52

标签: python control-flow

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

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语句执行两次。

1 个答案:

答案 0 :(得分: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: