簡體   English   中英

每次循環時,如何才能顯示列表的下一項

[英]Each time I go through a loop, how can I get the next item of a list to display

我正在編寫一個程序,它是一個劊子手游戲,除了如何顯示劊子手之外,所有東西都已關閉。 我不會在這里發布我的整個代碼,只是回答問題的要點。 每次用戶猜錯字母時,就會顯示這些人中的一個。 每次他們猜錯時,都會顯示列表中的下一個。 以下是劊子手名單:

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 次嘗試都錯了,我怎么能繼續顯示最后一個劊子手,而不會崩潰?

我會使用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循環結束之前正確猜出了所有字母,會發生什么?

您可以保留一個變量,只要用戶錯過了一個問題,就會添加一個變量,例如:

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

這將打印列表中具有變量未命中索引的項目

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM