我可以在我的while状态下使用len(游戏内容)吗?

2024-04-26 05:51:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我只是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-我无法获得游戏内容的长度,因此我可以在循环遍历集合后停止循环。当计数器<;=1:“这样我就不必每次在游戏内容中添加内容时都不断更新“<;=1”,我可以用什么来代替列表的精确索引计数

问题2-如何在账单列表中插入“账单”,以便在最后打印账单。我只是使用bill_list.append('bill')代码来完成它,但我不太确定它是如何工作的以及为什么不工作

非常抱歉,糟糕的编码,我非常开放的东西,这是一个更好的版本


1条回答
网友
1楼 · 发布于 2024-04-26 05:51:14

首先,不必初始化变量就可以用=赋值。 所以user_input = str()是无用的。接下来我将保留赋值bill_list = '',因为+=赋值需要一个NOTNULL变量(空字符串不为null)

1)要在列表中进行迭代,最好使用for循环,而不是while和function,这样更容易:

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)

相关问题 更多 >