簡體   English   中英

我如何解決 Python 中讀取過多輸入的問題

[英]How I can solve the read too much input problem in Python

這是我的問題:

你對傳統的“我在想什么數字?”進行了新的改動。 幫助您的堂兄弟學習他們的 7 乘法表的游戲。 編寫一個游戲,讓用戶猜出你正在想的數字(對於這個游戲,數字永遠是 42。)

允許用戶進行 10 次猜測,並出現“錯誤”。 如果他們猜出的數字不是 7 的倍數,則用戶最多只能犯一個錯誤。 否則他們輸了比賽,當比賽結束時。 你應該總是打印出來那很有趣。

這是一個例子:

Guess a multiple of 7: 14
Nope!
Guess a multiple of 7: 32
Mistake! That number isn't a multiple of 7.
Guess a multiple of 7: 28
Nope!
Guess a multiple of 7: 86
Another mistake. Too bad.
That was fun.

這是另一個例子:

Guess a multiple of 7: 7
Nope!
Guess a multiple of 7: 14
Nope!
Guess a multiple of 7: 126
Nope!
Guess a multiple of 7: 133
Nope!
Guess a multiple of 7: 70
Nope!
Guess a multiple of 7: 77
Nope!
Guess a multiple of 7: 63
Nope!
Guess a multiple of 7: 35
Nope!
Guess a multiple of 7: 126
Nope!
Guess a multiple of 7: 77
Nope!
No guesses left!
That was fun.

如果用戶正確輸入 42,您的程序應該打印出 You won,而不是 Nope.:,然后不再要求進行任何猜測。 例如:

Guess a multiple of 7: 42
You won!
That was fun.

現在是我的代碼:

guessCount = 0
mistakeMade = False

while True:
  guess = int(input("Guess a multiple of 7: "))
  if guess % 7 != 0:
    if mistakeMade:
      print("Another mistake. Too bad.")
      break
    else:
      print("Mistake! That number isn't a multiple of 7.")
      mistakeMade = True
  else:
    if guess == 42:
      print("You won!")
      break
    else:
      print("Nope!")
      guessCount += 1
      if guessCount == 10:
        print("No guesses left!")
        break
        
print("That was fun.")

我通過了 Grok Learning 的所有檢查,除了這個錯誤:

測試一個隱藏的案例。 您提交的內容試圖讀取過多的輸入。 這發生在您提交的第 5 行。

我花了很多時間思考它,但它仍然沒有解決問題。 希望得到大家的幫助。 謝謝你。

當一個人犯錯時,您不會增加guessCount 試試這個

wrongGuess = 0
for _ in range(10):
    guess = int(input("Guess a multiple of 7: "))
    if guess % 7 != 0:
        wrongGuess += 1
        if wrongGuess > 1:
            print("Another mistake. Too bad.")
            break
        else:
            print("Mistake! That number isn't a multiple of 7.")
            wrongGuess += 1
    else:
        if guess == 42:
          print("You won!")
          break
        else:
          print("Nope!")
else:
    print("No guesses left!")
        
print("That was fun.")

注意:對於像這樣的有限計數問題,總是嘗試使用for loop

您應該每次都進行遞增並檢查guessCount ,因此將其從if條件中刪除。


[編輯] 舊的無關答案。

可能是:

guess = int(input("Guess a multiple of 7: ").split()[0])

暫無
暫無

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

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