У меня есть 2 списка(название месяцев и расходы). Я должен ввести расходы от пользователя и указать название месяца, в котором были те же расходы

#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')
 

Это длинный фрагмент кода, но я надеюсь, что это поможет!