#python
#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 — Я не могу получить длину game_content , поэтому я могу остановить цикл после того, как он повторит набор. Что я могу поставить вместо точного количества индексов списка, «while counter <= 1: «, чтобы мне не приходилось обновлять «<= 1» каждый раз, когда я добавляю что-то в game_content?
Проблема 2 — Как я могу вставить «счет» в мой bill_list, чтобы иметь возможность распечатать его в конце. Я просто использую для этого код bill_list.append(‘bill’), но я не совсем уверен, как это работает и почему это не работает.
Очень сожалею о плохом кодировании, я очень открыт для чего-то, что является лучшей версией этого.
Ответ №1:
Прежде всего, вам не нужно инициализировать переменную для присвоения значения =
. Так user_input = str()
бесполезно. Затем я сохраню назначение bill_list = ''
, потому =
что для назначения требуется переменная not null (пустая строка не равна null).
1) Для итерации в списке, который вам, вероятно, лучше использовать для цикла вместо 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)