Как перевести строку в число python: Преобразование строк в целые числа Python

Содержание

Преобразование строк в целые числа Python

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

year = input(«Год вашего рождения:\n») year = int(year)

year = input(«Год вашего рождения:\n»)

year = int(year)

Первая из этих двух строк принимает пользовательский ввод (строку) и де­лает его значением переменной year. Во второй строке выполняется преобразова­ние: функция int() принимает строку, на которую ссылается year, и возвращает ее преобразованной в целое число. Это новое значение присваивается той же пере­менной year.

В следующих пяти строках другие издержки принимаются из пользовательско­го ввода и преобразуются в числа:

countries = int(input(«Сколько государств?\n»)) players = int(input(«Сколько игроков участвуют?\n»)) goals = int(input(«Сколько голов забил зенит?\n»)) fingers = int(input(«Сколько пальцев на одной руке?\n»)) books = int(input(«Сколько книг желаете купить?\n»))

countries = int(input(«Сколько государств?\n»))

players = int(input(«Сколько игроков участвуют?\n»))

goals = int(input(«Сколько голов забил зенит?\n»))

fingers = int(input(«Сколько пальцев на одной руке?\n»))

books = int(input(«Сколько книг желаете купить?\n»))

Заметьте, что каждое присвоение выполняется в одну строку кода. А все потому, что вызовы функций input() и int() — вложенные. Когда говорят о вложении вы­зовов функций, имеют в виду, что один находится внутри другого. Это удобно, если значение, возвращаемое «внутренней» функцией, может выступать как арrумент для «внешней» функции. Здесь input() возвращает строковое значение, которое int() успешно преобразует в число.

В конструкции, присваивающей значение переменной goals, функция input() сначала спрашивает у пользователя, сколько голов забил зенит. Поль­зователь что-то отвечает, это строковое значение input() возвратит, после чего программа применит функцию int() к этой строке как аргументу. В свою оче­редь, int() возвратит целое число. Это число и становится значением перемен­ной goals. Точно так же присвоение выполняется и в следующих выраже­ниях.

Есть и другие функции конвертации значений между типами. Некоторые из них перечислены ниже.

Функция Описание Пример Результат
float(x) Преобразует значение х в десятичную дробь float(5) 5.0
int(x) Преобразует значение х в целое число int(«30») 30
str(x) Преобразует значение х в строку str(50.5) ‘50.5’

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

Преобразование чисел в строки в Python

Чтобы конвертировать число в строку, используйте встроенную функцию str(). Эта функция в качестве входящих данных принимает число (или другой тип данных), а в результате выдает строку.

Примеры

Вот один пример:

>>> str(123)
'123'

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

>>> number = 999
>>> number_as_string = str(number)
>>> number_as_string
'999'

Конкатенация строк и чисел в Python

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

>>> week = 33
>>> greeting = "it is week " + str(week)
>>> greeting
'it is week 33'

Избегаем преобразования типов данных

Когда разработчикам нужно объединить число и строку, они обычно применяют функцию str() непосредственно перед выводом данных на экран. Например:

>>> name = "Bob" >>> age = 33 >>> print(name + " is " + str(age) + " years old") Bob is 33 years old

Но гораздо более чистый способ — применять к строкам метод .format():

>>> print("{name} is {age} years old".format(name=name, age=age))
Bob is 33 years old

А еще лучше — использовать f-строки (Python 3):

>>> print(f"{name} is {age} years old")
Bob is 33 years old

Python: преобразование строки в число | Python

Одна из наиболее распространенных вопросов, связанных со строками — из преобразование в число. Как преобразовать в python строку в число мы рассмотрим в этом посте. Также сможем проверить, является ли содержимое строки числом. В стандартной библиотеке python есть великолепные функции преобразования. Но к сожалению они ограничены. Функция int() возвращает целое число, если получает на входе строку с целочисленным значением. Та же история с float() — число с плавающей точкой. Иначе обе эти функции возвращают ошибку TypeError… Ниже приведен полный код программы, в которой 5 функций:
  1. Чистка строки: удаляет из строки все символы, доведя содержимое до целочисленного или числа с плавающей точкой.
  2. Функция преобразования строки в целочисленное. На входе должна быть строка с любым числовым содержимым: «123.4» или «232»
  3. Функция проверки содержимого строки на «целочисленность».
  4. Функция преобразования строки в число с плавающей точкой. На входе должна быть строка с любым числовым содержимым: «123.4» или «232»
  5. Проверяем, является ли содержимое строки числом с плавающей точкой.
Это, на мой взгляд, наиболее распространенные задачи, которые приходится решать в области преобразования строк в числа. Далее код программы:
# ~*~ coding: utf8 ~*~

def clear_string(str, to_int = None):
    """
    Чистим строку от "мусора" - нечисловых символов.
    """
    new_str = ""
    for s in str:
        # сначала ищем точку (вдруг число с плавающей точкой)
        # при этом в новой строке не должно быть больше одной точки
        # и в условии to_int не определен
        if s == "." and "." not in new_str and not to_int:
            new_str += s
        else:
            try:
                i = int(s)
                new_str += s
            except:
                pass
    return new_str

def str_to_int(str):
    """
    Преобразование стоки в целое число
    """
    # попробуем воспользоваться самым простым методом
    try:
        return int(str)
    except:
        # если не получилось, то проверяем почему? допускаем, что было передано не целое число в строке
        if "." in str:
            str = str[0:str.find(".")]
            return str_to_int(str)
        else:
            # если уж совсем дела плохи, то возвращаем 0
            return 0

def check_int(str):
    try:
        int(str)
        return True
    except:
        return False

def str_to_float(str):
    """
    Преобразование стоки в число с плавающей точкой
    """
    # попробуем воспользоваться самым простым методом
    try:
        return float(str)
    except:
        # других вариантов не осталось. скорее всего функция приняла на входе мусор
        return 0

def check_float(str):
    try:
        float(str)
        return True
    except:
        return False

# есть у нас незатейливая строка
str = "a23d.d.5ff6"
# проверяем функцию чистки строки
print("Чищеная строка: %s" % clear_string(str))
print("Чищеная строка с to_int: %s" % clear_string(str, to_int=True))
# до преобразования строки в число следовало бы почистить ее
print("Преобразуем мусор в целое число: %s" % str_to_int(str))
print("Преобразуем чищеную строку в целое число: %s" % str_to_int(clear_string(str)))
# преобразуем строку в число с плавающей точкой
print("Преобразуем мусор в число с плавающей точкой: %s" % str_to_float(str))
print("Преобразуем чищеную строку в число с плавающей точкой: %s" % str_to_float(clear_string(str)))

print("Проверяем, является ли содержимое строки целочисленным: %s" % check_int(str))
print("Проверяем, является ли содержимое чищеной строки целочисленным: %s" % check_int(clear_string(str, to_int=True)))
print("Проверяем, является ли содержимое строки числом с плавающей точкой: %s" % check_float(str))
print("Проверяем, является ли содержимое чищеной строки числом с плавающей точкой: %s" % check_float(clear_string(str)))
Задачу по проверке содержимого строки на целочисленность можно было бы решить с помощью стандартной функции isdigit(). Но это слишком просто. Для наглядности и создали функцию check_int(), которая работает так же, как и isdigit().
# Для успокоения души слишком любознательных приведу пример
"s34".isdigit()
# False
"34".isdigit()
# True
clear_string("s43de463").isdigit()
# True
Ну и напоследок, если у вас есть комментарии или более интересные задачи из выше рассмотренной области, то прошу комментировать. Попробуем решить задачу вместе.

Как конвертировать строки в целые числа в Python

Все типы данных в Python, включая целые числа и строки, являются объектами. Часто при написании кода на Python вам необходимо преобразовать один тип данных в другой. Например, чтобы выполнить математическую операцию с числом, представленным в виде строки, его необходимо преобразовать в целое число.

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

 

Встроенная функция int() возвращает десятичный целочисленный объект из заданного числа или строки. Он принимает следующую форму:

int(x, base=10)

Функция принимает два аргумента:

  • x – Строка или число для преобразования в целое число.
  • base – Он представляет собой систему счисления первого аргумента. Его значение может быть 0 и 2–36. Если база не указана, по умолчанию используется 10 (десятичное целое число).

Обычно целые числа выражаются в шестнадцатеричном (основание 16), десятичном (основание 10), восьмеричном (основание 8) или двоичном (основание 2) обозначении.

Если данный аргумент не может быть представлен как целое число, функция выдаст исключение ValueError.

 

В Python «строка» – это список символов, который объявляется с помощью одинарных (‘), двойных (“) или тройных кавычек (“””).

Если переменная, которая содержит только числа, объявляется с помощью кавычек, ее тип данных устанавливается на String. Рассмотрим следующий пример:

days = "23"
type(days)

Функция type() показывает нам , что daysэто объект типа String.

<type 'str'>

Давайте попробуем выполнить математическую операцию над переменной:

print(days+5)

Python выдаст ошибку исключения TypeError, потому что мы не можем выполнить сложное вычисление со строкой и целым числом:

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

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

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

 

<type 'int'>

Если вы сейчас попытаетесь сделать математику, операция суммирования будет выполнена успешно:

print(days_int+5)

 

28

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

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

 

1000000

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

Например, в шестнадцатеричной системе число 54732 представляется как D5CF. Чтобы преобразовать его в десятичное целое, вам нужно использовать основание 16:

int("D5CF", 16)

 

54735

Если вы передадите D5CFстроку в функцию int() без установки базы, она выдаст исключение ValueError:

int("D5CF")

 

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

 

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

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

5 примеров преобразования строки в целое число или число с плавающей точкой в Python

Ну а как насчёт строки наподобие “5,000,000”? Если попытаетесь преобразовать ее, используя функции int() или float(), то получите ошибку.

Решением будет использование import locale. Например:

locale.setlocale(locale.LC_ALL, ‘en_US.UTF-8’ )

Но это может вызвать проблемы в остальных локалях. Другое решение заключается в том, чтобы заменить запятые пустыми строками, то есть“”, а затем использовать функцию int.

Код:

str_a = '5,123,000'
int_b = int(str_a.replace(',',''))
print ("The integer value",int_b)

В результате получаем целое значение. Это же решение можно применить для конвертации строки в число с плавающей точкой.

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

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

#Пример расчёта високосного года
try:	
Y = int(input("Enter a Year? "))

exceptValueError:
print ("You may only enter digits in '2000' format!")
else:
leap_or_not = Y%4 == 0
ifleap_or_not:
print ("Leap year")
else:
print ("Not a leap year")

Вводимая строка сразу преобразуется в целое число, а затем используется для расчёта.

Для преобразования целых чисел в строки в Python можно использовать функцию str(). Функция str() принимает объект, который может быть типа int, float, double и т.п.

Рассмотрим пример преобразования переменной типа int в строку, которая затем используется как строка для конкатенации:

#Примерпреобразованияint в string

a_string = "str function for int to string"
a_num = 456

print (a_string + str(a_num))

Вывод:

str function for int to string456

Если бы целочисленная переменная была использована без функции str(), возникла бы ошибка TypeError.

Данная публикация представляет собой перевод статьи «5 examples to Convert a Python string to int and float» , подготовленной дружной командой проекта Интернет-технологии.ру

телеграм канал. Подпишись, будет полезно!

Преобразование числа в строку в Python?

Я хочу преобразовать целое число в строку в Python. Я пишу его напрасно:—4—>

d = 15
d.str()

когда я пытаюсь преобразовать его в строку, он показывает ошибку, как int не имеет никакого атрибута с именем str.

1042

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Theme: Overlay by Kaira Extra Text
Cape Town, South Africa