如何简化石头剪刀布Python代码,使其兼容大小写输入?
解决石头剪刀布游戏大小写输入兼容问题
最简便的方式是统一用户输入与预设选项的大小写格式,无需修改后续的胜负判断逻辑,仅需对用户输入做简单格式转换即可。
核心方法:用capitalize()统一格式
Python字符串的capitalize()方法会自动将输入的首字母转为大写、其余字母转为小写,刚好匹配你代码里options列表的格式(比如输入rock会变成Rock,PAPER会变成Paper)。只需修改获取用户输入的那一行代码:
yourMove = input("Rock, paper, or scissors? \n ---------- \n").capitalize()
修改后的完整代码
import random import time options = ["Rock", "Paper", "Scissors"] # 对用户输入做首字母大写转换,兼容任意大小写输入 yourMove = input("Rock, paper, or scissors? \n ---------- \n").capitalize() computerChoice = random.choice(options) print("Rock...") time.sleep(1) print("Paper...") time.sleep(1) print("Scissors...") time.sleep(1) print("Shoot! \n") time.sleep(1) print("You chose " + yourMove) print("The computer chose " + computerChoice + "\n") if yourMove == "Rock" and computerChoice == "Paper": print("You lose!") elif yourMove == "Paper" and computerChoice == "Rock": print("You win!") if yourMove == "Scissors" and computerChoice == "Rock": print("You lose!") elif yourMove == "Rock" and computerChoice == "Scissors": print("You win!") if yourMove == "Paper" and computerChoice == "Scissors": print("You lose!") elif yourMove == "Scissors" and computerChoice == "Paper": print("You win!") if yourMove == computerChoice: print("It's a draw!")
可选拓展思路
如果想支持更灵活的输入(比如仅输入首字母R/r、P/p),可以在转换后额外判断首字母,但如果只是解决大小写兼容问题,上面的方法已经足够简洁高效。
内容的提问来源于stack exchange,提问作者InsertNameHere
相关产品推荐
相关产品推荐

