使用pick库开发Python答题游戏时遇AttributeError问题求助
问题排查与解决
错误根源
你遇到的AttributeError: 'tuple' object has no attribute 'split',核心原因是**title变量被错误定义为元组,而非字符串**。
看这段代码:
title = '-----------\n QUIZZABLE \n-----------\n Quiz \n-----------\n\nQuiz:', quiz_title
用逗号分隔两个字符串时,Python会自动将其解析为元组(str1, str2),而pick库的title参数要求传入字符串类型——内部会对title执行split操作处理换行,元组没有该方法,因此抛出错误。
修复方案
将title改为字符串拼接形式,推荐两种写法:
方法1:使用f-string(Python 3.6+支持)
title = f'-----------\n QUIZZABLE \n-----------\n Quiz \n-----------\n\nQuiz: {quiz_title}'
方法2:使用字符串加号拼接
title = '-----------\n QUIZZABLE \n-----------\n Quiz \n-----------\n\nQuiz: ' + quiz_title
额外优化建议
- 代码中大量出现
int(1)、int(quiz_current_line) + int(1)这类冗余写法,直接用数字1和+=1更简洁:quiz_question_count = 1 quiz_current_line = 1 # ... quiz_current_line += 1 quiz_question_option += 1 - 读取题目时,可考虑用
enumerate或更清晰的循环结构,避免手动维护quiz_current_line计数器,减少出错概率。
内容的提问来源于stack exchange,提问作者zCooki
相关产品推荐
相关产品推荐

