为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

BIG阳 2021-09-11 13:37:57
我正在编写一个程序,它是一个刽子手游戏,除了如何显示刽子手之外,所有东西都已关闭。我不会在这里发布我的整个代码,只是回答问题的要点。每次用户猜错字母时,就会显示这些人中的一个。每次他们猜错时,都会显示列表中的下一个。以下是刽子手名单:hangmen=['''____________________        |  /       | /       |/       |       |       |   ____|________________''','''____________________            |  /     |       | /     (_)       |/            |             |              |         ____|________________''','''____________________           |  /     |      | /     (_)      |/       |      |        |       |             |         ___|________________''','''____________________      |  /     |      | /     (_)      |/      /|\      |      / | \      |      |   ___|________________''','''____________________      |  /     |      | /     (_)      |/      /|\      |      / | \      |       / \      |      /   \   ___|________________''']到目前为止,这是我的系统,用于正确/不正确的字母,非常非常简化words=['cat', 'dog', 'mouse']word=random.choice(words).lower()attempts = 7for 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 次尝试,我怎么能继续显示最后一个刽子手,而不会崩溃?
查看完整描述

2 回答

?
慕后森

TA贡献1802条经验 获得超5个赞

我会使用iter()


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

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

lasthangman = hangmen[len(hangmen)-1]

hangmen = iter(hangmen)

attempts = 7

for 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循环结束之前正确猜出了所有字母,会发生什么?


查看完整回答
反对 回复 2021-09-11
?
绝地无双

TA贡献1946条经验 获得超4个赞

您可以保留一个变量,只要用户错过了一个问题,就会添加一个变量,例如:


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

misses = 0

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

attempts = 7

for 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])

这将打印列表中具有变量未命中索引的项目


查看完整回答
反对 回复 2021-09-11
  • 2 回答
  • 0 关注
  • 141 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信