【问题标题】:Need help making a while loop with an nested if work需要帮助使用嵌套的 if 工作进行 while 循环
【发布时间】:2022-01-30 03:07:55
【问题描述】:

这是代码块。它通过此代码并打印例如“玩家 1 开始”,但随后它返回到 while 循环并要求我在终端中再次说出正面或反面。我不明白为什么。

def turn_decider():
    n = 0
    print("Let's flip a coin to see who goes first!")
    sleep(1)
    while n == 0:
        coin_flip_guess = input("Heads or tails player 1? ").lower()
        heads_tails = ["heads", "tails"]
        if coin_flip_guess not in heads_tails:
            print("Say heads or tails!")
        elif coin_flip_guess in heads_tails:
            break
    mini_dic = {1: "heads", 2: "tails"}
    headsortails = mini_dic[randint(1, 2)]
    if coin_flip_guess == headsortails:
        print("Player 1 starts")
        person = "Player 1"
    elif coin_flip_guess != headsortails:
        print("Player 2 starts")
        person = "Player 2"
        return person

turn_decider()

【问题讨论】:

  • 不清楚这两个代码块是如何连接的。
  • 它是一个函数。它没有任何属性,但都是正面或反面游戏的功能,最终成为刽子手游戏的一部分。正面或反面就是看谁先走。
  • 您能否编辑您的问题以显示定义函数的代码,因为如果整个是函数,则缩进暗示嵌套函数或缩进错误??
  • 当然,让我再次打开我的电脑 1 秒
  • 好的,@InhirCode 已编辑,我想我也应该提一下,while 循环是检查用户是否输入了正面或反面,而不是随机的。

标签: python while-loop


【解决方案1】:

return person 在逻辑上应该被嵌入到第二个elif 之外。

因此player = turn_decider() 将是一个完整的调用。返回while循环的问题可能是因为你不止一次调用turn_decider???

【讨论】:

    猜你喜欢
    • 2013-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多