千家信息网

Python全栈强制转换怎么实现

发表于:2024-11-28 作者:千家信息网编辑
千家信息网最后更新 2024年11月28日,这篇文章主要讲解了"Python全栈强制转换怎么实现",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Python全栈强制转换怎么实现"吧!1. Numb
千家信息网最后更新 2024年11月28日Python全栈强制转换怎么实现

这篇文章主要讲解了"Python全栈强制转换怎么实现",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Python全栈强制转换怎么实现"吧!

    1. Number强制类型转换

    Number 类型的强制转换 (int float complex bool)

    # int 强制把数据变成整型"""int float bool 纯数字字符串"""var1 = 13var2 = 5.67var3  = Truevar4 = "123456"var5 = "123abc"var6 = 3+5jres = int(var2)res = int(var3) # True  => 1res = int(False)# False => 0res = int(var4)# res = int(var5) error# res = int(var6) errorprint(res , type(res))# float 强制把数据变成小数"""int float bool 纯数字字符串"""res = float(var1)res = float(var3) # True  => 1.0res = float(False)# False => 0.0res = float(var4) # 123456.0 print(res , type(res))# complex 强制把数据变成复数"""int float bool 纯数字字符串 complex"""res = complex(var1) # 添加0j 表达复数res = complex(var2)res = complex(var3)  # True => 1+0jres = complex(False) # False => 0jres = complex(var4)  # 123456+0jprint(res , type(res))# bool 强制把数据变成布尔型 (布尔型为假的十中情况)"""布尔型可以强转一切数据类型"""""" 0 , 0.0 , False , 0j '' [] () set() {} None """res = bool(None)print(res , type(res))# 初始化变量时,不清楚用什么值,无脑写上None"""None 代表空的,代表什么也没有,一般用于初始化变量"""a =Noneb =None"""默认转换成当前数据类型的一个值int() float() complex() bool()"""res = bool() print(res , type(res))# 额外的扩展"""strvar = "123"strvar = "3.134"strvar = "5+3j"# res = int(strvar)# print(res,type(res))# res = float(strvar)# print(res,type(res))# res = complex(strvar)# print(    res,type(res)    )"""

    2. 自动类型转换_容器类型转换

    2.1 Number自动类型转换

    Number 自动类型转换 (int float complex bool)

    低精度默认向高精度进行转换bool -> int -> float -> complex"""# bool + intres = True + 100print(res ,type(res)) # 1 + 100 => 101# bool + floatres = True  + 344.565 # 1.0 + 344.565 => 345.565print(res ,type(res)) # bool + complexres = True + 7 - 90j  #  1 + 0j + 7 - 90j => 8 - 90jprint(res ,type(res)) # int + floatres = 5 + 7.88 # 5.0 + 7.88 => 12.88print(res ,type(res)) # int + complexres = 5 + 6 + 8j # 5 + 0j   6 + 8j => 11 + 8jprint(res ,type(res)) # float + complex res = 5.66 + 9.1 -90j # 5.66 + 0j + 9.1 -90j => 14.76-90jprint(res ,type(res)) '''# 小数的精度损耗 (小数后面一般有时截取15~18位,但是不完全,存在精度损耗)"""不要用小数作比较,咬不准"""print(0.1 + 0.2 == 0.3)print(5.1 + 5.9 == 11.0)0.0999999999999999'''

    2.2 容器类型转换

    容器类型的强制转换(str list tuple set dict)

    var1 = "我爱你,文哥哥"var2 = [1,2,3]var3 = (4,4,5)var4 = {"陈璐","上朝气","刘子涛","合理"}var5 = {"cl":"文质彬彬,斯文败类","szq":"学霸","lzt":"篮球少年","hl":"武大高手"}var6 = 90var7 = True# str 强制转换成字符串"""所有的数据类型都可以转换, 在当前的数据类型两边套上引号"""res = str(var2) res = str(var3)res = str(var4)res = str(var5)res = str(var6)res = str(var7)print(res ,type(res))# repr 不转移字符原型化输出字符串print(repr(res))# list 强制转换成列表"""如果是字符串:把字符串中的每个元素单独拿出来,作为列表中的新元素如果是字典:  只保留字典中的键如果是其他容器数据:就是单纯的在原数据类型德两边换上[]括号"""res = list(var1)res = list(var3)res = list(var4)# 字典: 只获取字典得键,忽略掉值res = list(var5)# res = list(var6) error 只能是容器间的互转print(res ,type(res))# tuple 强制转换成元组"""如果是字符串:把字符串中的每个元素单独拿出来,作为元组中的新元素如果是字典:  只保留字典中的键如果是其他容器数据:就是单纯的在原数据类型得两边换上()括号"""res = tuple(var1)res = tuple(var2)res = tuple(var4)res = tuple(var5)print(res ,type(res))# set 强制转换成集合"""如果是字符串:把字符串中的每个元素单独拿出来,作为集合中的新元素如果是字典:  只保留字典中的键如果是其他容器数据:就是单纯的在原数据类型得两边换上{}括号"""res = set(var1)res = set(var2)res = set(var5)print(res ,type(res))# 多滤掉列表中所有重复元素;lst = [1,222,3,3,3,44,88,999,77,88,1]res = set(lst)print(res)# 在把当前的集合转换成原来的列表res2 = list(res)print(res2)"""默认不加任何值,转换成该数据类型的空值str() list()  tuple()  set()  dict()"""res = dict()print(res )print(type(res))

    3. 字典类型的强转_类型判断

    3.1 二级容器

    二级容器 ( list tuple set dict )

    # 二级列表lst = [1,2,3,[4,5,6]]# 二级元组tup = (1,2,(10,11))# 二级集合setvar = {1,2,("a","b")}# 二级字典dic = {"a":1,"b":{"c":10}}print(dic["b"]["c"])# 四级容器container = [1,2,3,(4,5,6,{"a":1,"b":[11,"bingo"]})]# (4,5,6,{"a":1,"b":[11,"bingo"]})res1 = container[-1]print(res1)# {'a': 1, 'b': [11, 'bingo']}res2 = res1[-1]print(res2)# [11, 'bingo']res3 = res2["b"]print(res3)# bingores4 = res3[-1]print(res4)# 一步简写res = container[-1][-1]["b"][-1]print(res)# 等长的二级容器"""外面是容器,里面的元素也是容器,且元素个数相同"""lst = [(1,2,3),[4,5,6],{7,8,9}]

    3.2 字典类型的强制转换

    dict 字典类型的强制转换

    """要求: 必须是等长的二级容器,并且里面的元素个数是2个;外层是列表,元组,集合 , 里层是列表或者元组的等长二级容器 => 字典;"""# 1.外层是列表,里层是列表或者元组lst = [ ["a",1] , ("b",2) ]dic = dict(lst)print(dic , type(dic)) # {'a': 1, 'b': 2} # 2.外层是元组,里层是列表或者元组tup = ( ["a",1] , ("b",2) )dic = dict(lst)print(dic , type(dic))# 3.外层是集合,里层是元组setvar = { ("a",1) , ("b",2) }dic = dict(setvar)print(dic , type(dic))# 例外1:外层是列表/元组,里层放集合"""可以实现,不推荐使用,因为达不到想要的目的,集合无序,不推荐使用"""lst = [ ["a",1] , {"b","250"} ]dic = dict(lst)print(dic)# 例外2:外层是列表/元组,里层放字符串""" 字符串长度只能是2位,有极大的局限性,不推荐使用"""lst = ["a1","b2"]# lst = ["a11","b22"] error # dic = dict(lst)# print(dic)

    小提示:

    外层是集合,里面不能是列表lst = [ ["a",1] , {"b","250"}]dic = dict(lst)print(dic)    这里可能会输出{'a':1,'b':'250'}或者{'a':1,'250':'b'}lst = ["a1","b2"]dic = dict(lst)print(dic) 这里会输出{a:1,b:2}lst = ["a11","b22"]dic = dict(lst)print(dic)  这里就会报错isinstance比type用的多

    3.3 类型判断

    判断类型 isinstance

    """# 使用方法一isinstance(数据,类型)  如果该数据是这个类型,返回True 反之,返回False类型: int float complex bool str list tuple set dict# 使用方法二isinstance(  数据, (类型1,类型2,类型3...)   )如果该数据在所对应的类型元组当中,返回True,反之,返回False"""# 使用方法一n = 123res = isinstance(n , int)print(res)n = [1,2,3]res = isinstance(n , list)res = isinstance(n , tuple)print(res)# 使用方法二n = "1233"res = isinstance(n , (list , tuple ,set , str)  )print(res)n = {"a":1}res = isinstance(n , (list , tuple ,set , str)  )print(res)

    4. 小练习

    题目如下:

    1.int,float,complex,bool 分别可以强转哪些数据2.强转布尔类型为假的值有哪些?3.强转字典的条件4.bingo如何获取[1,2,3,4,[5,6,7,[8,9,10,(11,{"a":{"bb":98},"pp":{"d":'bingo'}})]]] 5. 哪个不能转换成字典,为什么?    (1){('a',1),{'b',2}}    (2){('a',1),('b',2)}    (3){('a',1),"c3"}    (4){('a',1),"b88"}

    小提示:

    在一个文件中-5 - 正无穷a = 3b = 3   a和b的id是一样a = b =3 不管是不是-5到正无穷,a和b的id都是一样的

    感谢各位的阅读,以上就是"Python全栈强制转换怎么实现"的内容了,经过本文的学习后,相信大家对Python全栈强制转换怎么实现这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

    类型 数据 强制 字典 容器 字符 字符串 元素 外层 使用方法 小数 就是 布尔 方法 括号 数字 精度 学习 推荐 输出 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 浙江信息软件开发哪家好 深圳九泰网络技术有限公司 r星服务器是不是在更新 网络安全危险信息共享平台 公司一台服务器连接所有电脑办公 数据库安全防黑客入侵的办法 亚太地区网络安全合作组织 朔州兼职软件开发 小程序数据库如何快速添加数据 单套应用程序对应多套数据库 哪一条是数据库加密的缺点 米泉手机软件开发 锐盛互联网科技 网络安全模式显示蓝屏 单个数据库或多个数据库 读取数据库文件的软件 网络安全项目工程师怎么样 三本网络安全专业好不好 软件开发各个生命周期排序 华阴dell服务器 船舶网络安全系统评估 网络安全及保密自查工作总结 pg数据库新增分区字段 在峰会期间网络安全工作总结 网络安全审查办法何时实施 华为服务器在哪里 两个不同数据库数据实时同步 云服务器可以用路由器搭建嘛 软件开发主管年终汇报 中兴南京软件开发加班
    0