提问人:zCooki 提问时间:11/8/2023 最后编辑:zCooki 更新时间:11/9/2023 访问量:59
AttributeError:“tuple”对象没有属性“split”(使用选择库的选项列表)
AttributeError: 'tuple' object has no attribute 'split' (options list using pick library)
问:
-PYTHON初学者
(使用pick库,Python 3.11并尝试制作测验游戏/应用程序?
我正在尝试从看起来像这样的文件中获取答案列表,但可以针对不同的问题和可能的答案数量进行更改:
3
Question 1
2
Answer 1 (1)
Answer 2 (1)
Answer 2 (1)
Question 2
4
Answer 1 (2)
Answer 2 (2)
Answer 3 (2)
Answer 4 (2)
Answer 3 (2)
Question 3
2
Answer 1 (3)
Answer 2 (3)
Answer 2 (3)
文件的第一行是文件中的问题总数。 文件的第二行是第一个问题的标题。 文件的第三行是文件中可能答案总数。 接下来的几行是问题的可能答案。 然后是问题的正确答案。
错误:
我收到的错误消息是:
'tuple' object has no attribute 'split'
File "C:\Users\username\Desktop\Applications\Quizzable\Quizzable.py", line 166, in <module>
option, index = pick(options, title, indicator='[>]', default_index=0)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'tuple' object has no attribute 'split'
我知道“选项”列表变量有问题,但我不知道如何解决它。
该变量按预期正确列出。但是选择库没有正确处理它。['Answer 1 (1)', 'Answer 2 (1)']
在其他场合,例如
quizzes = os.listdir()
title = '-----------\n QUIZZABLE \n-----------\n Quiz \n-----------'
options = [quizzes, 'Return']
option, index = pick(options, title, indicator='[>]', default_index=0)
它被解释为它应该有的方式,所以:我做错了什么?
with open(str(option)[2:-2], 'r') as quiz:
quiz_info = [line.strip() for line in quiz]
quiz_title = str(option)
title = '-----------\n QUIZZABLE \n-----------\n Quiz \n-----------\n\nQuiz:', quiz_title
quiz_question_total = quiz_info[0]
quiz_score = 0
quiz_question_count = int(1)
quiz_current_line = int(1)
while quiz_question_count <= int(quiz_question_total):
quiz_question = quiz_info[int(quiz_current_line)]
quiz_current_line = int(quiz_current_line) + int(1)
quiz_question_option_count = quiz_info[int(quiz_current_line)]
quiz_current_line = int(quiz_current_line) + int(1)
quiz_question_option = int(1)
options = []
while quiz_question_option <= int(quiz_question_option_count):
options += [quiz_info[int(quiz_current_line)]]
quiz_current_line = int(quiz_current_line) + int(1)
quiz_question_option = int(quiz_question_option) + int(1)
quiz_question_answer = quiz_info[int(quiz_current_line)]
quiz_current_line = int(quiz_current_line) + int(1)
option, index = pick(options, title, indicator='[>]', default_index=0) #problem
if option == quiz_question_answer:
quiz_score = quiz_score + int(1)
我希望得到一个选项列表,该选项与已经提到的当前问题的 from 文件选项相匹配。
答:
1赞
zCooki
11/9/2023
#1
正如约翰·戈登(John Gordon)所评论的那样:实际上是标题导致了问题,谢谢。
你有这一行 逗号使它成为 元。我想你的意思是用 .
title = '-----------\n QUIZZABLE \n-----------\n Quiz \n-----------\n\nQuiz:', quiz_title
+
,
下一个:Python 字典键对
评论
int()
int("22")
int(1.2)
+
int()
title = '-----------\n QUIZZABLE \n-----------\n Quiz \n-----------\n\nQuiz:', quiz_title
+
,