Python programovanie

Pomôžete mi niekto s úlohou ohľadom Pythona.
Máme napísať funkciu v pythone ,ktorá overí či zadaný reťazec je číslo (celé alebo desatinne,kladné či záporné) Ďakujem

3 odpovede
Ahoj,
jasné, rád ti pomôžem a vysvetlím ako to funguje. Pokojne mi napíš a dohodneme sa.
avatar
Zmazaný účet
Najjednoduchší spôsob, ako overiť, či je hodnota stringu int alebo float je pokúsiť sa pretypovať to na int alebo float:
int(retazec)
float(retazec)
Aby program nepadol na chybe v prípade, že to číslo nie je a nedá sa pretypovať, treba použiť odchytenie výnimky, teda
try:
int(retazec)
except ValueError:
print("Nie je cele cislo")
else:
print("Je cele cislo")

A skontrolovať, či je to kladné alebo záporné len jednoduchým porovnaním s nulou:
if x > 0:
print("Je kladné")
else:
print("Je záporné")
V prípade nejasností alebo akýchkoľvek ďalších otázok sa pokojne ozvi.
def overit_cislo(retezec):
try:
cislo = float(retezec) # Skúšame previesť reťazec na číslo
if cislo.is_integer():
if cislo >= 0:
return "Zadaný reťazec je celé kladné číslo."
else
return "Zadaný reťazec je celé záporné číslo."

else:
if cislo >= 0:
return "Zadaný reťazec je desatinné kladné číslo."
else:
return "Zadaný reťazec je desatinné číslo, ale je nula."
except ValueError:
return "Zadaný reťazec nie je číslo."

print(overit_cislo("42")) # Zadaný reťazec je celé kladné číslo.
print(overit_cislo("-3")) # Zadaný reťazec je celé záporné číslo.
print(overit_cislo("3.14")) # Zadaný reťazec je desatinné kladné číslo.
print(overit_cislo("-2.5")) # Zadaný reťazec je desatinné záporné číslo.
print(overit_cislo("0")) # Zadaný reťazec je nula.
print(overit_cislo("abc")) # Zadaný reťazec nie je číslo.