Как изменить str на int python

Преобразование строки в число в Python. Особенности преобразования числа в строку в OTUS, только интересные посты!

Python_Deep_21.1-5020-77b56f.png

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

Чтобы осуществить преобразование строки в целое число либо число с плавающей точкой, в Python используют функции int и float. Если вы захотите выполнить преобразование без применения данных функций, то получите ошибку. Например, к ошибке приведёт следующий код:

str_a = 50
b = 10
c = str_a + b
print (c)

Преобразование строки в целое число с помощью int() в Python

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

str_a = '50'
b = 10
c = int(str_a) + b
print ("The value of c = ",c)  

С его помощью мы выведем значение переменной «c», которое будет представлять собой сумму переменных «str_a» и «b».

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

Для преобразования строки в число с плавающей точкой мы можем использовать float:

#Преобразование string во float
str_a = '50.85'
b = 10.33
c = float(str_a) + b
print ("The value of c = ",c) 

Однако учтите, что если вы захотите задействовать тут функцию int(), это приведёт к ошибке.

Преобразуем список строковых чисел в список целых чисел в Python

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

#Преобразование string в int в списке
str_lst = ['1', '2', '3']
int_lst = [int(x) for x in str_lst]
print (int_lst)

Мы выведем новый список, который будет состоять из целых чисел, полученных из строк.

Преобразуем список строк в список чисел с плавающей точкой в Python

Аналогично можно применять float вместо int для выполнения преобразования списка, включающего в себя строки из целых чисел:

#Преобразование string во float в списке
str_lst = ['10.505', '2.3', '3.99']
float_lst = [float(x) for x in str_lst]
print (float_lst)

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

Что делать, если у нас строка наподобие «1,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.

Преобразование строки в число при расчёте високосного года в 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(). Она принимает объект, который может иметь тип 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.

Improve Article

Save Article

  • Read
  • Discuss
  • Improve Article

    Save Article

    In Python, a string can be converted into an integer using the following methods :

    Method 1: Using built-in int() function: 

    If your string contains a decimal integer and you wish to convert it into an int, in that case, pass your string to int() function and it will convert your string into an equivalent decimal integer.

    Syntax : int(string, base)

    Parameter : This function take following parameters :

    • string : consists of 1’s, 0’s or hexadecimal ,octal digits etc.
       
    • base : (integer value) base of the number.

    Returns : Returns an integer value, which is equivalent 
    of string in the given base. 

    Code :

    Python3

    string = "100"

    print(type(string))

    string_to_int = int(string)

    print(type(string_to_int))

    Output:

    <class 'str'>
    <class 'int'>
    

    By default, int() expect that the string argument represents a decimal integer. Assuming, in any case, you pass a hexadecimal string to int(), then it will show ValueError. In such cases, you can specify the base of the number in the string.

    Code:

    Python3

    string = "0x12F"

    print(type(string))

    string_to_int = int(string, 

                        base=16)

    print(type(string_to_int))

    Output:

    <class 'str'>
    <class 'int'>
    

    Method 2: Using user-defined function: 

     We can also convert a string into an int by creating our own user-defined function.

    Approach: 

    • we’ll check, if the number has any “-” sign or not, for if it is a negative number it will contain “-” sign. If it contains “-” sign, then we will start our conversion from the second position which contains numbers.
    • Any number, suppose 321, can be written in the structure : 10**2 * 3 + 10**1*2 + 10**0*1
    • Similarly, we split each of the input number using ord(argument), ord(‘0’) will return 48, ord(‘1’) returns 49 and so forth.
    • The logic here is that ord(‘1’) – ord(‘0) = 1, ord(‘2’) – ord(‘0’) = 2 and so on which gives us the significant  number to be fetched from the given input number.
    • Finally, the result we get from the function is an Integral number which we changed over from the given string.

    Code:

    Python3

    def string_to_int(input_string):

      output_int = 0

      if input_string[0] == '-' :

        starting_idx = 1

        check_negative = True

      else:

        starting_idx = 0

        check_negative = False

      for i in range(starting_idx, len(input_string)):

        place_value = 10**(len(input_string) - (i+1))

        digit_value = ord(input_string[i]) - ord('0')

        output_int += place_value * digit_value

      if check_negative :

        return -1 * output_int

      else:

        return output_int

    if __name__ == "__main__"

      string = "554"

      x = string_to_int(string)

      print(type(x))

      string = "123"

      print(type(string_to_int(string))) 

      string = "-123"

      print(type(string_to_int(string)))

    Output:

    <class 'int'>
    <class 'int'>
    <class 'int'>
    

    Improve Article

    Save Article

  • Read
  • Discuss
  • Improve Article

    Save Article

    In Python, a string can be converted into an integer using the following methods :

    Method 1: Using built-in int() function: 

    If your string contains a decimal integer and you wish to convert it into an int, in that case, pass your string to int() function and it will convert your string into an equivalent decimal integer.

    Syntax : int(string, base)

    Parameter : This function take following parameters :

    • string : consists of 1’s, 0’s or hexadecimal ,octal digits etc.
       
    • base : (integer value) base of the number.

    Returns : Returns an integer value, which is equivalent 
    of string in the given base. 

    Code :

    Python3

    string = "100"

    print(type(string))

    string_to_int = int(string)

    print(type(string_to_int))

    Output:

    <class 'str'>
    <class 'int'>
    

    By default, int() expect that the string argument represents a decimal integer. Assuming, in any case, you pass a hexadecimal string to int(), then it will show ValueError. In such cases, you can specify the base of the number in the string.

    Code:

    Python3

    string = "0x12F"

    print(type(string))

    string_to_int = int(string, 

                        base=16)

    print(type(string_to_int))

    Output:

    <class 'str'>
    <class 'int'>
    

    Method 2: Using user-defined function: 

     We can also convert a string into an int by creating our own user-defined function.

    Approach: 

    • we’ll check, if the number has any “-” sign or not, for if it is a negative number it will contain “-” sign. If it contains “-” sign, then we will start our conversion from the second position which contains numbers.
    • Any number, suppose 321, can be written in the structure : 10**2 * 3 + 10**1*2 + 10**0*1
    • Similarly, we split each of the input number using ord(argument), ord(‘0’) will return 48, ord(‘1’) returns 49 and so forth.
    • The logic here is that ord(‘1’) – ord(‘0) = 1, ord(‘2’) – ord(‘0’) = 2 and so on which gives us the significant  number to be fetched from the given input number.
    • Finally, the result we get from the function is an Integral number which we changed over from the given string.

    Code:

    Python3

    def string_to_int(input_string):

      output_int = 0

      if input_string[0] == '-' :

        starting_idx = 1

        check_negative = True

      else:

        starting_idx = 0

        check_negative = False

      for i in range(starting_idx, len(input_string)):

        place_value = 10**(len(input_string) - (i+1))

        digit_value = ord(input_string[i]) - ord('0')

        output_int += place_value * digit_value

      if check_negative :

        return -1 * output_int

      else:

        return output_int

    if __name__ == "__main__"

      string = "554"

      x = string_to_int(string)

      print(type(x))

      string = "123"

      print(type(string_to_int(string))) 

      string = "-123"

      print(type(string_to_int(string)))

    Output:

    <class 'int'>
    <class 'int'>
    <class 'int'>
    

    While calling your sub functions from your main functions you can convert the variables into int and then call. Please refer the below code:

    import sys
    
    print("Welcome to Calculatorn")
    print("Please find the options:n" + "1. Additionn" + "2. Subtractionn" + 
    "3. Multiplicationn" + "4. Divisionn" + "5. Exponentialn" + "6. Quitn")
    
    def calculator():
        choice = input("Enter choicen")
    
        if int(choice) == 1:
            a = input("Enter first numbern")
            b = input("Enter second numbern")
            add(int(a), int(b))
    
        if int(choice) == 2:
            a = input("Enter first numbern")
            b = input("Enter second numbern")
            diff(int(a), int(b))
    
        if int(choice) == 3:
            a = input("Enter first numbern")
            b = input("Enter second numbern")
            mult(int(a), int(b))
    
        if int(choice) == 4:
            a = input("Enter first numbern")
            b = input("Enter second numbern")
            div(float(a), float(b))
    
        if int(choice) == 5:
            a = input("Enter the base numbern")
            b = input("Enter the exponentialn")
            exp(int(a), int(b))
    
        if int(choice) == 6:
            print("Bye")
            sys.exit(0)
    
    
    
    def add(a, b):
        c = a+b
        print("Sum of {} and {} is {}".format(a, b, c))
    
    def diff(a,b):
        c = a-b
        print("Difference between {} and {} is {}".format(a, b, c))
    
    def mult(a, b):
        c = a*b
        print("The Product of {} and {} is {}".format(a, b, c))
    
    def div(a, b):
        c = a/b
        print("The Quotient of {} and {} is {}".format(a, b, c))
    
    def exp(a, b):
        c = a**b
        print("The result of {} to the power of {} is {}".format(a, b, c))
    
    calculator()
    

    Here what I did is I called each of the function while converting the parameters inputted to int. I hope this has been helpful.

    In your case it could be changed like this:

     if choice == "0":
            numberA = raw_input("Enter your first number: ")
            numberB = raw_input("Enter your second number: ")
            print "Your result is:"
            print addition(int(numberA), int(numberB))
    

    Watch Now This tutorial has a related video course created by the Real Python team. Watch it together with the written tutorial to deepen your understanding: Convert a Python String to int

    Integers are whole numbers. In other words, they have no fractional component. Two data types you can use to store an integer in Python are int and str. These types offer flexibility for working with integers in different circumstances. In this tutorial, you’ll learn how you can convert a Python string to an int. You’ll also learn how to convert an int to a string.

    By the end of this tutorial, you’ll understand:

    • How to store integers using str and int
    • How to convert a Python string to an int
    • How to convert a Python int to a string

    Let’s get started!

    Representing Integers in Python

    An integer can be stored using different types. Two possible Python data types for representing an integer are:

    1. str
    2. int

    For example, you can represent an integer using a string literal:

    Here, Python understands you to mean that you want to store the integer 110 as a string. You can do the same with the integer data type:

    It’s important to consider what you specifically mean by "110" and 110 in the examples above. As a human who has used the decimal number system for your whole life, it may be obvious that you mean the number one hundred and ten. However, there are several other number systems, such as binary and hexadecimal, which use different bases to represent an integer.

    For example, you can represent the number one hundred and ten in binary and hexadecimal as 1101110 and 6e respectively.

    You can also represent your integers with other number systems in Python using the str and int data types:

    >>>

    >>> binary = 0b1010
    >>> hexadecimal = "0xa"
    

    Notice that binary and hexadecimal use prefixes to identify the number system. All integer prefixes are in the form 0?, in which you replace ? with a character that refers to the number system:

    • b: binary (base 2)
    • o: octal (base 8)
    • d: decimal (base 10)
    • x: hexadecimal (base 16)

    Now that you have some foundational knowledge about how to represent integers using str and int, you’ll learn how to convert a Python string to an int.

    Converting a Python String to an int

    If you have a decimal integer represented as a string and you want to convert the Python string to an int, then you just pass the string to int(), which returns a decimal integer:

    >>>

    >>> int("10")
    10
    >>> type(int("10"))
    <class 'int'>
    

    By default, int() assumes that the string argument represents a decimal integer. If, however, you pass a hexadecimal string to int(), then you’ll see a ValueError:

    >>>

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

    The error message says that the string is not a valid decimal integer.

    When you pass a string to int(), you can specify the number system that you’re using to represent the integer. The way to specify the number system is to use base:

    >>>

    >>> int("0x12F", base=16)
    303
    

    Now, int() understands you are passing a hexadecimal string and expecting a decimal integer.

    Great! Now that you’re comfortable with the ins and outs of converting a Python string to an int, you’ll learn how to do the inverse operation.

    Converting a Python int to a String

    In Python, you can convert a Python int to a string using str():

    >>>

    >>> str(10)
    '10'
    >>> type(str(10))
    <class 'str'>
    

    By default, str() behaves like int() in that it results in a decimal representation:

    >>>

    >>> str(0b11010010)
    '210'
    

    In this example, str() is smart enough to interpret the binary literal and convert it to a decimal string.

    If you want a string to represent an integer in another number system, then you use a formatted string, such as an f-string (in Python 3.6+), and an option that specifies the base:

    >>>

    >>> octal = 0o1073
    >>> f"{octal}"  # Decimal
    '571'
    >>> f"{octal:x}"  # Hexadecimal
    '23b'
    >>> f"{octal:b}"  # Binary
    '1000111011'
    

    str is a flexible way to represent an integer in a variety of different number systems.

    Conclusion

    Congratulations! You’ve learned so much about integers and how to represent and convert them between Python string and int data types.

    In this tutorial, you learned:

    • How to use str and int to store integers
    • How to specify an explicit number system for an integer representation
    • How to convert a Python string to an int
    • How to convert a Python int to a string

    Now that you know so much about str and int, you can learn more about representing numerical types using float(), hex(), oct(), and bin()!

    Watch Now This tutorial has a related video course created by the Real Python team. Watch it together with the written tutorial to deepen your understanding: Convert a Python String to int

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

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

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

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

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

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

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

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

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

    Кстати если вы ищете работу, то посмотрите свежие вакансии по Python

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

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

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

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

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

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

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

    Как преобразовать строку в число (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».

    Иногда требуется преобразовать строку в целое число или в число с плавающей точкой для осуществления определённых операций в Python.

    Если вы попробуете выполнить то или иное действие со строкой в виде чисел, то получите ошибку.

    Этот код приведёт к ошибке:

    str_a = ’50’
    b = 10
    c = str_a + b
    print (c)
    

    В Python можно использовать функции int и float для преобразования строки в целое число или число с плавающей точкой до осуществления каких-либо операций.

    • Использование функции int() для преобразования строки в целое число
    • Преобразование десятичной строки в число с плавающей точкой
    • Преобразование списка строковых чисел в список целых чисел
    • Преобразование списка строк в список чисел с плавающей точкой
    • Пример преобразования строки с запятыми в число
    • Преобразование строки в число для расчёта високосного года -пример
    • Как преобразовать целое число в строку?

    Рассмотрим следующий код:

    str_a = '50'
    b = 10
    c = int(str_a) + b
    print ("The value of c = ",c)  
    

    В результате его работы выведется значение переменной c, представляющее собой сумму переменных str_a и b.

    Можно использовать класс float для того чтобы осуществить преобразование строки в число с плавающей точкой.

    Пример использования float для преобразования строки:

    #Пример преобразования string во float
    str_a = '50.85'
    b = 10.33
    c = float(str_a) + b
    print ("The value of c = ",c) 
    

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

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

    Будет создан новый список, в котором можно применить функцию int в каждой итерации.

    Код:

    #Пример преобразования string в int в списке
    str_lst = ['1', '2', '3']
    int_lst = [int(x) for x in str_lst]
    print (int_lst)
    

    Будет выведен новый список, состоящий из целых чисел, полученных из строк.

    Аналогичным образом можно использовать float вместо int для преобразования списка, содержащего строки из целых чисел. Рассмотрим пример:

    Код для преобразования элементов списка в числа с плавающей точкой:

    #Пример преобразования string во float в списке
    str_lst = ['10.505', '2.3', '3.99']
    float_lst = [float(x) for x in str_lst]
    print (float_lst)
    

    Ну а как насчёт строки наподобие “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.

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

    String в Int, Int в String

    Метод Python int() позволяет преобразовать любое значение типа String в целочисленное значение.

    Синтаксис:

    int(string_variable)
    

    Пример:

    string_num = '75846'
    print("The data type of the input variable is:n")
    print(type(string_num))
    
    result = int(string_num)
    print("The data type of the input value after conversion:n")
    print(type(result))
    print("The converted variable from string to int:n")
    print(result)
    

    Выход:

    The data type of the input variable is:
    <class 'str'>
    The data type of the input value after conversion:
    <class 'int'>
    The converted variable from string to int:
    75846
    

    Python также предоставляет нам эффективный вариант преобразования чисел и значений типа String в целочисленные значения с определенной базой в соответствии с системой счисления.

    Синтаксис:

    int(string_value, base = val)
    

    Пример:

    string_num = '100'
    print("The data type of the input variable is:n")
    print(type(string_num))
    
    print("Considering the input string number of base 8....")
    result = int(string_num, base = 8)
    print("The data type of the input value after conversion:n")
    print(type(result))
    print("The converted variable from string(base 8) to int:n")
    print(result) 
    
    print("Considering the input string number of base 16....")
    result = int(string_num, base = 16)
    print("The data type of the input value after conversion:n")
    print(type(result))
    print("The converted variable from string(base 16) to int:n")
    print(result) 
    

    В приведенном выше фрагменте кода мы преобразовали «100» в целочисленное значение с основанием 8 и основанием 16 соответственно.

    Выход:

    The data type of the input variable is:
    
    <class 'str'>
    Considering the input string number of base 8....
    The data type of the input value after conversion:
    
    <class 'int'>
    The converted variable from string(base 8) to int:
    
    64
    Considering the input string number of base 16....
    The data type of the input value after conversion:
    
    <class 'int'>
    The converted variable from string(base 16) to int:
    
    256
    

    ValueError Exception при преобразовании строки Python в int

    Сценарий: Если какая-либо из входных строк содержит цифру, не принадлежащую к десятичной системе счисления.

    В приведенном ниже примере, если вы хотите преобразовать строку «A» в целочисленное значение A с основанием 16, и мы не передаем base = 16 в качестве аргумента методу int(), тогда это вызовет исключение ValueError.

    Поскольку, хотя ‘A’ является шестнадцатеричным значением, оно не принадлежит к десятичной системе счисления, оно не будет рассматривать A как эквивалент десятичного числа 10, пока мы не передадим base = 16 в качестве аргумента в функцию int().

    Пример:

    string_num = 'A'
    print("The data type of the input variable is:n")
    print(type(string_num))
    result = int(string_num)
    
    print(type(result))
    print("The converted variable from string(base 16) to int:n")
    print(result) 
    
    

    Выход:

    The data type of the input variable is:
    
    <class 'str'>
    Traceback (most recent call last):
      File "main.py", line 4, in <module>
        result = int(string_num)
    ValueError: invalid literal for int() with base 10: 'A'
    
    

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

    Список Python, содержащий целочисленные элементы, может быть преобразован в список значений String с помощью метода int() вместе со списком понимания.

    Пример:

    st_lst = ['121', '144', '111', '564']
    
    res_lst = [int(x) for x in st_lst]
    print (res_lst)
    
    

    Выход:

    [121, 144, 111, 564]
    

    2. Преобразование Python int в String

    Метод Python str() позволяет преобразовать любое значение целочисленного типа в значение String.

    Синтаксис:

    str(integer_value)
    

    Пример:

    int_num = 100
    print("The data type of the input variable is:n")
    print(type(int_num))
    result = str(int_num)
    print("The data type of the input value after conversion:n")
    print(type(result))
    print("The converted variable from int to string:n")
    print(result) 
    
    

    Выход:

    The data type of the input variable is:
    <class 'int'>
    The data type of the input value after conversion:
    <class 'str'>
    The converted variable from int to string:
    100
    

    Понравилась статья? Поделить с друзьями:
  • Как изменить steam emu
  • Как изменить ssl сертификат
  • Как изменить ssid на телефоне
  • Как изменить ssid на роутере дом ру
  • Как изменить ssid на роутере tp link