Python整数和字符串的相互转换

在某些情况下,我们得到的类型不是整数,但是我们知道其表示的是整数含义,所以我们希望能够将其转换成整数,然后进行相关操作。

例如,假定需要从用户输入得到语文课测验的成绩,计算其最高分、最低分和平均分。而从用户键盘得到的就是字符串,但我们知道其表示的是整数的含义,因此进行统计处理时就需要将其转换成整数。

1. 字符串转换成整数

可以使用 int() 来从字符串得到一个整数。
>>> a = int("1000")   # 输入是字符串    
>>> type(a)           # 检查类型
<class 'int'>         # 类型是整型
>>> a                 # 查看结果的值
1000

如果字符串的格式不对,如输入字符串是“100.abc”,这时就会抛出异常,需要进行特别处理。
>>> a = int("1000.8766")               # 输入的字符串非法    
Traceback (most recent call last):     # 抛出异常
  File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: '1000.8766'
>>> a = int("a1000")                   # 输入的字符串非法
Traceback (most recent call last):     # 抛出异常
  File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: 'a1000'

如果输入的字符串不是十进制的格式,而是八进制,可以执行进制转换,用法如下:
>>> a = int("20", 8)   # 八进制表示的数20
>>> a                  # 查看结果的值
16                     # 在十进制中为16
>>> int("1111", 2)     # 二进制表示的数1111
15                     # 在十进制中为15

2. 整数转换成字符串

可以使用 str() 来得到字符串结果。
>>> a = str(12)   # 输入是整数
>>> type(a)       # 查看a的类型
<class 'str'>     # 输出a是字符串
>>> a             # 查看a的值
'12'              # 注意''表示是字符串

3. 浮点数转换成整数

也可以使用 int() 来从浮点数得到一个整数。
>>> int(12.0)   # 输入是浮点数
12              # 得到的是去掉小数部分的值
>>> int(12.9)   # 输入是浮点数
12              # 没有四舍五入