Cześć. Ćwiczę pythona. Potrzebuje stworzyć program, jaki wczyta od użytkownika kolejne wartości liczb całkowitych do momentu, kiedy ten poda wartość 0. Przy podanym 0 wypisze się na ekran komunikat ile użytkownik razy podał liczb parzystych a ile nie.
Coś już mam:
liczba = int(input("Podaj liczbę: "))
print("Twoja liczba wynosi", liczba)
while liczba != 0:
liczba = int(input("Podaj liczbę jeszcze raz: "))
print("Twoja liczba wynosi", liczba)
if liczba == 0:
print("tutaj by była pętla For?")
W dobrą stronę idę? Jakby dalej obrać kierunek jakoś próbować po tym if liczba == 0:
dawać jakąś pętle? Poproszę o jakąś wskazówkę, a brakuje mi pomysłu jakby zliczać te liczby parzyste i nieparzystę. Dodam, że do parzystych miałbym jakiś kod z poprzednich ćwiczeń:
for x in range(101):
if x%2 == 0:
print(x)
Tylko nie wiem jak go wprowadzić do obecnego ćwiczenia
Z tego fora weź tylko ifa. Sprawdzaj czy przysta czy nie zaraz po wprowadzaniu liczyby przez usera (ale po sprawdzeniu czy zero) i zliczaj. A jak zero to tylko wypisujesz wartości wcześniej zliczone.
@aesereht
Jak nie wiem jak wygląda, panie kolego
Próbuje coś zadziałać. Wiedzieć wiem w teorii, ale przyszła praktyka i bywa trudniej. @Helga88
Własna inicjatywa. Dzięki. Coś z tym popracuje jak napisałeś, a jak będą pytania napiszę Ci.
@aesereht
Prawda. Im więcej sam napiszę lepiej dla mnie Jednak jak widzisz nie idzie mi lekko, ale walczę. Rozwiązania nie chcę bo słabo będzie otrzymać gotowca. Bardziej mi chodzi o wskazówkę jakąś i nakierowanie na dobry tor.
Warunek jeśli będzie liczba różna od 0 wtedy program się nie kończy - koniec następuje jeżeli liczba będzie 0. Tak ja bym sprawdzał jeśli 0 bo wówczas program ma zakończyć działanie i moim celem
by było podanie liczb parzystych i nieparzystych. Dobrze prawie?
if x%2 == 0:
tutaj taki mam kawałek gdzie jeśli podzielne bez reszty wtedy bym dopisał print parzysta .
Teraz bym próbował, aby mi jakoś zliczał po tym ifie, ale nie wiem jak zbytnio
myślałem x = x +1 by dodawał coś.
Źle czy dobrze pisze?
@aesereht
Dzięki za wyjaśnianie, już coś bardziej wiem.
Rzeczywiście - jeśli równa się 0 to pętla sama się zakończy, więc nie potrzeba dodatkowego sprawdzania 0.
Co jeśli się nie równa 0 wtedy nie jest parzysta i by może takiego IF zrobić:
if iliczba % 2 == 0:
print("liczba parzysta")
elif liczba %2 == 1:
print("liczba nieparzysta")
Dobrze tutaj napisałem?
Jakby teraz by wpaść na sprawdzenie tego zliczania ile wystąpień tych parzystych i nie.
Użyć by jakiejś pętli for?
Teraz taki kod mam
liczba = int(input("Podaj liczbę: "))
print("Twoja liczba wynosi", liczba)
if liczba % 2 == 0:
print("liczba parzysta")
elif liczba % 2 == 1:
print("liczba nieparzysta")
while liczba != 0:
liczba = int(input("Podaj liczbę jeszcze raz: "))
else:
print("twoja liczba to 0")
lp=1
liczba = int(input("Podaj liczbę: "))
if liczba % 2 == 0:
print("liczba parzysta")
elif liczba % 2 == 1:
print("liczba nieparzysta")
while liczba != 0:
liczba = int(input("Podaj liczbę jeszcze raz: "))
lp=lp+1
else:
print("ilosc liczb parzystych podanych przez uzytkownika", lp)
Jeszcze rozmyślam nad wyliczeniem liczb nieparzystych :slight_smile:
Dla parzystych jakby mi wyśweietla :)
Coraz bliżej. Usunę ci niepotrzebne fragmenty kody
lp=1 #<- wartość 1?
while liczba != 0: #<- nie zdefiniowałeś wcześniej zmiennej liczba
liczba = int(input("Podaj liczbę jeszcze raz: "))
lp=lp+1 #<- czyli zakładasz, że każda liczba jest przysta?
# <- brakujący if
else:
print("ilosc liczb parzystych podanych przez uzytkownika", lp)
@aesereht
Pracuję, ale rezultat jeszcze nie jest ten co ma być…
Liczy mi liczby nieparzyste w taki sposób:
ln=0
liczba = int(input("Podaj liczbę: "))
if liczba % 2 == 0:
print("liczba parzysta")
else:
print("liczba nieparzysta")
while liczba != 0:
liczba = int(input("Podaj liczbę jeszcze raz: "))
ln=ln+1
else:
print("ilosc liczb nieparzystych podanych przez uzytkownika", ln)
Jeszcze walczę by w jednym programie liczyło jak tam chcę, czyli wspólny wynik dla nieparzystych i nieparzystych. Pracuję by rozpracować ten wynik a wspieram się twoimi wskazówkami.
Dobra masz gotowca. I teraz twoja w tym głowa, żeby się dowiedzieć dlaczego tak, a nie inaczej i co z czego wynika:
#!/usr/bin/python
lp = []
ln = []
liczba = ''
def policz():
print("\nLiczb parzystych:", len(lp), "\nLiczb nieparzystych:", len(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.append(liczba)
else:
ln.append(liczba)
else:
policz()
[user@host ~]$ parzyste
>>> Wprowadź '0', aby zakończyć i wyświetlić ile wprowadzono liczb parzystych, a ile nieparzystych. <<<
Podaj liczbę: 2
Podaj liczbę: 1
Podaj liczbę: 3
Podaj liczbę: 5
Podaj liczbę: 7
Podaj liczbę: 0
Liczb parzystych: 2
Liczb nieparzystych: 4
@marcin82 dzięki. Jeszcze ze swoim pomysłem chcę zawalczyć. @aesereht nie wiem zbytnio już teraz co do tych wskazówek:
lp=1 #<- wartość 1?
while liczba != 0: #<- nie zdefiniowałeś wcześniej zmiennej liczba
liczba = int(input("Podaj liczbę jeszcze raz: "))
lp=lp+1 #<- czyli zakładasz, że każda liczba jest przysta?
# <- brakujący if
else:
print("ilosc liczb parzystych podanych przez uzytkownika", lp)
tak podałem lp=1 bo mi wtedy wychodziło dla parzystych
a liczbę potrzebuje zdefinować też na początku
założyłem lp=lp+1 bo tak mi liczy ok dla parzystych
Z nieparzystymi w tym programie nie wiem jak zadziałać
bo później tutaj dam ln
while liczba != 0:
liczba = int(input("Podaj liczbę jeszcze raz: "))
lp=lp+1
ln=ln+2 nie liczy
Czyli mam dwa kody liczący liczby nieparzyste a nie wyświetla parzystych:
#lp=1
ln=0
liczba = int(input("Podaj liczbę: "))
if liczba % 2 == 0:
print("liczba parzysta")
elif liczba % 2 == 1:
print("liczba nieparzysta")
while liczba != 0:
liczba = int(input("Podaj liczbę jeszcze raz: "))
ln=ln+1
else:
print("ilosc liczb NIEparzystych podanych przez uzytkownika", ln)
Drugi co liczy liczby parzyste a nie liczy nieparzystych:
lp=1
liczba = int(input("Podaj liczbę: "))
if liczba % 2 == 0:
print("liczba parzysta")
elif liczba % 2 == 1:
print("liczba nieparzysta")
while liczba != 0:
liczba = int(input("Podaj liczbę jeszcze raz: "))
lp=lp+1
else:
print("ilosc liczb parzystych podanych przez uzytkownika", lp)
Jaka wskazówka, aby połączyć. Szczególnie teraz nie wiem tego co w pętli while wykonać … Czy w jakimś miejscu użyc break albo continue