Best Answer
Здравей,
ето малко корекции по кода ти .. основното, което трябваше да се коригира беше брояч за поредните дни на харчене на пари, както и коректните действия с него. Реално нямаш и нужда от булевата променлива, а можеш да правиш проверката на изхода по spend_count.
money_needed = float(input())
money_available = float(input())
days_count = 0
can_save = True
spend_count = 0
while money_available < money_needed:
action = input()
money = float(input())
days_count += 1
if action == "spend":
money_available -= money
spend_count = spend_count + 1
if money_available < 0:
money_available = 0
if spend_count == 5:
can_save = False
break
elif action == "save":
money_available += money
spend_count = 0
if can_save:
print(f"You saved the money for {days_count} days.")
else:
print(f"You can't save the money.")
print(days_count)
Ако премахнеш булевата променлива, можеш да направиш изхода така ..
if spend_count != 5:
print(f"You saved the money for {days_count} days.")
else:
print(f"You can't save the money.")
print(days_count)
Поздрави :)
PS -> Аз лично бих преработил условието на цикъла на следното
while money_available < money_needed and not spend_count == 5:
и бих премахнал от тялото на цикъла секцията с проверката за тази променлива
# if spend_count == 5:
# can_save = False
# break
За консистентност на кода, може би трябва да използваш двойни кавички навсякъде.
Благодаря ти много!