Ogólnie od marcin82 dostałeś gotowca. Rożnica jest, że on to robi na listach a nie na inkrementacji zmiennej ale cała struktura kodu będzie wyglądać identycznie.
Ok zobaczy pierwszy kod
Zacznijmy od wyrzucenia fragmentu kodu który nic nie robi. Wiec z tego kodu zostanie tobie to:
ln=0
liczba = 2021 # <- ważna jest tylko definicja zmiennej np. możesz wpisać 2021 bo mamy taki rok jako ester egg
while liczba != 0:
liczba = int(input("Podaj liczbę: "))
ln=ln+1 # <- nadal liczysz każdą liczbę nie tylko nieprzayste
else:
print("ilosc liczb Nieparzystych podanych przez użytkownika", ln)
Analogicznie kod dla liczb parzystych
lp=1 # <- Zaczynając liczyć od 1, dodajesz jedną liczbę dodatnią do wyniku końcowego
liczba = 2021 # <- ważna jest tylko definicja zmiennej np. możesz wpisać 2021 bo mamy taki rok jako ester egg
while liczba != 0:
liczba = int(input("Podaj liczbę: "))
lp=lp+1 # <- nadal liczysz każdą liczbę nie tylko przayste
else:
print("ilosc liczb parzystych podanych przez uzytkownika", lp)
#!/usr/bin/python
lp = 0
ln = 0
liczba = ''
def policz():
print("\nLiczb parzystych:", lp, "\nLiczb nieparzystych:", ln)
print("\n\t>>> Wprowadź '0', aby zakończyć i wyświetlić ile wprowadzono liczb parzystych, a ile nieparzystych. <<<\n")
while liczba != 0:
liczba = int(input("Podaj liczbę: "))
if liczba%2 == 0:
lp+=1
else:
ln+=1
else:
policz()
Przebieg i wynik działania ten sam jak dałem wyżej. Zmienne lp i ln nie przechowują teraz zestawu wprowadzonych liczb tylko działają jak licznik - startujesz od wartości „0”.
Zmiennej Liczba używasz tylko do sprawdzenia czy liczba jest podzielna przez dwa i czy nie równa się zero. Więc ważne jest, żebyś przed jej sprawdzeniem ją zdefiniował.
Może być dowolną liczbą, bo nie ma to znaczenia. Jako, że przed sprawdzeniem czy liczba jest parzysta czy nie wprowadzasz ją ponownie z ręki.
Ten fragment nadpisuje wartość wpisanej liczby
Ważne tylko, żebyś przy definiowaniu nie użył wartości 0, bo od razu zakończysz pętle while lub wartości tekstowej, bo wyskoczy ci błąd (jako, że sprawdzenia Liczba != 0 nie można robić na stringach). Możesz też użyć pustej wartości czyli.
Wtedy po prostu definiujesz, że taka zmienna jest.
liczba = ""
parzyste = 0
nieparzyste = 0
print("Podaj dowolną liczbę większą, niż zero. Aby zakończyć działanie programu, wpisz 0.")
while liczba != 0:
liczba = int(input("Podaj liczbę: "))
if liczba % 2 == 0:
parzyste += 1
else:
nieparzyste += 1
print("Podałeś %i razy liczbę parzystą: " % parzyste)
print("Podałeś %i razy liczbę nieparzystą: " % nieparzyste)