Dlaczego else się nie aktywuje? (newbie)

0

Jestem giga początkującym, i mam nadzieje że ktoś pokaże mi to czego nie widzę.

print("Jak się nazywasz?")
zmienna1 = input("Podaj imię: ")
print("Witaj", zmienna1)
print("Z jakiego jesteś rocznika?")
dataurodzenia = input("Podaj rocznik: ")
wiek = 2021 - int(dataurodzenia)
print("Masz: ", wiek, " lata")
if int(wiek) > (20):
    print("Jesteś w stanie przejść dalej")
    print("Aby wybrać pakiet za - 150zł wpisz: 1 lub 2 jeżeli interesuje cię pakiet za 200 zł")
    pakiet = input("Wybieram pakiet:")
if  pakiet == 2:
    print("wybrałeś pakiet numer 2")
    print("Zapłacono 200zł")
else:
    print("Wybrano pakiet numer 1")
    print("Zapłacono 150zł")

(mimo że inputuje pakiet 1 to itak aktywuje skrypt jakbym wybrał pakiet 2)

2
  1. Wcięcia. pakiet będzie ustawiony wtw gdy przejdziesz wcześniej przez if int(wiek) > (20):, jak nie, to program się wysypie.
  2. Python ma silne typowanie, a input tworzy stringa. Zatem zawartością zmiennej pakiet będzie co najwyżej string "2", ale nigdy nie int 2. Rzutuj albo porównuj do stringa.
0

@Althorion: Nie wiele mi to mówi.

2

A co konkretnie, to wytłumaczę bardziej? Wiesz jakie typy zmiennych są w Pythonie?

A rzutowanie przecież już sam wykonujesz wyżej, wiek = 2021 - int(dataurodzenia). Więc widzisz, że nie możesz od liczby 2021 odjąć stringa dataurodzenia, musisz przekonwertować do inta. No i podobnie jest porównaniem — liczba to nie to samo co napis, więc nie będą sobie równe.

0

Już to zrobiłem, działa. thx (w złym miejscu skupiłem swoją uwagę na szukanie problemu)

2

Moja ogólna rada:

  1. Zainstaluj pycharm
  2. Jak cos nie działa, to stawiasz w kodzie breakpoint i uruchamiasz debugger i następnie przechodzisz kod step-by-step analizując wartości zmiennych

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