Kasa i sumowanie kosztów produktów

0

Siema, od razu zaznaczam, że dopiero się uczę Pythona i proszę o wyrozumiałość.

Napisałem program który miał za cel działać jak taka kasa na sklepie, tylko że cena produktów miała być wprowadzana manualnie. Problem występuje gdy program ma podliczyć łączną wartość wszystkich produktów - zawsze wychodzi liczba zadeklarowana w zmiennej o nazwie ,,suma", która jakby nie nadpisuje się. Drugim problemem jest to, że nie do końca wiem jak tutaj zakończyć pętle. Z góry dziękuję za wszystkie odpowiedzi!

Kod :

id = int(input("Podaj swoje id: "))
if id==1:
    haslo = input("Podaj swoje hasło: ")
    if haslo=="kasa":
        print("Witaj użytkowniku o numerze ID 1, podaj cenę produktu. Aby zakończyć transakcję i obliczyć sumę wprowadź jako cenę liczbę 0.")
        cena = input("Podaj cenę produktu: ") 
        while cena!=0:
            cena=input("Podaj cenę następnego produktu: ")
            suma = 0
            suma= float(suma) + float(cena)
            if float(cena)==0:
                print("Łączny koszt wszystkich produktów to: "+str(suma)+" zł.")
    elif haslo!="kasa":
        print("Niepoprawne hasło, spróbuj ponownie!")
elif id!=1:
    print("Nie znaleziono użytkownika o takim ID")

kod1.PNG
kod2.PNG

A tutaj zamieszczam zrzuty ekranu

5
  • Pierwszą cenę wprowadziłeś, sprawdziłeś czy nie jest zerowa i .... wprowadziłeś następną!!
  • Sumę zerujesz dodajesz kolejną cenę (bez pierwszej) i ... na następnym kroku znowu sumę zerujesz!!
  • Skoro pętla się kończy po cenie zerowej to nie potrzebujesz kolejnego if'a
suma = 0
cena = 0
while cena!=0:
  cena = float(input("Podaj wartość produktu: "))
  suma += cena
  print("Łączny narastająca wartość wszystkich produktów to: "+str(suma)+" zł.")
``
0

A jeżeli bym chciał żeby cena wyświetliła się tylko po dodaniu wszystkich produktów to musiałbym dać tego printa poza pętlą? No i też teraz tak patrzę i nawet jak podam 0 jako cenę, pętla nie zatrzymuje się :/

4

Daj sformatowany kod, a nie obrazek.

0
id = int(input("Podaj swoje id: "))
if id==1:
    haslo = input("Podaj swoje hasło: ")
    if haslo=="kasa":
        print("Witaj użytkowniku o numerze ID 1, podaj cenę produktu. Aby zakończyć transakcję i obliczyć sumę wprowadź jako cenę liczbę 0.")
        suma = 0
        cena = 1
        while cena!=0:
            cena=input("Podaj cenę następnego produktu: ")
            suma += float(cena)
            print("Łączna narastająca cena wszystkich produktów to "+str(suma)+" zł")
    elif haslo!="kasa":
        print("Niepoprawne hasło, spróbuj ponownie!")
elif id!=1:
    print("Nie znaleziono użytkownika o takim ID")

1

cena jest stringiem w momencie sprawdzania warunku, który przez to jest prawdziwy; dziwne, moim zdaniem to powinno się wysypać...

1 użytkowników online, w tym zalogowanych: 0, gości: 1