簡體   English   中英

調用自身內部的函數以使用if語句檢查if輸入,如果if語句永不中斷且無限循環

[英]Calling a function inside itself to check for wrong input with if statement, if statement never breaks and loops indefinitely

我正在寫一個拋硬幣函數,僅接受“ h”和“ t”作為輸入。

為此,我使用一條if語句來檢查輸入是否為“ h”,並在其中嵌套一個以檢查其是否為“ t”。

如果兩個條件都不滿足,它將再次調用該函數。

問題是,即使第一個輸入是“ t”或“ h”,無論我做什么,它仍會調用該函數?

def coin_flip():
    player_coin = raw_input("Choose heads (h) or tails (t)!: ").lower
    if player_coin != "h":
        if player_coin != "t":
            coin_flip()

    coin = randint(1, 2)
    if coin == 1:
        coin = "h"
    else:
        coin = "t"

    if player_coin == coin:
        print "You won the coin toss! You get to go first!"
        player_turn()

    else:
        print "You guessed the wrong answer! The Computer goes first!"
        comp_turn()

無需再次調用該函數,只需將該部分粘在while循環中並滿足以下條件:

player_coin = None
while player_coin not in ('h', 't'):
    player_coin = raw_input("Choose heads (h) or tails (t)!: ").lower()

x in tuple使用x in tuple而不是多次檢查,並確保您正在調用lower()因為它不在您的示例中。

暫無
暫無

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

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