79 lines
3.0 KiB
Markdown
79 lines
3.0 KiB
Markdown
![]() |
---
|
|||
|
title: How to Convert Strings into Integers in Python
|
|||
|
localeTitle: Как преобразовать строки в целые числа в Python
|
|||
|
---
|
|||
|
## Как преобразовать строки в целые числа в Python
|
|||
|
|
|||
|
Подобно встроенной функции `str()` , Python также предлагает удобный встроенный элемент, который принимает строковый объект в качестве аргумента и возвращает соответствующий целочисленный объект.
|
|||
|
|
|||
|
#### Пример использования:
|
|||
|
|
|||
|
```py
|
|||
|
# Here age is a string object
|
|||
|
age = "18"
|
|||
|
print(age)
|
|||
|
# Converting string to integer
|
|||
|
int_age = int(age)
|
|||
|
print(int_age)
|
|||
|
```
|
|||
|
|
|||
|
Вывод
|
|||
|
|
|||
|
```py
|
|||
|
18
|
|||
|
18
|
|||
|
```
|
|||
|
|
|||
|
Здесь, хотя вывод визуально похож, но вы должны иметь в виду, что первая строка печатает строковый объект, а строка рядом с ним печатает целочисленный объект, который далее проиллюстрирован в следующем примере:
|
|||
|
|
|||
|
```py
|
|||
|
age = "18"
|
|||
|
print(age+2)
|
|||
|
```
|
|||
|
|
|||
|
Вывод:
|
|||
|
|
|||
|
```py
|
|||
|
Traceback (most recent call last):
|
|||
|
File "<stdin>", line 1, in <module>
|
|||
|
TypeError: cannot concatenate 'str' and 'int' objects
|
|||
|
```
|
|||
|
|
|||
|
`The error should make it clear to you that you need to convert the` объект age в целое число, прежде чем добавлять что-то к нему.
|
|||
|
|
|||
|
```py
|
|||
|
age = "18"
|
|||
|
age_int = int(age)
|
|||
|
print(age_int+2)
|
|||
|
```
|
|||
|
|
|||
|
Вывод:
|
|||
|
|
|||
|
```py
|
|||
|
20
|
|||
|
```
|
|||
|
|
|||
|
Но вы должны иметь в виду некоторые особые случаи:
|
|||
|
|
|||
|
1. Плавающая точка (целое число с дробной частью) в качестве аргумента вернет float, округленное до ближайшего целого целого. Например: `print(int(7.9))` напечатает `7` . Также `print(int("7.9"))` приведет к ошибке, поскольку строка является недопустимым аргументом для преобразования в целое число.
|
|||
|
|
|||
|
```py
|
|||
|
Traceback (most recent call last):
|
|||
|
File "<stdin>", line 1, in <module>
|
|||
|
ValueError: invalid literal for int() with base 10: '7.9'
|
|||
|
|
|||
|
```
|
|||
|
|
|||
|
2. Также любое целое число в словах, если задано в качестве аргумента, вернет ту же ошибку, что и выше: `print(int("one"))` выдаст ошибку следующим образом:
|
|||
|
|
|||
|
```py
|
|||
|
Traceback (most recent call last):
|
|||
|
File "<stdin>", line 1, in <module>
|
|||
|
ValueError: invalid literal for int() with base 10: 'one'
|
|||
|
|
|||
|
```
|
|||
|
|
|||
|
|
|||
|
#### Дополнительная информация:
|
|||
|
|
|||
|
Официальная документацию для `int()` встроенные можно найти [здесь](https://docs.python.org/3.6/library/functions.html#int)
|