如何将一个函数重复 3 次

我正在创建这个函数来测试用户输入(作为猜测)是否正确。


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 次尝试中都失败了,那么它就像“游戏结束”。


我如何创建/复制代码以使其能够做到这一点?


Cats萌萌
浏览 261回答 3
3回答

绝地无双

使用for循环及其else子句。else只有当您没有跳出循环时,循环的子句才会运行。首先让您的函数返回一个值来指示用户是否猜对了。否则将很难与之交互:def check_guess():&nbsp; &nbsp; letter = "d"&nbsp; &nbsp; guess = input("What is your guess: ")&nbsp; &nbsp; if not guess.isalpha():&nbsp; &nbsp; &nbsp; &nbsp; print("This is invalid")&nbsp; &nbsp; &nbsp; &nbsp; return False&nbsp; &nbsp; guess = guess.lower()&nbsp; &nbsp; if guess == letter:&nbsp; &nbsp; &nbsp; &nbsp; print("that is correct")&nbsp; &nbsp; &nbsp; &nbsp; return True&nbsp; &nbsp; if guess > letter:&nbsp; &nbsp; &nbsp; &nbsp; print("This too high")&nbsp; &nbsp; else:&nbsp; &nbsp; &nbsp; &nbsp; print("this is too low")&nbsp; &nbsp; return False现在您可以准确地调用该函数 3 次,或者直到用户猜对为止,以先到者为准:for _ in range(3):&nbsp; &nbsp; if check_guess():&nbsp; &nbsp; &nbsp; &nbsp; breakelse:&nbsp; &nbsp; print('you failed')当check_guess返回True表示成功时,我们break跳出循环,确保else子句不被触发。如果三个迭代完成并且用户从未做出正确的猜测,则触发该子句。

眼眸繁星

def check_guess():&nbsp; &nbsp;letter = "d"&nbsp; &nbsp;guess = input("What is your guess: ")&nbsp; &nbsp;if guess.isalpha() == False:&nbsp; &nbsp; &nbsp; &nbsp;print("This is invalid")&nbsp; &nbsp; &nbsp; &nbsp;return False&nbsp; &nbsp;elif guess.lower() > letter:&nbsp; &nbsp; &nbsp; &nbsp;print("This too high")&nbsp; &nbsp; &nbsp; &nbsp;return False&nbsp; &nbsp;elif guess.lower() < letter:&nbsp; &nbsp; &nbsp; &nbsp;print("this is too low")&nbsp; &nbsp; &nbsp; &nbsp;return False&nbsp; &nbsp;else:&nbsp; &nbsp; &nbsp; &nbsp;print("that is correct")&nbsp; &nbsp; &nbsp; &nbsp;return Truefor i in range(0,3):&nbsp; &nbsp; &nbsp;status = check_guess()&nbsp; &nbsp; &nbsp;If status:&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;print(“success”)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;breakelse:&nbsp; &nbsp; &nbsp;print(“fail”)

慕侠2389804

如果用户是对的,您需要返回,如果不是,则增加一个计数器。这样的事情应该工作:count = 0while count < 3:&nbsp; &nbsp; if check_guess():&nbsp; &nbsp; &nbsp; &nbsp; # he's right&nbsp; &nbsp; &nbsp; &nbsp; break&nbsp; &nbsp; else:&nbsp; &nbsp; &nbsp; &nbsp; # he's wrong&nbsp; &nbsp; &nbsp; &nbsp; count += 1if count >= 3:&nbsp; &nbsp; print("You lose !")else:&nbsp; &nbsp; print("You win !")
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python