Python实现Bagels猜数字游戏逻辑异常 仅返回Bagels或单个Fermi求助
问题修复说明
1. 数字拆分逻辑错误
你当前取各位数字的切片写法完全错误:
secret[:2]是取字符串前2个字符,不是第2位字符secret[:3]是取整个3位字符串,不是第3位字符
正确的按索引取单个字符的写法如下:
digit1 = secret[0] digit2 = secret[1] digit3 = secret[2] guess1 = guess[0] guess2 = guess[1] guess3 = guess[2]
2. 多条件判断语法错误
guess1 == (digit2 or digit3) 这类写法不符合Python的语法逻辑:or 操作符在非布尔值场景下,会直接返回第一个真值,所以这段代码实际只会判断guess1是否等于digit2,永远不会校验digit3。
正确的判断写法:
if guess1 != digit1 and (guess1 == digit2 or guess1 == digit3):
其余两个位置的Pico判断也需要做相同修改。
3. 猜测次数逻辑偏差
你声明是10次猜测机会,但while guesses <=10的判定会让玩家最多猜11次,建议修改为:
while guesses < 10:
内容的提问来源于stack exchange,提问作者Kyle Kubiak
相关产品推荐
相关产品推荐

