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) |