Python数据类型转换(新)

Python数据类型的转换

数据类型分为1.隐式类型转换 2.显式类型转换

隐式类型转换

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

    • 比如在进行算术运算的时候,较低数据类型(整数)就会转换为较高的数据类型(浮点数)以免数据丢失

    • a = 1
      b = 1.5
      c = a+b
      print(type(c))
      
    • image-20231222121510929

  • 但是如果我们使用 数字 字符串数字 进行相加呢

    • str = "231"
      a = 123
      print(a+str)
      
    • image-20231222121714463

    • 竟然没有转换成功,于是我们可以通过显示类型转换来解决这个问题

显式类型转换

​ 我们只需要简单的把上述式子改为下面式子

str = float("231")
a=123
print(a+str) #-->float

如此转换就符合我们的预期

  1. 转换成整数

    • 采用int(x,[,base])可以将对象x转换成一个十进制的整数[,base]指的是x为几进制,然后我们转化为十进制去表示

    • a = int("1100",2)
      b = int("65",10)
      c = int("0x1f",16)
      
      print(a)
      print(b)
      print(c)
      
    • image-20231223085327486

    • 注:进制要注意匹配,比如65,它至少时七进制,不可能是5进制,二进制...., 

    • 在python中最大进制是在[2,36]的区间

    • image-20231223085810426

  2. 转换为浮点数

    • 采用float(x)将对象转换为一个浮点数,如下

    • a = float("2153545.135453")
      
      print(a)
      

      运行结果:

    • image-20231223090022609

  3. 转为复数

    • 采用complex(real,[,image]),可以创建一个复数,如下

    • a = complex(20,10)
      
      print(a)
      
    • image-20231223102934522

  4. 转换成字符串

    • 采用str(x)k可以将x转换成一个字符串,如下

    • a = 10000.765
      c = str(a) # 注意最好不要使用str去做标识符,不然会报错
      print(c)
      

      image-20231223151343870

  5. 转换成表达式字符串

    • 采用repr(x)可以将x转化成表达式字符串,如下

    • a = '10000.765'
      b = repr(a)
      c = str(a)
      print(b)
      print(c)
      
    • image-20231223151618148

    • image-20231223151556790

  6. 字符转换

    1. 整数转字符

      可以利用chr(x),把x转化为字符,对应的Ascll码

    2. 字符转整数

      可以利用ord(x)将字符x转换为一个整数,他是chr(x)的逆运算

  7. 转化成基础数据结构

    1. 转化为元组

      tuple(s)

    2. 转换为列表

      list(s)

    3. 转换成可变集合

      set(s)

    4. 转换成不可变集合

      frozenset(s)

    5. 转换成字典

      dict(d)

函数 描述
[int(x base]) 将x转换为一个整数
float(x) 将x转换到一个浮点数
[complex(real ,imag]) 创建一个复数
str(x) 将对象 x 转换为字符串
repr(x) 将对象 x 转换为表达式字符串
eval(str) 用来计算在字符串中的有效Python表达式,并返回一个对象
tuple(s) 将序列 s 转换为一个元组
list(s) 将序列 s 转换为一个列表
set(s) 转换为可变集合
dict(d) 创建一个字典。d 必须是一个 (key, value)元组序列。
frozenset(s) 转换为不可变集合
chr(x) 将一个整数转换为一个字符
ord(x) 将一个字符转换为它的整数值
hex(x) 将一个整数转换为一个十六进制字符串
oct(x) 将一个整数转换为一个八进制字符串
posted @ 2024-06-05 12:41  Yang0710  阅读(9)  评论(0编辑  收藏  举报