Python入门猜数字游戏:如何区分首次与后续猜测的提示输出
问题根因
你现有代码的提示输出逻辑有误:每轮循环先固定打印Take a guess!,再判断如果不是第一次猜测就追加打印Take another guess!,导致第2次及之后的猜测会同时出现两条提示,无法实现区分提示的需求。
修正方法
把提示输出改为if/else二选一分支,每轮只输出一条对应提示:
- 第1次猜测(
guessesTaken == 1)时,输出Take a guess! - 第2到第5次猜测(
guessesTaken > 1)时,输出Take another guess!
修正后完整代码
# 数字猜谜游戏 import random from time import sleep secretNumber = random.randint(1, 20) print('我想到了一个1到20之间的数字,你共有5次猜对的机会。') sleep(1) # 累计5次猜测机会 for guessesTaken in range(1, 6): if guessesTaken == 1: print('Take a guess!') else: print('Take another guess!') guess = int(input()) if guess < secretNumber: print('你的猜测太小了。') elif guess > secretNumber: print('你的猜测太大了。') else: break # 猜中,直接跳出循环 if guess == secretNumber: print(f'猜得对!你总共用了{guessesTaken}次就猜中了!') else: print(f'机会用完了,我想的数字是{secretNumber}。')
补充说明
循环for guessesTaken in range(1, 6)执行时,guessesTaken会依次取1、2、3、4、5,刚好对应5次猜测的轮次,直接用这个变量做判断即可,不需要额外新增计数变量。
内容的提问来源于stack exchange,提问作者Simon Clarke
相关产品推荐
相关产品推荐

