Python开发Mastermind游戏:如何从shuffle后的6字符列表取固定4个字符
问题解答
random.shuffle() 是直接修改原列表、打乱全部元素的内置方法,本身不支持k参数,也不会返回新的序列对象。你需要从6种颜色里随机取4个不重复的作为密码,可直接用以下两种方案实现:
- 方案1:打乱后切片取值
现有代码只需要加一行切片操作,取打乱后列表的前4个元素即可:colorCode = ['r','b','g','y','p','o'] random.shuffle(colorCode) colorCode = colorCode[:4] # 新增本行,截取前4位作为目标密码 - 方案2:使用
random.sample()(更推荐)
这个方法专门用于从指定序列中随机取出k个不重复的元素,不需要手动打乱再切割,一行代码就能完成密码生成:# 直接从6色列表中取4个不重复的随机元素作为密码 colorCode = random.sample(['r','b','g','y','p','o'], k=4)
注意:你当前的原代码存在逻辑问题,
colorCode是6位长度,而玩家输入的是4位字符串,二者直接对比永远不可能相等,修改密码生成逻辑为4位后,校验逻辑才能正常运行。
内容的提问来源于stack exchange,提问作者Beron Tan
相关产品推荐
相关产品推荐

