08-数据类型转换

08-数据类型转换

  1. 定义

    在Python 3中,数据类型转换是指将一个数据类型转换为另一个数据类型的过程。

  2. 数据类型转换的种类

    • 隐式类型转换 - 自动完成
    • 显式类型转换 - 需要使用类型函数来转换
  3. 隐式类型转换

    在隐式类型转换中,Python 会自动将一种数据类型转换为另一种数据类型,不需要我们去干预。

    比如:较低数据类型(整数)就会转换为较高数据类型(浮点数)以避免数据丢失。

    num_int = 10
    num_flo = 11.11
    
    num_new = num_int + num_flo
    
    print("num_int 数据类型为", type(num_int))
    print("num_flo 数据类型为", type(num_flo))
    
    print("num_new 值为:", num_new)
    print("num_new 数据类型为", type(num_new))
    

    控制台输出

    num_int 数据类型为 <class 'int'>
    num_flo 数据类型为 <class 'float'>
    num_new 值为: 21.11
    num_new 数据类型为 <class 'float'>
    
    • 实例中我们对两个不同数据类型的变量 num_int 和 num_flo 进行相加运算,并存储在变量 num_new 中。
    • 然后查看三个变量的数据类型。
    • 在输出结果中,我们看到 num_int 是 整型(integer) , num_flo 是 浮点型(float)
    • 同样,新的变量 num_new 是 浮点型(float),这是因为 Python 会将较小的数据类型转换为较大的数据类型,以避免数据丢失。

    我们再看一个实例,整型数据与字符串类型的数据进行相加:

    num_int = 123
    num_str = "456"
    
    print("num_int 数据类型为:", type(num_int))
    print("num_str 数据类型为:", type(num_str))
    
    print(num_int + num_str)
    

    控制台输出:

    num_int 数据类型为: <class 'int'>
    num_str 数据类型为: <class 'str'>
    Traceback (most recent call last):
      File "/runoob-test/test.py", line 7, in <module>
        print(num_int+num_str)
    TypeError: unsupported operand type(s) for +: 'int' and 'str'
    

    从输出中可以看出,整型和字符串类型运算结果会报错,输出 TypeError。 Python 在这种情况下无法使用隐式转换。

    但是,Python 为这些类型的情况提供了一种解决方案,称为显式转换。

  4. 显式类型转换

    在显式类型转换中,用户将对象的数据类型转换为所需的数据类型。 我们使用 int()、float()、str() 等预定义函数来执行显式类型转换。

    # int() 强制转换为整形
    x = int(1)  # x 输出结果为1
    y = int(2.8)  # y 输出结果为 2
    z = int("3")  # z 输出结果为 3
    
    # float() 强制转换为浮点型
    x = float(1)
    y = float(2.8)   # y 输出结果为 2.8
    z = float("3")   # z 输出结果为 3.0
    w = float("4.2")  # w 输出结果为 4.2
    
    # str() 强制转换为字符串类型
    x = str("s1") # x 输出结果为 's1'
    y = str(2)    # y 输出结果为 '2'
    z = str(3.0)  # z 输出结果为 '3.0'
    

    整型和字符串类型进行运算,就可以用强制类型转换来完成:

    num_int = 123
    num_str = "456"
    
    print("num_int 数据类型为:", type(num_int))
    print("类型转换前,num_str 数据类型为:", type(num_str))
    
    num_str = int(num_str)  # 强制转换为整型
    print("类型转换后,num_str 数据类型为:", type(num_str))
    
    num_sum = num_int + num_str
    
    print("num_int 与 num_str 相加结果为:", num_sum)
    print("sum 数据类型为:", type(num_sum))
    

    控制台输出

    num_int 数据类型为: <class 'int'>
    类型转换前,num_str 数据类型为: <class 'str'>
    类型转换后,num_str 数据类型为: <class 'int'>
    num_int 与 num_str 相加结果为: 579
    sum 数据类型为: <class 'int'>
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值