为了账号安全,请及时绑定邮箱和手机立即绑定

如何将一个函数重复 3 次

如何将一个函数重复 3 次

Cats萌萌 2021-07-07 14:01:08
我正在创建这个函数来测试用户输入(作为猜测)是否正确。def check_guess():   letter = "d"   guess = input("What is your guess: ")   if guess.isalpha() == False:       print("This is invalid")   elif guess.lower() > letter:       print("This too high")   elif guess.lower() < letter:       print("this is too low")   else:       print("that is correct")check_guess()所以我创建了这段代码,它没有问题。但是,我现在的任务是必须给用户 3 次尝试。如果用户得到正确答案,则将打印“正确”并结束游戏。但是如果他们在所有 3 次尝试中都失败了,那么它就像“游戏结束”。我如何创建/复制代码以使其能够做到这一点?
查看完整描述

3 回答

?
绝地无双

TA贡献1946条经验 获得超4个赞

使用for循环及其else子句。else只有当您没有跳出循环时,循环的子句才会运行。


首先让您的函数返回一个值来指示用户是否猜对了。否则将很难与之交互:


def check_guess():

    letter = "d"

    guess = input("What is your guess: ")

    if not guess.isalpha():

        print("This is invalid")

        return False

    guess = guess.lower()

    if guess == letter:

        print("that is correct")

        return True

    if guess > letter:

        print("This too high")

    else:

        print("this is too low")

    return False

现在您可以准确地调用该函数 3 次,或者直到用户猜对为止,以先到者为准:


for _ in range(3):

    if check_guess():

        break

else:

    print('you failed')

当check_guess返回True表示成功时,我们break跳出循环,确保else子句不被触发。如果三个迭代完成并且用户从未做出正确的猜测,则触发该子句。


查看完整回答
反对 回复 2021-07-21
?
眼眸繁星

TA贡献1873条经验 获得超9个赞

def check_guess():

   letter = "d"

   guess = input("What is your guess: ")

   if guess.isalpha() == False:

       print("This is invalid")

       return False

   elif guess.lower() > letter:

       print("This too high")

       return False

   elif guess.lower() < letter:

       print("this is too low")

       return False

   else:

       print("that is correct")

       return True


for i in range(0,3):

     status = check_guess()

     If status:

         print(“success”)

         break

else:

     print(“fail”)


查看完整回答
反对 回复 2021-07-21
?
慕侠2389804

TA贡献1719条经验 获得超6个赞

如果用户是对的,您需要返回,如果不是,则增加一个计数器。这样的事情应该工作:


count = 0

while count < 3:

    if check_guess():

        # he's right

        break

    else:

        # he's wrong

        count += 1

if count >= 3:

    print("You lose !")

else:

    print("You win !")


查看完整回答
反对 回复 2021-07-21
  • 3 回答
  • 0 关注
  • 259 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信