在某些情况下,我们得到的类型不是整数,但是我们知道其表示的是整数含义,所以我们希望能够将其转换成整数,然后进行相关操作。
例如,假定需要从用户输入得到语文课测验的成绩,计算其最高分、最低分和平均分。而从用户键盘得到的就是字符串,但我们知道其表示的是整数的含义,因此进行统计处理时就需要将其转换成整数。
可以使用 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
可以使用 str() 来得到字符串结果。
>>> a = str(12) # 输入是整数 >>> type(a) # 查看a的类型 <class 'str'> # 输出a是字符串 >>> a # 查看a的值 '12' # 注意''表示是字符串
也可以使用 int() 来从浮点数得到一个整数。
>>> int(12.0) # 输入是浮点数 12 # 得到的是去掉小数部分的值 >>> int(12.9) # 输入是浮点数 12 # 没有四舍五入