Přejít na hlavní obsah

Jak zkontrolovat, že v řádku jsou pouze čísla Pythonu

Při práci s textovými daty v Pythonu je často nutné zkontrolovat, že řádek obsahuje pouze čísla. To může být užitečné například při validaci vstupu od uživatele nebo při analýze dat.

V Pythonu existuje několik způsobů, jak zkontrolovat řetězec, zda neobsahuje pouze čísla. Jedním z nejjednodušších a nejrychlejších způsobů je použití metody isdigit(). Tato metoda vrací True, pokud je na řádku pouze číslice, a False jinak.

Kromě toho lze použít funkci isnumeric(), která také kontroluje, zda se řetězec skládá pouze z čísel. Na rozdíl od isdigit(), isnumeric() počítá také další symboly, jako jsou zlomková čísla a symboly z jiných abeced.

U složitějších kontrol lze použít regulární výrazy. Lze využít například modul re a funkce match(), která zkontroluje, zda řetězec odpovídá dané šabloně. V regulárních výrazech lze určit, že řetězec by měl sestávat pouze z číslic pomocí šablony "^\d+$".

Metody pro kontrolu přítomnosti čísel v řádku

V Pythonu existuje několik metod ke kontrole čísel v řádku. Zvažte některé z nich:

  1. Metoda isdigit (): tato metoda vrací True , pokud jsou všechny znaky v řádku číslicemi a False jinak. Například: string = "12345" print (string.isdigit()) # Output: True string = "12345abc" print(string.isdigit()) # Output: False
  2. Metoda isdecimal () : tato metoda vrací True, pokud jsou všechny znaky v řádku desetinnými číslicemi (0 až 9) a jinak False. Například: string = "12345" print (string.isdecimal()) # Output: True string = "12345abc" print(string.isdecimal()) # Output: False
  3. Metoda isnumeric (): tato metoda vrací True , pokud jsou všechny znaky v řádku čísla a False jinak. Zahrnuje také speciální znaky související s čísly, jako jsou zlomky, indexy atd. Například: string = "12345" print(string.isnumeric()) # Output: True string = "12345abc" print(string.isnumeric()) # Output: False string = "½" print(string.isnumeric()) # Output: True

Tyto metody lze tedy použít ke kontrole, zda řetězce obsahují pouze čísla v Pythonu. Jejich použití může být užitečné při různých úkolech, jako je validace uživatelského vstupu nebo zpracování dat.

Použití metody isnumeric()

Příklad použití metody isnumeric() :

    Následující kód zkontroluje, zda jsou všechny znaky na řádku "12345" čísly:
string = "12345"
string = "12.34"
string = ""

Metoda isnumeric () může být užitečná pro kontrolu uživatelsky zadaných dat a také pro validaci vstupního řádku před jeho dalším zpracováním.

Kontrola pomocí metody isdigit()

string = "12345"print(string.isdigit()) # Truestring = "12345A"print(string.isdigit()) # False

V uvedeném příkladu je řádek "12345" číselná a metoda isdigit() vrací True. Nicméně, řádek "12345a" obsahuje písmeno 'A', takže metoda vrací False.

Použití metody isdecimal ()

Použití metody je velmi jednoduché. Níže je uveden příklad kontroly řetězce na přítomnost pouze desetinných čísel:

my_string = "123456"if my_string.isdecimal():print("Строка состоит только из цифр")else:print("Строка содержит другие символы")

V tomto případě, pokud je proměnná my_string obsahuje pouze desetinná čísla, na obrazovce se zobrazí zpráva "řetězec se skládá pouze z číslic". V opačném případě bude na obrazovce zobrazena zpráva "řetězec obsahuje další znaky".

Je třeba poznamenat, že metoda isdecimal() vracet False, pokud řetězec obsahuje znaky, které nejsou desetinnými číslicemi, jako jsou desetinná dělidla, Interpunkce atd.

Metoda isdecimal() může být velmi užitečné pro kontrolu uživatelského vstupu, například když je třeba se ujistit, že zadaná hodnota představuje pouze číselné informace.

Použití regulárních výrazů

Pro ověření, že na řádku jsou pouze čísla, můžeme použít následující pravidelnou šablonu: ^\d+$ . V této šabloně ^ označuje začátek řetězce, \d označuje libovolnou číslici a + označuje, že číslice se může opakovat jednou nebo vícekrát. Symbol $ označuje konec řádku.

Zde je příklad použití regulárního výrazu ke kontrole řetězce:

result = re.match(pattern, string)

Zde používáme funkci re.match (), která se snaží najít shodu regulárního výrazu na začátku řádku. Pokud je nalezena shoda, vrátí se objekt s informací o shodě, jinak se vrátí hodnota None .

Použití regulárních výrazů nám tedy umožňuje snadno a efektivně kontrolovat řádky pouze na čísla v Pythonu.

Funkce isdigit () spolu s metodou replace()

Chcete-li vyloučit všechny znaky kromě číslic z řádku, můžete použít metodu replace() . Tato metoda vám umožňuje nahradit jeden znak nebo podstavec jiným symbolem nebo podstavcem.

string = "12a34"new_string = string.replace("a", "")new_string.isdigit()# Output: True

V tomto příkladu metoda replace () nahrazuje znak "a" prázdným řádkem a nový řetězec new_string se skládá pouze z číslic. Následné volání isdigit () vrátí True .

Použití metody replace () ve spojení s isdigit () je spolehlivější způsob, jak zkontrolovat pouze čísla v řádku.

Použití knihovny NumPy ke kontrole pouze čísel na řádku

V Pythonu existuje několik způsobů, jak zkontrolovat pouze čísla v řádku. V tomto článku se podíváme na metodu založenou na použití knihovny NumPy.

NumPy je knihovna Pythonu, která poskytuje výkonné nástroje pro práci s vícerozměrnými poli a maticemi. Obsahuje také funkce pro provádění operací souvisejících s čísly, včetně kontroly datových typů v poli.

Chcete-li použít knihovnu NumPy, musíte ji nejprve nainstalovat do počítače. K tomu lze využít systém správy PIP balíčků:

!pip install numpy

Po úspěšné instalaci knihovny můžete začít ověřovat přítomnost pouze čísel v řádku. K tomu lze využít funkci numpy.isnumeric() .

Níže je uveden příklad kódu, který ukazuje použití funkce numpy.isnumeric() :

import numpy as npdef check_numeric_string(input_string):# Преобразуем строку в массив символовchar_array = np.array(list(input_string))# Проверяем тип данных каждого символаis_numeric = np.char.isnumeric(char_array)# Проверяем, что все символы являются числамиreturn np.all(is_numeric)

V tomto příkladu funkce check_numeric_string () přijme řetězec a převede jej na pole znaků pomocí knihovny NumPy. Poté zkontroluje datový typ každého znaku pomocí funkce numpy.char.isnumeric() . Nakonec pomocí funkce numpy.all () je ověřeno, že všechny znaky jsou čísla. Funkce vrátí True, pokud jsou všechny znaky čísla, a False jinak.

Uveďme příklad použití funkce check_numeric_string() :

input_string = '12345'result = check_numeric_string(input_string)print(result) # Trueinput_string = 'abc123'result = check_numeric_string(input_string)print(result) # False

V důsledku provádění kódu bude stažen:

TrueFalse

Knihovna NumPy tak poskytuje pohodlný způsob, jak zkontrolovat pouze čísla v řádku. Tato metoda je zvláště užitečná, pokud je třeba zkontrolovat velké množství dat, protože Knihovna NumPy má vysoký výkon.