猿问

每次循环时,如何才能显示列表的下一项

我正在编写一个程序,它是一个刽子手游戏,除了如何显示刽子手之外,所有东西都已关闭。我不会在这里发布我的整个代码,只是回答问题的要点。每次用户猜错字母时,就会显示这些人中的一个。每次他们猜错时,都会显示列表中的下一个。以下是刽子手名单:


hangmen=[

'''____________________ 

       |  /

       | /

       |/

       |

       |

       |

   ____|________________''',


'''____________________     

       |  /     |

       | /     (_)

       |/     

       |      

       |       

       |      

   ____|________________''',


'''____________________     

      |  /     |

      | /     (_)

      |/       |

      |        | 

      |       

      |      

   ___|________________''',


'''____________________

      |  /     |

      | /     (_)

      |/      /|\

      |      / | \

      |

      |

   ___|________________''',


'''____________________

      |  /     |

      | /     (_)

      |/      /|\

      |      / | \

      |       / \

      |      /   \

   ___|________________''']

到目前为止,这是我的系统,用于正确/不正确的字母,非常非常简化


words=['cat', 'dog', 'mouse']

word=random.choice(words).lower()

attempts = 7

for i in attempts:


    guess=input("Guess a letter: ")

    if guess in word:

        print('Yup, that letter is in the word.')

    else:

        print('Incorrect.')

底部的 else 应该是展示刽子手的地方。每次用户猜错时如何显示下一个刽子手?另外,由于有 7 次尝试并且只有 5 个刽子手,如果用户猜错了所有 7 次尝试,我怎么能继续显示最后一个刽子手,而不会崩溃?


BIG阳
浏览 157回答 2
2回答

慕后森

我会使用iter()words=['cat', 'dog', 'mouse']word=random.choice(words).lower()lasthangman = hangmen[len(hangmen)-1]hangmen = iter(hangmen)attempts = 7for i in range(attempts):    guess=input("Guess a letter: ")    if guess in word:        print('Yup, that letter is in the word.')    else:        try:            print(next(hangmen))        except StopIteration:            print(lasthangman)每次猜错一个字母时,这将在hangmen 中打印下一个hangman 值,但如果我们用完了hangmen,它将继续打印最后一个hangman。请注意,这仍然是不完整的:如果我在for循环结束之前正确猜出了所有字母,会发生什么?

绝地无双

您可以保留一个变量,只要用户错过了一个问题,就会添加一个变量,例如:words=['cat', 'dog', 'mouse']misses = 0word=random.choice(words).lower()attempts = 7for i in range(attempts):    guess=input("Guess a letter: ")    if guess in word:        print('Yup, that letter is in the word.')    else:        print('Incorrect.')        misses += 1     print(hangmen[misses])这将打印列表中具有变量未命中索引的项目
随时随地看视频慕课网APP

相关分类

Python
我要回答