簡體   English   中英

嗨,我是初學者編碼員。 我面臨着弄清楚如何讓我的程序讀取 2 個 while 循環以便正確地讀取 function 的問題

[英]Hi, I'm a beginner coder. I'm facing a problem of figuring out how do I make my program read 2 of while loops in order to function properly

while userInput in op and userInput != "q":
    score += 1
    no_words += 1
    userInput = input((str(no_words)) + ". ").lower()

while userInput not in op and userInput != "q":
    score += 0
    no_words += 0
    print("Oops! Invalid input")
    userInput = input((str(no_words)) + ". ").lower()

我希望當用戶輸入時,我的程序每次都會讀取這兩個 while 循環,以提供正確的 output。(我正在構建一個游戲,用戶需要列出盡可能多的單詞原詞。)

例如:極端

  1. 遇到
  2. ...
  3. ...

游戲目標:用戶能夠給出的單詞越多,得分就越高。

我認為您誤解了如何應用 while 循環。 我認為此解決方案適用於您的情況,但是我不完全理解您在做什么,因為您的代碼示例中遺漏了此處的一些變量。 邏輯至少應該有效。

while userInput != 'q':
    userInput = input((str(no_words)) + ". ").lower()
    if userInput in op:
       score += 1
       no_words += 1
    else:
       score += 0
       no_words += 0
       

您要做的實際上是將條件嵌套在循環中。

此外,您永遠不需要在“+ 0”中對任何內容進行硬編碼。 如果它沒有改變,您可以簡單地省略該行。


userInput = None
while userInput != 'q':
    userInput = input((str(no_words)) + ". ").lower()
    if userInput in op:
       score += 1
       no_words += 1
    else:
       print('Oops! Invalid Input')
 


編輯:重要的一點是你不能同時運行兩個不同的 while 循環; 第一個在第二個開始時結束,直到您掌握一些更高級的技術。 解決方案是弄清楚如何使用單個 while 循環來訪問當時可能發生的所有不同路徑。

只需要 1 個 while 循環,里面有 if 條件。
另外,我添加了一個列表理解來檢查所有字母是否有效。
這個游戲很有趣..試試下面的代碼:

op = 'extreme'
print('Create as many words as possible (repeat letters are allowed) with this string:', op)
score = 0
inputList = []
userInput = ''

while userInput != 'q':
    userInput = input('Words created {}:'.format(inputList)).lower()
    if all([e in list(op) for e in list(userInput)]) and userInput not in inputList:
        score += 1
        inputList.append(userInput)
    elif userInput != 'q':
        print('Oops! Invalid input')
    
print('Your final score:', score)

預計 output

Create as many words as possible (repeat letters are allowed) with this string: extreme
Words created []: met
Words created ['met']: met
Oops! Invalid input
Words created ['met']: tree
Words created ['met', 'tree']: team
Oops! Invalid input
Words created ['met', 'tree']: q
Your final score: 2

暫無
暫無

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

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