Share This
Связаться со мной
Крути в низ
Categories
//Как преобразовать строку в число в Python

Как преобразовать строку в число в Python

03.12.2021Category : Python

При написании кода нам довольно часто приходится переходить с одного типа данных на другой. Поэтому возможность конвертировать типы данных очень важна. Она дает нам большую гибкость при работе с информацией и в написании эффективно и корректно работающего кода.

В Python есть различные встроенные способы преобразования типов. Мы уже разбирали, как преобразовать строку в число с плавающей точкой. В этой статье мы остановимся на том, как преобразовать строку в целое число.

Итак, давайте начнем!

Типы данных в Python

Python поддерживает много типов данных. Они нужны для определения, представления и обработки различных видов данных, которые существуют и используются в компьютерных программах.

Кроме того, с разными типами данных нам доступны разные операции: то, что вы можете сделать с данными одного типа, невозможно сделать с другими. Например, в Python есть строковые методы, которые используются исключительно для работы со строками. К примеру, .lowercase() и .uppercase() для приведения символов строки в нижний и верхний регистр. И таких примеров очень много. Фактически, подавляющее большинство методов подходят только для какого-то одного типа данных.

Одним из типов данных Python являются строки. Строки – это последовательности символов, которые используются для передачи текстовой информации.

Строки заключаются в одинарные или двойные кавычки. К примеру, это может выглядеть следующим образом:

fave_phrase = "Hello world!"  # Hello world! - это строка, заключенная в двойные кавычки

Инты или интеджеры (integers) – это целые числа. Они используются для представления числовых данных. Более того, при работе с целыми числами вы можете выполнять любые математические операции (например, сложение, вычитание, умножение или деление).

Целые числа не заключаются в одинарные или двойные кавычки. Они представляются просто в виде последовательности цифр:

fave_number = 7  # 7 имеет тип int, это целое число # "7" было бы не int, а string, несмотря на то, что это цифра # Все дело в кавычках

kak preobrazovat stroku v chislo v python dd73109 - Как преобразовать строку в число в Python

Марк Лутц «Изучаем Python»

Скачивайте книгу у нас в телеграм

Скачать ×

Преобразование типов данных

Бывает, данные хранятся или получаются от пользователя в неподходящем формате, т.е. тип этих данных не подходит для манипуляций, которые с ними нужно проделать.

Поскольку каждым типом данных можно управлять по-разному, это часто означает, что перед выполнением наших задач нам нужно преобразовать этот тип данных в более подходящий для конкретной задачи.

Преобразование одного типа данных в другой также называется приведением типа или преобразованием типа. Многие языки предлагают встроенные операторы приведения именно для этого – для явного преобразования одного типа в другой.

Давайте, наконец, посмотрим, как же это сделать.

Как преобразовать строку в число (int) в Python

Чтобы преобразовать строку в целое число, можно использовать встроенную функцию int().

Функция принимает в качестве параметра исходную строку, которую вы хотите преобразовать, и возвращает целочисленный эквивалент переданного вами значения.

Общий синтаксис выглядит примерно следующим образом: int(“str”).

Давайте рассмотрим следующий пример, где необходимое нам число представлено в виде строки:

# цифра 7 в строковом формате print("7")  # проверяем тип данных при помощи метода type() print(type("7"))   # Результат # 7 # <class 'str'>

Чтобы преобразовать строковую версию числа в целочисленный эквивалент, нам нужно воспользоваться функцией int(). К примеру, это можно сделать следующим образом:

# конвертируем string в int print(int("7"))  # проверяем тип данных при помощи метода type() print(type(int("7")))  # Результат #7 #<class 'int'>

Практический пример преобразования строки в целое число

Допустим, вам необходимо рассчитать возраст пользователя. Вы делаете это на основе полученной от него информации. Данный ввод всегда будет идти в строковом формате.

То есть, даже если пользователь вводит число, вы получите входящие данные строкового типа (<class ‘str’>).

Если вы захотите выполнить математические операции с этим инпутом, например вычесть введённое значение из другого числа, вы получите сообщение об ошибке, потому что выполнять математические операции со строками нельзя.

Давайте разберем пример, чтобы увидеть, как это происходит в действии:

current_year = 2021  # просим пользователя ввести его год рождения user_birth_year_input = input("What year were you born? ")  # вычитаем текущий год из года, введенного пользователем  user_age = current_year - user_birth_year_input  print(user_age)  # Результат # What year were you born? 1993 # Traceback (most recent call last): #  File "demo.py", line 9, in <module> #    user_age = current_year - user_birth_year_input # TypeError: unsupported operand type(s) for -: 'int' and 'str'

Итак, мы просим пользователя ввести его год рождения, чтобы на основе этой информации узнать его возраст (вычесть введенный год из 2021). В данном примере, для упрощения задачи, мы не учитываем месяц и дату рождения. Здесь главное понять принцип.

Однако запустив наш код, мы получаем ошибку. В ней сказано, что вычитание не может выполняться между целым числом int и строкой.

Давайте проверим тип данных, введенных с помощью метода type():

current_year = 2021  # просим пользователя ввести его год рождения user_birth_year_input = input("What year were you born? ")  print(type(user_birth_year_input))  # Результат  # What year were you born? 1993 # <class 'str'>

Действительно, переменная user_birth_year_input является строковой. Всё дело в том, что функция input(), которую мы используем для получения данных от пользователя, всегда возвращает данные строкового типа. Это важно помнить и преобразовывать введенные данные в подходящий для вашей задачи тип.

В нашем примере, чтобы избежать ошибок, нужно преобразовать вводимые пользователем данные в целое число и сохранить его в новой переменной. Сделать это можно следующим образом:

current_year = 2021  # просим пользователя ввести его год рождения user_birth_year_input = input("What year were you born? ")  # конвертируем пользовательский input в int при помощи функции int() и сохраняем в новой переменной user_birth_year = int(user_birth_year_input)  # вычитаем текущий год из введенного пользователем года user_age = current_year - user_birth_year  print(user_age)  # Результат  # What year were you born? 1993 # 28

Как видите, код отработал корректно, и мы получили возраст пользователя.

Важно отметить, что функция int() выдаст вам ошибку, если исходная строка будет содержать какие-либо ещё символы помимо цифр. Например, если пользователь (по ошибке или специально) введет 19f8 в качестве года рождения, то вы получите ошибку. В таком случае важно прописывать так называемую «защиту от дурака». Это можно сделать с помощью конструкции try except, подробнее про это можно почитать в статье «Обрабатываем исключения в Python: try и except».

Заключение

Вот и все – теперь вы знаете, как преобразовать строку в число в Python! Мы разобрали такой встроенный метод как int(), как он работает и как его использовать для приведения строки к целому числу.

Спасибо за чтение! Надеемся, статья была вам полезна. Успехов в написании кода!

Перевод статьи «Python Convert String to Int – How to Cast a String in Python».

kak preobrazovat stroku v chislo v python 8670a72 - Как преобразовать строку в число в Python

Марк Лутц «Изучаем Python»

Скачивайте книгу у нас в телеграм

Скачать ×

  • 0 views
  • 0 Comment

Leave a Reply

Ваш адрес email не будет опубликован.

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Свежие комментарии

    Рубрики

    About Author 01.

    blank
    Roman Spiridonov

    Моя специальность - Back-end Developer, Software Engineer Python. Мне 39 лет, я работаю в области информационных технологий более 5 лет. Опыт программирования на Python более 3 лет. На Django более 2 лет.

    Categories 05.

    © Speccy 2022 / All rights reserved

    Связаться со мной
    Close