Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- need_sum = int(input())
- check_need_sum = need_sum
- check_cash = True
- cash_sum = []
- card_sum = []
- while True:
- current_sum = input()
- if current_sum == 'End':
- break
- current_sum = int(current_sum)
- # Тук само ПРЕЦЕНЯВАМЕ дали продукта е продаден -- да наречем това "отговорност 1"
- product_sold = False # Подхождаме като песимисти, че продукта няма да бъде продаден успешнп
- if check_cash: # В брой
- check_cash = False #Веднага превключаме за следващото да е карта
- if not current_sum > 100:
- cash_sum.append(current_sum)
- product_sold = True # Маркираме че сме продали продукта
- else # С кредитна карта
- check_cash = True #Веднага превключаме за следващото да е в брой
- if not current_sum < 10:
- card_sum.append(current_sum)
- product_sold = True # Маркираме че сме продали продукта
- # Виж как в оригиналния ти код превключването в-брой/карта беше на 3 места, а тук стана по-събрано
- # Тук кодираме само РЕАКЦИЯТА НИ от това дали продукта е продаден -- да наречем това "отговорност 2"
- # Действията по-долу преди бяха повторени на 2 места в кода.
- # Докато сега с помощта на product_sold са само тук на едно място:
- if product_sold:
- print('Product sold!')
- check_need_sum -= current_sum
- if check_need_sum <= 0:
- break
- else:
- print('Error in transaction!')
- # Забележи как разделянето на двете отговорности да са в отделни пасажи досведе до 2 неща:
- # * По-прости и ясни if-ове
- # * Изчезна нуждата един и същ код да се повтаря на 2-3 места
- aver_cash = sum(cash_sum) / len(cash_sum)
- aver_card = sum(card_sum) / len(card_sum)
- if current_sum == 'End':
- print('Failed to collect required money for charity.')
- else:
- print(f'Average CS: {aver_cash:.2f}')
- print(f'Average CC: {aver_card:.2f}')
Add Comment
Please, Sign In to add comment