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»

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

Скачать ×

  • 2 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