开发Python问答游戏时正确答案被判错误,是否为大小写敏感问题?
问题解答
是的,这就是大小写敏感导致的错误。
Python 中字符串的==比较默认是严格区分大小写的,你代码里判断的是'Jeff bezos'(首字母J大写),但用户输入的是jeff bezos(首字母j小写),两者不相等,所以被判定为错误。
解决方案
可以将用户输入的字符串统一转换为小写(或大写),再和目标答案的小写(或大写)版本比较,这样就能忽略大小写差异:
修改后的代码示例:
score = 0 question_n = 0 playing = input('Do you wish to start? (Yes-No)') # 统一转小写优化开始输入的判断 if playing.lower() in ["yes", "y"]: question_n +=1 ques = input(f'\n{question_n}. Who owns amazon? ') # 将用户输入转为小写,和小写的目标答案比较 if ques.lower() == 'jeff bezos': print('Correct! You got 1 point.') score +=1 print(f'Your score is : {score}') else: print('Incorrect') print(f'The correct answer is --> Jeff bezos. ') x = input('Press any key to exit..') elif playing.lower() in ["no", "n"]: print('Thanks for trying me (:')
如果要同时处理用户输入前后多余空格的情况,可以加上strip()方法:
if ques.strip().lower() == 'jeff bezos':
这样即使用户输入 Jeff Bezos 这类带空格的内容,也能被正确判定为正确答案。
内容的提问来源于stack exchange,提问作者ex Des
相关产品推荐
相关产品推荐

