Pierwsze wyzwania z bardzo prostym programem

0

Uczę się Pythona już dwie godziny :D Czy mógłby mi ktoś wskazać jak można rozwiązać problem jaki sobie postawiłem?
Chcę stworzyć program który prosi o podanie wartości liczbowej. Instrukcja warunkowa ma sprawdzać, czy nie jest to 0. Ponadto chcę, aby zewnętrzna instrukcja sprawdzała, czy podany ciąg jest ciągiem liczbowym, a nie literami i w razie błędu wyświetlała komunikat. Myślałem nad czymś takim:

x = input()
x = int(x)
if type(x)!=int:
    print ("Błąd!!!")
else:
    if bool(x):
         print ("Dobrze")
    else:
         print ("Źle")

Problem polega tu na tym, że podanie ciągu liter wyrzuca błąd, przez to, że x=int(x) jeszcze przed pętlą. Jeśli natomiast chciałbym go wrzucić do pętli, to pojawia się kłopot z jej działaniem, bo zawsze (niezależnie czy podamy wartość liczbową czy litery) potraktuje to jako ciąg znaków String, przez: x=input(), bez zadeklarowania zamiany na Integer.

0

try
except

https://docs.python.org/2/tutorial/errors.html

while True:
...     try:
...         x = int(raw_input("Please enter a number: "))
...         break
...     except ValueError:
...         print "Oops!  That was no valid number.  Try again..."
...
0
>>> s = "4324"
>>> s.isdigit()
True
>>> s2 = "4324fd3"
>>> s2.isdigit()
False

W pętli:

while True:
    x = input()

    if x.isdigit():
        x = int(x)

        if x == 0:
            print ("Źle")
        else:
            print ("Dobrze")
0

To o czym piszecie jeszcze jest mi obce. Liczyłem, że uda się to jakoś sprytnie obejść poprzez zagnieżdżenia pętli, ale skoro tak, to chętnie wrócę do tego, gdy już dotrę do tego etapu.
W każdym razie bardzo dziękuję za pomoc :) Pozdrawiam

0

Czemu chcesz zagnieżdżać pętle? Do sprawdzania, czy w łańcuchu są tylko liczby? Po prostu obiekty, które masz w skrypcie, mają gotowe metody (funkcje) robiące, to co chcesz osiągnąć.

Ty bardziej motasz kod, sprawdzając typy, rzutując gdzie popadnie itp., więc nie gadaj, że używamy niezrozumiałych instrukcji ;) Po prostu naucz się tego co proponujemy i będziesz trochę więcej wiedział.

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