Android

Jak przekonwertować ciągi na liczby całkowite w pythonie

6. Kurs Python 3 - mini gra "zgadnij liczbę" (Praktyka)

6. Kurs Python 3 - mini gra "zgadnij liczbę" (Praktyka)

Spisu treści:

Anonim

Wszystkie typy danych w Pythonie, w tym liczby całkowite i ciągi, są obiektami. Często podczas pisania kodu w języku Python należy przekonwertować jeden typ danych na inny. Na przykład, aby wykonać operację matematyczną na liczbie reprezentowanej jako ciąg, należy ją przekonwertować na liczbę całkowitą.

W tym samouczku pokażemy, jak przekonwertować ciąg Pythona na liczbę całkowitą.

Funkcja int() Pythona

Wbudowana funkcja int() zwraca dziesiętną liczbę całkowitą z podanej liczby lub łańcucha. Przybiera następującą formę:

int(x, base=10)

Funkcja `akceptuje dwa argumenty:

  • x - Ciąg lub liczba do konwersji na liczbę całkowitą. base - reprezentuje system liczbowy pierwszego argumentu. Jego wartość może wynosić 0 i 2–36. Jeśli nie podano podstawy, wartością domyślną jest 10 (liczba całkowita dziesiętna).

Zazwyczaj liczby całkowite są wyrażane w notacji szesnastkowej (podstawa 16), dziesiętnej (podstawa 10), ósemkowej (podstawa 8) lub binarnej (podstawa 2).

Jeśli podany argument nie może być reprezentowany jako liczba całkowita, funkcja zgłosi ValueError .

Konwertowanie ciągu Python na liczbę całkowitą

W Pythonie „ciąg znaków” to lista znaków zadeklarowanych za pomocą pojedynczych ( ' ), podwójnych ( " ) lub potrójnych cudzysłowów ( """ ).

Jeśli zmienna zawierająca tylko liczby jest zadeklarowana za pomocą cudzysłowów, jej typ danych jest ustawiony na String. Rozważ następujący przykład:

days = "23" type(days)

Funkcja type() pokazuje, że days są obiektem typu String.

Spróbujmy wykonać operację matematyczną na zmiennej:

print(days+5)

Python zgłosi błąd wyjątku TypeError ponieważ nie możemy wykonać obliczenia dodania za pomocą łańcucha i liczby całkowitej:

Traceback (most recent call last): File " ", line 1, in TypeError: cannot concatenate 'str' and 'int' objects Traceback (most recent call last): File " ", line 1, in TypeError: cannot concatenate 'str' and 'int' objects Traceback (most recent call last): File " ", line 1, in TypeError: cannot concatenate 'str' and 'int' objects

Aby przekonwertować reprezentację ciągu dziesiętnej liczby całkowitej na liczbę int , przekaż ciąg do funkcji int() , która zwraca liczbę całkowitą dziesiętną:

days = "23" days_int = int(days) type(days_int)

print(days_int+5)

28

Jeśli liczba zawiera przecinki, oznacza tysiące, miliony itp., Musisz usunąć przecinki przed przekazaniem liczby do funkcji int() :

total = "1, 000, 000" int(total.replace(", ", ""))

1000000

Podczas konwersji ciągów reprezentujących liczby całkowite w różnych systemach liczbowych upewnij się, że używasz prawidłowej base .

Na przykład w systemie szesnastkowym liczba 54732 jest reprezentowana jako D5CF . Aby przekonwertować go na liczbę całkowitą dziesiętną, musisz użyć podstawy 16:

int("D5CF", 16)

54735

Jeśli przekażesz ciąg D5CF do funkcji int() bez ustawiania podstawy, ValueError wyjątek ValueError :

int("D5CF")

Traceback (most recent call last): File " ", line 1, in ValueError: invalid literal for int() with base 10: 'D5CF' Traceback (most recent call last): File " ", line 1, in ValueError: invalid literal for int() with base 10: 'D5CF' Traceback (most recent call last): File " ", line 1, in ValueError: invalid literal for int() with base 10: 'D5CF'

Wniosek

W Pythonie można przekonwertować ciąg znaków na liczbę całkowitą za pomocą funkcji int() .

pyton