第7章 Python3 数据类型转换教程

有时候,咱们需要对数据内置的类型进行转换,数据类型的转换,一般情况下仁兄您只需要将数据类型作为函数名即可。

Python 数据类型转换可以分为两种:

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

隐式类型转换

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

以下实例中,咱们对两种不同类型的数据进行运算,较低数据类型(整数)就会转换为较高数据类型(浮点数)以避免数据丢失。


    实例 
    num_int = 123
    
    num_flo = 1.23
    
    num_new = num_int + num_flo
    
    print("datatype of num_int:",type(num_int))
    
    print("datatype of num_flo:",type(num_flo))
    
    print("Value of num_new:",num_new)
    
    print("datatype of num_new:",type(num_new))

以上实例输出结果请在输出结果查看


    num_int 数据类型为: <class 'int'>
    num_flo 数据类型为: <class 'float'>
    num_new: 值为: 124.23
    num_new 数据类型为: <class 'float'>

代码解析:

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

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


    实例 
    num_int = 123
    
    num_str = "456"
    
    print("Data type of num_int:",type(num_int))
    
    print("Data type of num_str:",type(num_str))
    
    print(num_int+num_str)

以上实例输出结果请在输出结果查看


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

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

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

显式类型转换

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

int() 强制转换为整型:


    实例 
    x = int(1)   # x 输出结果为 1
    
    y = int(2.8) # y 输出结果为 2
    
    z = int("3") # z 输出结果为 3

float() 强制转换为浮点型:


    实例 
    x = float(1)     # x 输出结果为 1.0
    
    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'>

以下几个内置的函数可以执行数据类型之间的转换。这些函数return 一个新的对象,表示转换的值。

函数描述

int(x [,base])

将x转换为一个整数

float(x)

将x转换到一个浮点数

complex(real [,imag])

创建一个复数

str(x)

将对象 x 转换为字符串

repr(x)

将对象 x 转换为表达式字符串

eval(str)

用来计算在字符串中的有效Python表达式,并return 一个对象

tuple(s)

将序列 s 转换为一个元组

list(s)

将序列 s 转换为一个列表

set(s)

转换为可变集合

dict(d)

创建一个字典。d 必须是一个 (key, value)元组序列。

frozenset(s)

转换为不可变集合

chr(x)

将一个整数转换为一个字符

ord(x)

将一个字符转换为它的整数值

hex(x)

将一个整数转换为一个十六进制字符串

oct(x)

将一个整数转换为一个八进制字符串

## 本专栏所有文章
第1章 Python3 教程第2章 Python3 简介教程
第3章 Python3 环境搭建教程第4章 Python3 VScode教程
第5章 Python3 基础语法教程第6章 Python3 基本数据类型教程
第7章 Python3 数据类型转换教程第8章 Python3 推导式教程
第9章 Python3 解释器教程第10章 Python3 注释教程
第11章 Python3 运算符教程第12章 Python3 数字(Number)教程
第13章 Python3 字符串教程第14章 Python3 列表教程
第15章 Python3 元组教程第16章 Python3 字典教程
第17章 Python3 集合教程第18章 Python3 编程第一步教程
第19章 Python3 条件控制教程第20章 Python3 循环语句教程
第21章 Python3 迭代器与生成器教程第22章 Python3 函数教程
第23章 Python3 数据结构教程第24章 Python3 模块教程
第25章 Python3 输入和输出教程第26章 Python3 File教程
第27章 Python3 OS教程第28章 Python3 错误和异常教程
第29章 Python3 面向对象教程第30章 Python3 命名空间/作用域教程
第31章 Python3 标准库概览教程第32章 Python3 实例教程
第33章 Python 测验教程第34章 Python3 正则表达式教程
第35章 Python3 CGI编程教程第36章 Python3 MySQL(mysql-connector)教程
第37章 Python3 MySQL(PyMySQL)教程第38章 Python3 网络编程教程
第39章 Python3 SMTP发送邮件教程第40章 Python3 多线程教程
第41章 Python3 XML 解析教程第42章 Python3 JSON教程
第43章 Python3 日期和时间教程第44章 Python3 内置函数教程
第45章 Python3 MongoDB教程第46章 Python3 urllib教程
第47章 Python uWSGI 安装配置教程第48章 Python3 pip教程
第49章 Python3 operator教程第50章 Python math教程
第51章 Python requests教程第52章 Python random教程
第53章 Python3 os.replace() 方法教程

寄语

本文有phlcsdn2023原创,欢迎点赞、转载,博客地址:https://blog.csdn.net/phlcsdn2023

  • 如果,我多一张船票,你会不会跟我一起走?王家卫
  • ……仅有彻底的行动,才是改变自我,改变自我周围社会的唯一途径。
  • 如果一个人仅仅想到自己,那么他一生里,伤心的事情一定比快乐的事情来得多。–马明·西比利亚克
  • 故当若天降寒热不节,雪霜雨露不时,五谷不孰,六畜不遂,疾灾戾疫,飘风苦雨,荐臻而至者,此天之降罚也,将以罚下人之不尚同乎天者也。
  • 管好自己是前提,是根本;管好他人是职责,是义务。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你得不到的念想

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值