Python 调用自身内部的函数来检查if语句的错误输入,if语句永远不会无限期地中断和循环

Python 调用自身内部的函数来检查if语句的错误输入,if语句永远不会无限期地中断和循环,python,Python,我正在编写一个抛硬币函数,它只接受“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": i

我正在编写一个抛硬币函数,它只接受“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()

不要再次调用该函数,只需将该部分粘贴在
循环中,同时满足以下条件:

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

我在元组中使用了
x
而不是多次检查,并确保您正在调用
lower()
,因为它不在您的示例中。

您可能应该
返回coin\u flip()
@MVChr,谢谢大家