如何解决Python:在WHILE循环中嵌套了IF:使用exit还是让WHILE“正常”完成?
在学习Python基础知识的同时编写一个简单的猜谜游戏。 游戏规则:程序反复要求用户输入一个猜测,并将猜测的计数器( guess_count )加1。如果计数器达到某个限制( guess_limit ) ,游戏说(“您松动”)。如果猜对了:(“您赢了”)
我有两种实现方式,无法理解,从概念上讲哪种设计更正确。
变量1 :创建布尔变量 out_of_guesses 并将其初始设置为False
secret_word = "pythoniac"
guess = ""
guess_count = 0
guess_limit = 3
out_of_guesses = False
然后,程序将执行WHILE循环,如果猜出单词或达到猜想限制并且out_of_guesses == True,则WHILE循环结束。
while guess != secret_word and not out_of_guesses:
if guess_count < guess_limit:
guess = input("Enter a guess: ")
guess_count += 1
else:
out_of_guesses = True
此后,在WHILE循环之外,程序将检查out_of_guesses == True,并进行打印(“您松动”)。否则,它会打印(“您赢了”)。
if out_of_guesses:
print("You Lose!")
else:
print("You Win!")
变量2 :没有其他布尔变量:
secret_word = "pythoniac"
guess = ""
guess_count = 0
guess_limit = 3
在WHILE循环中,如果达到猜测限制,则程序将打印(“您输了”)并使用exit()退出循环。如果猜到了密码,程序将在WHILE循环外打印(“您赢了”):
while guess != secret_word:
if guess_count < guess_limit:
guess = input("Enter a guess: ")
guess_count += 1
else:
print("You loose!")
exit()
print("You Win!")
问题:一般来说,哪种变体更好?要在WHILE循环中实现不同的结果,然后使用exit()/ break打破WHILE循环?还是引入其他布尔变量来存储不同的结果并在WHILE循环之外实现这些结果?
非常感谢!
解决方法
这是您要考虑的另一个想法:使其成为函数。
def do_game(word,max_tries=5):
for _ in range(max_tries):
answer = input("Enter a guess: ")
if answer == word:
return True
return False
if do_game("pythoniac"):
print("yes")
else:
print("no")
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。