Python水果猜词游戏开发问题:如何对比用户输入与随机水果的列表索引大小
猜词游戏代码问题修复
你提交的代码存在以下问题:
- 调用方法错误:
fruits是随机选中的水果字符串,不存在index属性,获取元素在列表中的索引需要使用列表名.index(目标元素)的写法 - 比较逻辑错误:直接将用户输入的字符串和索引数值比大小,类型不匹配无法得到预期结果,需要先分别获取用户输入水果、目标水果在列表中的索引,再比较两个索引的大小
- 输入逻辑错误:
input语句写在while循环外面,只会执行一次,第一次猜错后会进入死循环,不会再接收用户新的输入 - 分支逻辑错误:while循环的触发条件是
guess != fruits,也就是只有猜错时才会进入循环体,写在循环内部的猜对判断分支永远不会被触发 - 提示文案错误:猜对后的提示内容写的是“猜对了数字”,和猜水果的业务逻辑不符
修正后可运行的完整代码
import random fruit = ["blueberry", "grape", "apple", "mango", "watermelon"] # 随机生成目标水果的索引,方便后续直接比较 target_index = random.randint(0, len(fruit) - 1) target_fruit = fruit[target_index] while True: guess = input("请猜一个水果,可选范围:blueberry, grape, apple, mango, watermelon \n") # 校验输入是否在给定水果列表中,避免索引报错 if guess not in fruit: print("你输入的水果不在可选范围内,请重新输入") continue guess_index = fruit.index(guess) if guess_index < target_index: print("-你猜的位置靠前了,再试试") elif guess_index > target_index: print("-你猜的位置靠后了,再试试") else: print("你猜对了水果!") break
内容的提问来源于stack exchange,提问作者Spencer
相关产品推荐
相关产品推荐

