#python
Вопрос:
month_list = ["January","Februarty","March","April","May"]
expense_list = [2340, 2500, 2100, 3100, 2980]
exp = int(input("Enter your expense:"))
for i in range(5):
if exp == expense_list[i]:
print('Your expense matches with the month of',month_list[i])
else:
print('Your expense does not matches with the list')
break
Я попробовал этот код, но он работает только в том случае, если я ввожу расходы за 1-й месяц, в остальные месяцы он не работает.
Пожалуйста, помогите
Комментарии:
1. Не могли бы вы, пожалуйста, отформатировать код
Ответ №1:
Вы хотите вырваться из цикла, если он совпадает. Таким образом else
, он будет выполнен, если совпадения нет. Воспользуйся:
month_list = ["January","Februarty","March","April","May"]
expense_list = [2340, 2500, 2100, 3100, 2980]
exp=int(input("Enter your expense:"))
for i in range(5):
if exp==expense_list[i]:
print('Your expense matches with the month of',month_list[i])
break
else:
print('Your expense does not matches with the list')
Лучший способ:
for x, y in zip(month_list, expense_list):
if y == exp:
print('Your expense matches with the month of ', x)
break
else:
print('Your expense does not matches with the list')
Комментарии:
1. Этот ответ гораздо эффективнее моего!
Ответ №2:
Что вы можете сделать, так это создать массив.
Например:
month_list = [
["January", '2340'],
["Februarty", '2500'],
["March", '2100'],
["April", '3100'],
["May", '2980']
]
exp = int(input("Enter your expense:"))
for x in range(len(month_list)):
if exp == int(month_list[x][1]):
matched_month = month_list[x][0]
is_matched = True
try:
if is_matched == True: #When matched, is_matched will be set to True, but if not matched it wil throw up an error, which means that it is not matched
print('Your expense matches with the month of',matched_month)
except:
print('Your expense does not matches with the list')
Это длинный фрагмент кода, но я надеюсь, что это поможет!