python - 我可以将 len(game_content) 用于我的 while 条件吗?
问题描述
我只是python编码的初学者。我的代码有几个问题,希望您能提供帮助。
user_input = str()
counter = 0
game_content = [{'day': 'Day 1: Let your son use the computer for 5 hours. Yes or No?',
'answer1': 'YES', 'answer2': 'NO',
'text1': 'An amount has been added to your bill.', 'text2': "No amount has been added to your bill",
'bill': '500'},
{'day': 'Your wife wants to use the washing machine. Should you let her? Yes or No?',
'answer1': 'YES', 'answer2': 'NO',
'text1': 'An amount has been added to your bill.', 'text2': "No amount has been added to your bill",
'bill': '200'}
]
def scenarios(count):
bill_list = []
user_input = input(game_content[count]['day']).strip().upper()
if user_input == game_content[count]['answer1']:
print(game_content[count]['text1'])
bill_list.append('bill')
global counter
counter += 1
elif user_input == game_content[count]['answer2']:
print (game_content[count]['text2'])
counter += 1
while counter <= 1:
scenarios(counter)
bill_list = []
print("Your bill is: ", bill_list)
问题 1 - 我无法获得 game_content 的长度,因此我可以在循环遍历集合后停止循环。我可以用什么代替列表的确切索引计数,“while counter <= 1:” 这样我就不必每次在 game_content 中添加内容时都不断更新“<= 1”?
问题 2 - 如何在我的 bill_list 中插入“账单”以便能够在最后打印。我只是使用 bill_list.append('bill') 代码来完成它,但我不太确定它是如何工作的以及为什么它不起作用。
对于糟糕的编码非常抱歉,我非常愿意接受更好的版本。
解决方案
毕竟,您不必初始化一个变量来分配一个值=
。所以user_input = str()
没用。接下来我将保留赋值bill_list = ''
,因为+=
赋值需要一个非空变量(空字符串不为空)。
1)要迭代一个列表,你可能最好使用 for 循环而不是 while 和函数,它更容易:
bill_list = ''
for scenario in game_content:
user_input = input(scenario['day']).strip().upper()
if user_input == scenario['answer1']:
print(scenario['text1'])
bill_list += 'bill'
elif user_input == scenario['answer2']:
print (scenario['text2'])
在这个循环中,场景将取值 game_content[0] 然后是 game_content[1]
2 ) 你最好使用操作数 '+' 连接字符串,而不是像上次打印中那样使用数组:
print("Your bill is: " + bill_list)
推荐阅读
- node.js - 节点错误 npm ERR!在 Angular 项目中使用 npm install 时从未调用 cb()
- python - 如何统计UCREL语义分析系统(USAS)加载的语义标签的出现次数
- mysql - DELETE TOP 语句的正确语法是什么?
- python - discord.py wait_for('reaction_add') 无法正常工作
- java - Getting Null value after bind method called in Reference object of OSGI
- javascript - 集合之间可以发生 NoSQL 注入吗?
- ios - 如果堆栈大小> 1,则弹出后 SwiftUI3 导航链接不起作用
- php - GET 小写字母和大写字母 PhP
- mysql - MySQL 查询将自身限制在某些日期 - 为什么?
- python - Plotly:如何创建一个下拉按钮,对折线图中的线进行分组?