SNHU Python‘Simon Says’问题:如何简化无索引的字符串逐字符对比代码?
简化"Simon Says"游戏代码:移除s_index变量
当然可以不用手动维护s_index变量,我们可以利用Python的enumerate()函数来简化代码,同时满足章节对continue和break的要求。
优化后的代码
user_score = 0 simon_pattern = input() user_pattern = input() for i, letter in enumerate(user_pattern): if letter == simon_pattern[i]: user_score += 1 continue # 匹配成功,继续下一轮字符对比 else: break # 匹配失败,立即终止游戏 print('User score:', user_score)
代码说明
enumerate(user_pattern)会在遍历用户输入序列时,同时返回当前字符的索引i和字符本身letter,这样就不需要手动创建并更新s_index来跟踪Simon序列的位置了。- 匹配成功时,加分后用
continue进入下一次循环(完全符合章节对continue的要求);匹配失败时用break终止循环,逻辑和原代码一致,但更简洁。 - 针对示例输入
'RRGBRYYBGY'和'RRGBBRYBGY',代码会在第4个字符(索引3)处发现不匹配,终止循环,最终输出User score: 4,和题目要求的结果一致。
内容的提问来源于stack exchange,提问作者UhOhStepBro
相关产品推荐
相关产品推荐

