Přeskočit na obsah

Python/Kenjiro995/Testování hodnot

Z Wikiverzity

Test alfanumerických znaků

[editovat]
a = "abc"
b = "abc123"
c = "123"
d = "3.14"

print(a, a.isalpha())
print(b, b.isalpha())
print(c, c.isalpha())
print(d, d.isalpha())

Výstup:

abc True
abc123 False
123 False
3.14 False

Test číselných znaků

[editovat]
a = "abc"
b = "abc123"
c = "123"
d = "3.14"

print(a, a.isdigit())
print(b, b.isdigit())
print(c, c.isdigit())
print(d, d.isdigit())

Výstup:

abc False
abc123 False
123 True
3.14 False

Test desetiného čísla

[editovat]

Nejdříve je dobré z čísla odstranit tečku, a poté otestovat na přítomnost čísla.

Odstranění jedné tečky:

a = "123.1548"
print(a.replace('.','',1))

Výstup:

1231548


a = "3.14.5"
print(a.replace('.','',1)) # odstranil jen jednu tečku
print(a.replace('.','')) # odstranil všechny tečky

Výstup:

314.5
3145
a = "3.14:5.18.25"
print(a.replace(".","",1)) # odstraní jednu tečku
print(a.replace(".","").replace(":", "")) # odstraní všechny tečky a dvojtečky

Výstup:

314:5.18.25
31451825


Testování přítomnosti desetinného čísla:

a = "123.1548"
print(a.replace('.','',1).isdigit()) # True protože je číslo a mělo i tečku

if a.replace('.','',1).isdigit():
  print("Jde o celé číslo nebo desetiné číslo")
else:
  print("Špatný vstup, raději zadejte znovu")

Výstup:

True
Jde o celé číslo nebo desetiné číslo


a = "123.1548"
print(a.replace('.','',1))
print(a) # proměnná se nezměnila

Výstup:

1231548
123.1548
a = "123.1548"
print(a)
a = a.replace('.','',1) # proměnná se změnila
print(a)

Výstup:

123.1548
1231548


Test na přítomnost desetinného čísla nebo celého čísla:

a = "123.1548"
b = "123"

print(a, a.replace('.','',1).isdigit())
print(b, b.replace('.','',1).isdigit())

Výstup:

123.1548 True
123 True

Test přítomnosti znaku

[editovat]
a = "123.1548"
b = "123"
print("testuju přítomnost znaku tečky")
print(a, "." in a)
print(b, "." in b)
print()

print("testuju přítomnost znaku 8")
print(a, "8" in a)
print(b, "8" in b)

Výstup:

testuju přítomnost znaku tečky
123.1548 True
123 False

testuju přítomnost znaku 8
123.1548 True
123 False


Testuje přítomnost slova "Python" v řetězci:

a = "Python je fajn jazyk."
b = "Mam raději JavaSript"
print(a, "Python" in a)
print(b, "Python" in b)

Výstup:

Python je fajn jazyk. True
Mam raději JavaSript False

Praktické využití

[editovat]
a = input("Zadejte číslo: ")

if a.isalpha():
  print("Váš vstup obsahuje pouze znaky abecedy, já chtěl číslo")
elif a.isdigit():
  print("Vás vstup obsahuje pouze čísla, což mi stačí")
elif a.replace('.','',1).isdigit():
  print("Váš vstup obsahuje desetiné číslo, což mi stačí")
elif " " in a:
  print("Pozor váš vstup obsahuje mezeru, což je špatně")
else:
  print("Zadal jste neplatný vstup")

Výstup:

Zadejte číslo: fdafds
Váš vstup obsahuje pouze znaky abecedy, já chtěl číslo

Výstup:

Zadejte číslo: 12587
Vás vstup obsahuje pouze čísla, což mi stačí

Výstup:

Zadejte číslo: 26.256987
Váš vstup obsahuje desetiné číslo, což mi stačí

Výstup:

Zadejte číslo: abc128
Zadal jste neplatný vstup

Výstup:

Zadejte číslo: abc 1598
Pozor váš vstup obsahuje mezeru, což je špatně