Jak przekonwertować ciąg znaków na liczbę całkowitą za pomocą Pythona



W tym artykule znajdziesz szczegółową i wszechstronną wiedzę na temat różnych sposobów konwertowania ciągu znaków na liczbę całkowitą wraz z przykładami.

W tym temacie dowiemy się, jak przekonwertować ciąg znaków na liczbę całkowitą z użyciem wbudowanego typu danych i bez niego. Wiemy, że łańcuch to zbiór znaków ułożonych sekwencyjnie w cudzysłowach, a liczba całkowita to liczba bez żadnych miejsc dziesiętnych i nie ujęta w cudzysłów.

Ciąg na liczbę całkowitą w Pythonie





Ale kiedy pojawia się pytanie, jak przekonwertować jeden typ danych na inny, Python zapewnia łatwy sposób konwersji na siebie. W tym przypadku widzimy, jak możemy przekonwertować ciąg na liczbę całkowitą w następującej kolejności:

Korzystanie z wbudowanych typów danych



Załóżmy, że kiedy z jakiegoś powodu pobieram dane wejściowe od użytkownika, Python pobiera je i zwraca jako sam ciąg. Innymi słowy, nawet jeśli ktoś wpisze liczbę jako dane wejściowe, Python zwróci ją jako ciąg.

name = input ('Jak masz na imię:') print (name) print (type (name)) age = input ('What is your age:') print (age) print (type (age))

Wynik:

Jak masz na imię: Tyra



Tyra

Ile masz lat: 20

dwadzieścia

Więc widzisz, typ imienia i wieku jako dane wejściowe to „Ciąg”.

Załóżmy teraz, że jeśli chcemy dodać 5 do wieku, wykonamy następujące czynności:

name = input ('Jak masz na imię:') print (name) print (type (name)) age = input ('What is your age:') print (age) print (type (age)) print (age + 5)

Wynik:

Jak masz na imię: Tyra

Tyra

Ile masz lat: 20

dwadzieścia

Traceback (ostatnie ostatnie połączenie):

Plik „C: /Users/prac.py”, wiersz 9, w

drukuj (wiek + 5)

TypeError: musi być str, a nie int

Nie możemy dodać 5 do wieku, ponieważ wiek jest typu String i nie możemy bezpośrednio obliczyć ciągów. Musimy więc zmienić wiek na liczbę całkowitą, ponieważ przyjęliśmy wiek jako dane wejściowe, a Python zwraca go jako ciąg.

W związku z tym.

name = input ('Jak masz na imię:') print (name) print (type (name)) age = input ('What is your age:') print (age) print (type (age)) age = int ( wiek) print (wiek + 5)

Wynik:

Jak masz na imię: Tyra

Tyra

Ile masz lat: 20

dwadzieścia

25

Tradycyjny sposób

Załóżmy, że nie chcemy używać funkcji wbudowanej int () do konwersji ciągu znaków na liczbę całkowitą.Więc musimy użyć konwencjonalny sposób przekonwertować na.

Oto prosty sposób na konwersję bez użycia funkcji int ().

'' '' 123 '-> 123' -12332 '-> -12332' '' def str_to_int (input_str): output_int = 0 if input_str [0] == '-': start_idx = 1 is_negative = True else: start_idx = 0 is_negative = False for i in range (start_idx, len (input_str)): place = 10 ** (len (input_str) - (i + 1)) digit = ord (input_str [i]) - ord ('0') output_int + = place * digit if is_negative: return -1 * output_int else: return output_int s = '554' x = str_to_int (s) print (type (x)) s = '123' print (str_to_int (s)) s = Drukuj '-123' (str_to_int (s))

Wynik:

co oznacza tostring w java

123

-123

  • Najpierw sprawdzimy, czy liczba podana przez użytkownika zawiera znak minus, czy nie, tj. Czy jest liczbą ujemną, czy nie.Jeśli zawiera na pierwszej pozycji znak minus, zaczynamy naszą konwersję od drugiej pozycji, która zawiera liczby.

  • Dowolną liczbę, powiedzmy 123, można zapisać w postaci -10 ** 2 * 1 + 10 ** 1 * 2 + 10 ** 0 * 3

  • Podobnie dzielimy każdą liczbę wejściową za pomocą słowo (argument) .

  • ord („0”) zwróci 48, ord („1”) zwróci 49 itd.

  • Tutaj używamy logiki ord ('1') - ord ('0) = 1, ord (' 2 ') - ord (' 0 ') = 2 itd., Co daje nam znaczącą liczbę do pobrania z podanego numer wejścia.

  • W końcu wynik, który otrzymujemy z funkcji, jest prawidłową liczbą całkowitą, którą przekonwertowaliśmy z podanego ciągu wejściowego.

Jak widać, możemy przekonwertować dowolny ciąg znaków na liczbę całkowitą za pomocą funkcji int () lub w konwencjonalny sposób.

Mam nadzieję, że dobrze nauczyłeś się tych pojęć i dlatego wypróbowałeś je, aby być dokładniejszym, i dzięki temu dochodzimy do końca tego artykułu o konwersji ciągu znaków na int przy użyciu Pythona.

Masz do nas pytanie? Wspomnij o tym w sekcji komentarzy tego samouczka String to Integer, a my skontaktujemy się z Tobą tak szybko, jak to możliwe.

Aby uzyskać dogłębną wiedzę na temat języka Python i jego różnych aplikacji, możesz zarejestrować się na żywo z całodobowym wsparciem i dożywotnim dostępem.