Python数据类型转换
# 1、使用Python实现超市的收银系统
name = input('请输入您要购买商品名称:')
id = input('请输入您要购买商品编号:')
price = input('请输入您要购买的商品价格:')
print(f'您购买了{name},商品编号为{id},商品价格为{price},欢迎下次光临!')
1
2
3
4
5
2
3
4
5
以上程序虽然可以按照上图完成程序的正常输出,但是遗留了一个非常严重的问题:这个价格price变量无法参与数学运算(如买了两个奥利奥,应该是18.5 * 2),原因在于input()方法返回的所有的结果都是str字符串类型。
怎么解决以上问题呢? 答:使用数据类型转换
# 2、了解Python数据类型的转换方法
| 函数 | 说明 |
|---|---|
| int(x [,base ]) | 将x转换为一个整数 |
| float(x) | 将x转换为一个浮点数 |
| complex(real [,imag ]) | 创建一个复数,real为实部,imag为虚部 |
| str(x) | 将对象 x 转换为字符串 |
| repr(x) | 将对象 x 转换为表达式字符串 |
| eval(str) | 用来计算在字符串中的有效Python表达式,并返回一个对象 |
| tuple(s) | 将序列 s 转换为一个元组 |
| list(s) | 将序列 s 转换为一个列表 |
| chr(x) | 将一个整数转换为一个Unicode字符 |
| ord(x) | 将一个字符转换为它的ASCII整数值 |
| hex(x) | 将一个整数转换为一个十六进制字符串 |
| oct(x) | 将一个整数转换为一个八进制字符串 |
| bin(x) | 将一个整数转换为一个二进制字符串 |
案例1:把用户输入的幸运数字,转换为整型
num = input('请输入您的幸运数字:')
print(type(num))
# 数据类型转换,把str字符串类型转换为int类型
print('-' * 20)
num = int(num)
print(type(num))
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
以上代码还可以简写为:
num = int(input('请输入您的幸运数字:'))
print(type(num))
1
2
2
案例2:多种数据类型转换
# 1、整型转浮点类型 int => float
num1 = 10
print(float(num1))
print(type(float(num1)))
print('-' * 20)
# 2、浮点类型转换为整型 float => int,浮点转整型,其小数点后的数据会丢失!!!
num2 = 18.88
print(int(num2))
print('-' * 20)
# 3、把字符串类型转换为整型或浮点类型
str1 = '20'
str2 = '10.88'
print(type(int(str1)))
print(type(float(str2)))
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
案例3:eval()方法的使用,把字符串中的数字转换为原数据类型
price = input('请输入您购买商品的价格:')
print(eval(price))
print(type(eval(price)))
1
2
3
2
3
str1 = '10' 经过eval(str1) 转换为int类型
str2 = '10.88' 经过eval(str1) 转换为float类型
# 3、总结
数据类型转换方法一共学了4个方法:
int() :转整型
float() :转浮点类型
str() :转字符串类型
eval() :把字符串转换为原数据类型
注意
当float浮点类型转换为int整型时,其小数点后面的数据会丢失,一定要记住这个特性。
编辑 (opens new window)
上次更新: 2023/10/13, 17:39:25