python - 获取、存储和返回多个输入 Python
问题描述
我正在尝试制作一个程序,让用户输入问题和答案,然后提示这些问题并返回答案是否正确。我猜我必须创建接受输入并将它们存储在列表中然后返回它们的函数。
我很难弄清楚如何一起检索列表中的项目。显然,我可以为每个问题和答案写出代码,但我确信这不是好的代码,如果添加更多项目,也是不切实际的。最好的方法是什么?我正在考虑创建两个列表并在出现提示时循环遍历它们,但我正在努力弄清楚语法(或者是否有更好的方法?)。
这是我到目前为止所拥有的,但我知道这是错误的。干杯。
question_list = ['What is the capital of Japan?: ', 'What is capital of US?: ']
answer_list = ['Tokyo', 'Washington DC']
def return_question():
for question in question_list:
input_answer = input(question).lower()
for answer in answer_list:
if input == answer_list:
print('Correct')
else:
print('Incorrect')
解决方案
我完全同意上面@GreenCloakGuy 给出的答案。但更 Pythonic 的是:
questions_and_answers = [
('What is the capital of Japan?', 'Tokyo'),
('What is the capital of the USA?', 'Washington DC'),
]
for question, answer in questions_and_answers:
...
为什么要将问题和答案放在单独的列表中?你保证在未来的某个时候,有人会犯编辑错误,这两个列表会不同步。您所拥有的是问题和答案列表,而不是问题列表和单独的答案列表。
推荐阅读
- php - 如何使用共享服务器将数据导出到 PHP 中的 XLSB 文件
- python - 如何在特定时间执行一段代码
- nhibernate - NHibernate + 流利的映射 + NLog = 在程序集中找不到映射的文档
- python - 如何同时使用 PyQT5 表格和菜单?
- angular - 我应该如何创建一个包含 mat-form-field 和输入的组件?
- google-analytics - 从 Google Analytics 过滤事件类别
- sql-server - SQL Server ContainsTable 不返回以“N”开头的单词的结果
- scala - 仅过滤一行字符串中的数值
- sql - 对连续行进行分组
- android - 以编程方式从 Shimmer 效果中删除自动启动(Facebook 使用 Shimmer-Android)