一 自动类型转换

(针对于Number类型) bool float int complex

当Number不同的数据类型进行运算的时候,默认向更高精度转化

精度从低到高顺序:bool -> int -> float ->complex

True 默认转化是1

False 默认转化是0

  1. # (1) bool + int
  2. res = True + 89
  3. print(res)
  4.  
  5. # (2) bool + float
  6. res = True + 55.78
  7. print(res)
  8.  
  9. # (3) bool + complex
  10. res = False + 2-4j
  11. print(res)
  12.  
  13. # (4) int + float
  14. res = 31 + 4.1
  15. print(res)
  16.  
  17. # (5) int + complex
  18. res = 17 + 4-7j
  19. print(res)
  20.  
  21. # (6) float + complex
  22. res = 8.12 + 3+5j
  23. print(res)

[root@node10 python]# python3 test.py

  1. 90
  2. 56.78
  3. (2-4j)
  4. 35.1
  5. (21-7j)
  6. (11.12+5j)

二 强制类型转换

Number => (int float  bool complex)

2.1 把数据强制转换成整型 int

(整型  浮点型 布尔类型  纯数字字符串)

  1. var1 = 13
  2. var2 = 99.99
  3. var3 = True
  4. var3_1 = False
  5. var4 = 4+1j
  6. var5 = "123321"
  7. var6 = "你好123"
  8.  
  9. res = int(var2)
  10. # True 强转整型是1 False 强转整型是0
  11. res = int(var3)
    print(res,type(res))
  12. res = int(var3_1)
  13. print(res)
  14. res = int(var5)
  15. print(res,type(res))

[root@node10 python]# python3 test.py

  1. 1 <class 'int'>
  2. 0
  3. 123321 <class 'int'>

字符型字符串不能转化

  1. var1 = 13
  2. var2 = 99.99
  3. var3 = True
  4. var3_1 = False
  5. var4 = 4+1j
  6. var5 = "123321"
  7. var6 = "你好123"
  8.  
  9. res = int(var6)
  10. print(res,type(res))

[root@node10 python]# python3 test.py

  1. Traceback (most recent call last):
  2. File "test.py", line 9, in <module>
  3. res = int(var6)
  4. ValueError: invalid literal for int() with base 10: '你好123'

2.2  float   (整型   浮点型 布尔类型  纯数字字符串)

  1. var1 = 13
  2. var2 = 99.99
  3. var3 = True
  4. var3_1 = False
  5. var4 = 4+1j
  6. var5 = "123321"
  7. var6 = "你好123"
  8.  
  9. res = float(var1)
  10. print(res)
  11. res = float(var3) # 加上.0 成为小数
  12. print(res)
  13. res = float(var3_1) # 0.0
  14. print(res)
  15. res = float(var5) #123321.0
  16. print(res)

[root@node10 python]# python3 test.py

  1. 13.0
  2. 1.0
  3. 0.0
  4. 123321.0

[root@node10 python]# python3 test.py

  1. var1 = 13
  2. var2 = 99.99
  3. var3 = True
  4. var3_1 = False
  5. var4 = 4+1j
  6. var5 = "123321"
  7. var6 = "你好123"
  8.  
  9. res = float(var4) #can't convert complex to float
  10. print(res)

[root@node10 python]# python3 test.py

  1. Traceback (most recent call last):
  2. File "test.py", line 9, in <module>
  3. res = float(var4) #can't convert complex to float
  4. TypeError: can't convert complex to float

complex  (整型   浮点型 布尔类型  纯数字字符串  复数)

  1. var1 = 13
  2. var2 = 99.99
  3. var3 = True
  4. var3_1 = False
  5. var4 = 4+1j
  6. var5 = "123321"
  7. var6 = "你好123"
  8.  
  9. res = complex(var1) # 13 + 0j
  10. print(res)
  11. res = complex(var2) #(99.99+0j)
  12. print(res)
  13. res = complex(var3) #(1+0j)
  14. print(res)
  15. res = complex(var3_1) #0j
  16. print(res)
  17. res = complex(var5) #(123321+0j)
  18. print(res)

[root@node10 python]# python3 test.py

  1. (13+0j)
  2. (99.99+0j)
  3. (1+0j)
  4. 0j
  5. (123321+0j)

2.3 bool类型

( 容器类型数据  /  Number类型数据 都可以,要么True要么False)

布尔类型为假的十种情况: 0,0.0,False,0j,"",[],(),set(),{},None None 是系统的一个关键字 表示空的,什么也没有,一般做初始值

  1. var1 = 13
  2. var2 = 99.99
  3. var3 = True
  4. var3_1 = False
  5. var4 = 4+1j
  6. var5 = "123321"
  7. var6 = "你好123"
  8.  
  9. res = bool(var6)
  10. print(res,type(res))
  11. res = bool(var4)
  12. print(res,type(res))
  13. res = bool([1,2,3])
  14. print("<!!!>")
  15. print(res)
  16. res = None
  17. print(res,type(res))

[root@node10 python]# python3 test.py

  1. True <class 'bool'>
  2. True <class 'bool'>
  3. <!!!>
  4. True
  5. None <class 'NoneType'>

三 容器类型数据的强制类型转换

(str list tuple set dict)  

3.1  str 强转成字符串类型

( 容器类型数据  /  Number类型数据 都可以 )

字符串强转规律: 就是单纯的在原数据的两侧加上引号

  1. var1 = "快乐每一天"
  2. var2 = [1,2,3]
  3. var3 = (4,5,6)
  4. var4 = {"美丽","店铺名个人"}
  5. var5 = {"a":1,"b":2,"c":3}
  6. var6 = 123
  7.  
  8. res = str(var2)
  9. print(repr(res),type(res))
  10. res = str(var3)
  11. print(repr(res),type(res))
  12. res = str(var5)
  13. print(repr(res),type(res))
  14. res = str(var6)
  15. # print(res,type(res))
  16. # repr 以字符串形式原型化输出数据 (想看到引号用repr转化)
  17. print(repr(res),type(res))

[root@node10 python]# python3 test.py

  1. '[1, 2, 3]' <class 'str'>
  2. '(4, 5, 6)' <class 'str'>
  3. "{'a': 1, 'b': 2, 'c': 3}" <class 'str'>
  4. '123' <class 'str'>

3.2 list 列表

list 列表强转规律:

如果是字符串:把字符串中的每一个字符当成新的元素放到列表中,如果是其他数据:就是单纯的把原标识符换成[]

  1. var1 = "快乐每一天"
  2. var2 = [1,2,3]
  3. var3 = (4,5,6)
  4. var4 = {"美丽","店铺名个人"}
  5. var5 = {"a":1,"b":2,"c":3}
  6. var6 = 123
  7.  
  8. res = list(var1) #['快', '乐', '每', '一', '天']
  9. print(res)
  10. res = list(var3)
  11. print(res)
  12. res = list(var4)
  13. print(res)
  14. res = list(var5) #['a', 'b', 'c'] 强转字典时,保留键,舍去值
  15. # res = list(var6) # error
  16. print(res)

[root@node10 python]# python3 test.py

  1. ['快', '乐', '每', '一', '天']
  2. [4, 5, 6]
  3. ['店铺名个人', '美丽']
  4. ['a', 'b', 'c']

3.3 tuple 元组

tuple 元组强转规律

如果是字符串:把字符串中的每一个字符当成新的元素放到元组中

如果是其他数据:就是单纯的把原标识符换成() 变成元组即可

  1. var1 = "快乐每一天"
  2. var2 = [1,2,3]
  3. var3 = (4,5,6)
  4. var4 = {"美丽","店铺名个人"}
  5. var5 = {"a":1,"b":2,"c":3}
  6. var6 = 123
  7.  
  8. res = tuple(var1) #('快', '乐', '每', '一', '天')
  9. print(res)
  10. res = tuple(var2)
  11. print(res)
  12. res = tuple(var5) #('a', 'b', 'c') #强转字典时,保留键,舍去值
  13. print(res)

[root@node10 python]# python3 test.py

  1. ('快', '乐', '每', '一', '天')
  2. (1, 2, 3)
  3. ('a', 'b', 'c')

3.4 set 集合

set 集合强转规律

  1. 如果是字符串:把字符串中的每一个字符当成新的元素放到集合中
  2. 如果是其他数据:就是单纯的把原标识符换成{} 变成集合即可
  1. var1 = "快乐每一天"
  2. var2 = [1,2,3]
  3. var3 = (4,5,6)
  4. var4 = {"美丽","店铺名个人"}
  5. var5 = {"a":1,"b":2,"c":3}
  6. var6 = 123
  7.  
  8. res = set(var1) #因为无序,字符串被打散
  9. print(res)
  10. res = set(var2) # {1,2,3}
  11. print(res)
  12. res = set(var5) #强转字典时,保留键,舍去值,键值顺序被打乱
  13. print(res)

[root@node10 python]# python3 test.py

  1. {'快', '每', '一', '乐', '天'}
  2. {1, 2, 3}
  3. {'c', 'a', 'b'}

过滤列表重复数据

  1. listvar = [1,2,3,4,5,5,6,7,6]
  2. container = set(listvar)
  3. print(container)
  4. container = list(container)
  5. print(container,type(container))

[root@node10 python]# python3 test.py

  1. {1, 2, 3, 4, 5, 6, 7}
  2. [1, 2, 3, 4, 5, 6, 7] <class 'list'>

3.5 二级容器

外面是一个容器类型的数据,里面的元素还是一个容器类型数据

  1. listvar = [1,2,3,(4,5,6)] # 二级容器
  2. print(listvar)

[root@node10 python]# python3 test.py

  1. [1, 2, 3, (4, 5, 6)]

二级元祖

  1. tup = (3,5,(7,8,9))
  2. print(tup)

[root@node10 python]# python3 test.py

  1. (3, 5, (7, 8, 9))

二级集合  (只能存放元组)

  1. setvar = {1,2,3,(11,22,33)}
  2. print(setvar)

[root@node10 python]# python3 test.py

  1. {1, 2, 3, (11, 22, 33)}

二级字典

  1. dictvar = {'a':{'c':333},'b':2}
  2. # 取出333
  3. print(dictvar['a']['c'])

[root@node10 python]# python3 test.py

  1. 333

# 四级容器

  1. container = [1,2,3,(4,5,6,{"a":1,"b":[7,8,9]}),90]
  2. # 取出9
  3. res = container[-2][-1]["b"][-1]
  4. print(res)

[root@node10 python]# python3 test.py

  1. 9

等长的二级容器

(1) 里面每个元素都是容器类型数据
(2) 每个容器类型数据的元素个数都相同

  1. container = [(1,2,3),[4,5,6]]

3.6 字典的强制类型转换

外面是列表,里面是列表或元组或字符串

  1. listvar = [["a",1],("b",2),"c123"] # 字符串慎用 如果值是多个,有局限性
  2. listvar = [["a",1],("b",2)] # 推荐 ***
  3. res = dict(listvar)
  4. print(res)

[root@node10 python]# python3 test.py

  1. {'a': 1, 'b': 2}

外面是元组,里面是列表元组或字符串

  1. tuplevar = (["c",11],("d",23)) # 推荐 ***
  2. res = dict(tuplevar)
  3. print(res)

[root@node10 python]# python3 test.py

  1. {'c': 11, 'd': 23}

例外:如果往列表或者元组容器放集合,语法上不报错,但情况出乎意料,达不到想要效果

  1. container = dict([{"a",1},{"b",2}]) # 不推荐使用
  2. print(container)

[root@node10 python]# python3 test.py

  1. {'a': 1, 'b': 2}

外面是集合,里面是元组或字符串

  1. setvar = {('a',1),('b',2),"c3"} # 必须放入不可变数据,即可哈希
  2. res = dict(setvar)
  3. print(res)

[root@node10 python]# python3 test.py

  1. {'b': 2, 'a': 1, 'c': '3'}

int() float() bool() complex()
str() list() tuple() set() dict()
这些函数在进行强转时,都默认转化成当前的数据类型
用这样的方式也可以初始化一个变量

  1. res = int()
  2. res = list()
  3. print(res)

[root@node10 python]# python3 test.py

  1. []

003.Python数据类型转换的更多相关文章

  1. Python数据类型转换函数

    数据类型转换函数 函 数 作 用 int(x) 将 x 转换成整数类型 float(x) 将 x 转换成浮点数类型 complex(real[,imag]) 创建一个复数 str(x) 将 x 转换为 ...

  2. 20.Python类型转换,Python数据类型转换函数大全

    虽然 Python 是弱类型编程语言,不需要像 Java 或 C 语言那样还要在使用变量前声明变量的类型,但在一些特定场景中,仍然需要用到类型转换. 比如说,我们想通过使用 print() 函数输出信 ...

  3. day3 python数据类型转换及变量的缓存机制

    类型转换 1,强制类型转换 1.1 number的转换(int,float,bool,complex) num1 = 10 num2 = 10.6 num3 = True num4 = 3 + 4j ...

  4. python数据类型转换&&格式化输出

    ①python的数据类型包含:数字.字符串.列表.元组.字典.集合这六种基本数据类型.不同数据类型的数据可以进行类型的转换. 使用input让用户输入的数据默认为字符串类型: name = input ...

  5. Python 数据类型转换

    Python提供的基本数据类型主要有:布尔类型.整型.浮点型.字符串.列表.元组.集合.字典.日期等等 函数                      描述     type(x)  x的数据类型   ...

  6. Python数据类型转换

    Python数据类型之间的转换 函数 描述 int(x [,base]) 将x转换为一个整数 long(x [,base] ) 将x转换为一个长整数 float(x) 将x转换到一个浮点数 compl ...

  7. Python基础 — 数据类型转换

    Python 数据类型转换 有时候,我们需要对数据内置的内心进行转换,数据类型的转换,你只需要将数据类型作为函数名即可. 以下几个内置的函数可以执行数据类型之间的转换,这些函数返回一个新的对象,表示转 ...

  8. 第三十五节,json数据类型转换字符串模块

    在使用json模块时需要先 import json 引入模块 json.dumps()模块函数 功能:将Python数据类型转换成字符串[有参] 使用方法:json.dumps(要转换的数据类型变量) ...

  9. Python基础学习笔记(九)常用数据类型转换函数

    参考资料: 1. <Python基础教程> 2. http://www.runoob.com/python/python-variable-types.html 3. http://www ...

随机推荐

  1. 8. vue给标签动态绑定title

    在利用vue开发时,如果标签宽度比较小,我们需要利用overflow:hidden;text-overflow:ellipsis;white-space: nowrap;对其进行隐藏,但隐藏后如何读其 ...

  2. SpringBoot中的自动代码生成 - 基于Mybatis-Plus

    作者:汤圆 个人博客:javalover.cc 前言 大家好啊,我是汤圆,今天给大家带来的是<SpringBoot中的自动代码生成 - 基于Mybatis-Plus>,希望对大家有帮助,谢 ...

  3. Where is the Marble UVA - 10474

     Raju and Meena love to play with Marbles. They have got a lot of marbles with numbers written on th ...

  4. Ionic5整合极光推送JPush ( 简单 )

    项目初始化 1. 安装项目依赖: # 安装cordova插件 ionic cordova plugin add jpush-phonegap-plugin --variable APP_KEY=&qu ...

  5. Java基础(面试复习整理)

    基础知识和语法 Java语言初识 计算机语言发展 机器语言.汇编.C.C++.Java Java的诞生与发展 1995 JavaSE JavaME Android JavaEE 2006(大数据) H ...

  6. ASP微信服务号H5客户登陆,且获取客户授权的用户基本信息

    ASP微信服务号H5客户登陆,且获取客户授权的用户基本信息是需要客户授权,下面讲解详细步骤: 第一步:客户点击登录页,自动跳转到微信服务器端获取code 第二步:用第一步获取的code去获取客户的ac ...

  7. 11- client测试

    client是客户端,软件分为客户端与服务端,客户端就是我们使用的软件,比如浏览器,QQ,抖音等.服务端就是客户端使用操作,服务端给你响应的请求.

  8. 让vim显示空格,tab字符,及vim多行注释

    1.显示 TAB 键 文件中有 TAB 键的时候,你是看不见的.要把它显示出来: :set list 现在 TAB 键显示为 ^I,而 $显示在每行的结尾,以便你能找到可能会被你忽略的空白字符在哪里 ...

  9. 4.PHP正则表达式与数组

    PHP正则表达式相关 行定位符 开头 ^tm 结尾 tm$ 不限制 tm 单词定界符 \btm\b   单词tm,如果想取反的话就是大写的 \Btm\B 或的关系,[Tt][Mm] 可以表达 tm T ...

  10. office 2007

    Microsoft office2007免费版几乎包括了Word2007.Excel2007.PowerPoint.Outlook.Publisher.OneNote.Groove.Access.In ...