day03-Python运维开发基础-(数据类型强转、运算符、逻辑短路、isinstance)
1. 强制转换成容器数据类型

# ### 强制类型转换 容器类型数据 (str list tuple set ) var1 = "你好世界"
var2 = ["陈博文","刘守乱","钟志红","桂晓斌"]
var3 = ("陈博文","刘守乱","钟志红","桂晓斌")
var4 = {"陈博文","刘守乱","钟志红","桂晓斌"}
var5 = 5488
var6 = {"a":1,"b":2} # 1.str 强制转换成字符串
"""就是单纯的在原有数据的两边套上引号"""
res = str(var2)
res = str(var4)
res = str(var5)
print(res , type(res)) # repr 不转义字符,原型化输出 , 可以显示引号
print(repr(res)) # 2.list 强制转换成列表
"""
如果是字符串:把每一个字符都当成一个新元素组合在一起,形成新列表
如果是字典:只保留字典的键
如果是其他容器:仅仅单纯的在原有数据的两边,套上中括号[]即可
"""
res = list(var1)
res = list(var3)
res = list(var4)
res = list(var6)
print(res , type(res)) # 3.tuple 强制转换成元组
"""
如果是字符串:把每一个字符都当成一个新元素组合在一起,形成新元组
如果是字典:只保留字典的键
如果是其他容器:仅仅单纯的在原有数据的两边,套上小括号()即可
"""
res = tuple(var1)
res = tuple(var2)
# res = tuple(var5) error
res = tuple(var6)
print(res) # 4.set 强制转换成集合
"""
集合具有无序的属性:
如果是字符串:把每一个字符都当成一个新元素组合在一起,形成新集合
如果是字典:只保留字典的键
如果是其他容器:仅仅单纯的在原有数据的两边,套上花括号{}即可
"""
res = set(var1)
res = set(var2)
res = set(var6)
print(res) """
# 括号里面不加任何值,可以转换出一个当前数据类型的值
str() list() tuple() set() dict()
"""
var = dict()
print(var)
强制转换成容器类型数据(str list tuple set) 示例代码
# ### 二级容器: 外面是一个容器类型的数据,里面的元素还是一个容器类型的元素 # 二级列表
listvar = [1,2,3,4,5,[6,7,8]]
# 二级元组
tuplevar = (1,2,3,4,5,(11,12,34),90)
# 二级集合 Number str tuple
setvar = {1,2,3,"a","b","c",(5,6,7)}
# 二级字典
dictvar = {"a":1 , "b":2 ,"c":{"d":1,"e":2}} # 四级容器
container = [1,2,3,4,5,(6,7,8,["a","b","c",{"aa":1,"bb":"王文"}])]
# (6, 7, 8, ['a', 'b', 'c', {'aa': 1, 'bb': '王文'}])
res = container[-1]
print(res)
# ['a', 'b', 'c', {'aa': 1, 'bb': '王文'}]
res2 = res[-1]
print(res2)
# {'aa': 1, 'bb': '王文'}
res3 = res2[-1]
print(res3)
# 王文
res4 = res3["bb"]
print(res4) # 简写
res = container[-1][-1][-1]["bb"]
print(res) # 等长的二级容器
container = [(1,2,3,4) , {"a","b","c","d"}]
container = [ (1,2) , [3,4]] # ### dict 强制转换成字典
"""必须是等长的二级容器,并且里面的元素个数是2个""" # (1)外面是列表,里面可以是元组或者列表(推荐)
listvar = [ ("a",1) , ["b",2]]
dictvar = dict(listvar)
print(dictvar , type(dictvar)) # 语法上可以,但是不推荐,因为集合无序,达不到想要的效果 (不推荐)
listvar = [ ("a",1) , ["b",2] , {"c",3}]
dictvar = dict(listvar)
print(dictvar) # 字符串作为元素,有一定的局限性,仅限于2个元素才可以(不推荐)
listvar = [ ("a",1) , ["b",2] , "c3"]
dictvar = dict(listvar)
print(dictvar) # (2)外面是元组,里面可以是元组或者列表(推荐)
tuplevar = ( ("a",1) , ["b",2] )
dictvar = dict(tuplevar)
print(dictvar) # (3)外面是集合,里面只能放元组
setvar = { ("a",1),("b",2) }
dictvar = dict(setvar)
print(dictvar) # 去掉列表中的所有重复数据
listvar = [1,2,3,3,4,4,5,6,7,"a","a","b","b","c","c"]
res = set(listvar)
print(res,type(res))
lst = list(res)
print(lst,type(lst)) # 可以修改元组嵌套的列表中的数据;
tuplevar = (1,2,3,4,5,6,["a","b","c"])
lst = tuplevar[-1]
print(lst)
lst[2] = "d"
print(tuplevar)
强制转换成 字典dict 示例代码
2. 运算符、比较运算符、赋值运算符、逻辑运算符、身份运算符

# ### python 运算符
# (1)算数运算符: + - * / // % ** var1 = 7
var2 = 4 # +
# res = var1 + var2
# print(res) # -
# res = var1 - var2
# print(res) # *
# res = var1 * var2
# print(res) # / 结果一定是一个小数
res = var1 / var2
res = 8 / 4
print(res) # // 地板除
res = 8 // 4
# 如果除数和被除数其中有小数,那么结果就是个小数
res = 8 // 4.0
print(res) # % 取余
res = var1 % var2
res = 87 % 6
# res = -7 % 4 # -3 + 4 = 1
# res = 7 % -4 # 3 + -4 = -1
# res = -7 % -4# 如果两边都是符号,就是单纯的在余数的前面套上负号即可
print(res) # ** 幂运算
res = 2 ** 4
print(res) # (2)比较运算符: > < >= <= == != 只会产生两个结果,要么是True真的,要么是False 假的 var1 = 10
var2 = 8
# >
res = var1 > var2
print(res)
# <
res = var1 < var2
print(res)
# >=
res = 5 >= 5
print(res)
# <=
res = 5 <= 5
print(res) # == 比较两个值是否相等
"""
= 代表的是赋值,把右边的值赋值给左边
== 代表的是比较两个值是否相等,满足返回True ,不满足返回False
"""
res = 5 == 5
print(res) # != 比较两个值是否不相等 res = 5 != 5
print(res)
算数与比较 运算符示例代码
# ### 赋值运算符 = += -= *= /= //= %= **= # =
a = 5
var1 = 7
var2 = 8
# +=
"""var1 = var1 + var2""" # var1 += var2
# print(var1) # -=
"""var1 = var1 - var2"""
# var1 -= var2
# print(var1) # *=
"""var1 = var1 * var2"""
# var1 *= var2
# print(var1) # /=
"""var1 = var1 / var2"""
# var1 /= var2
# print(var1) # //=
"""var1 = var1 // var2"""
# var1 //= var2
# print(var1) # %=
"""var1 = var1 % var2"""
# var1 %= var2
# print(var1) # **=
var1 = 3
"""var1 = var1 ** var2"""
var1 **= 2
print(var1) # (4)成员运算符: in 和 not in (针对于容器型数据)
# str
"""必须是一个连续的片段"""
strvar = "如果遇到你是一种错,那我宁愿一错再错"
res = "你" in strvar
res = "一种错" in strvar
res = "宁再" in strvar
print(res) # list tuple set
listvar = ["罗总要","主进程","杨马志","肖波","张晓东","是滑清"]
res = "主进程" in listvar tuplevar = ("罗总要","主进程","杨马志","肖波","张晓东","是滑清")
res = "杨马志" not in tuplevar setvar = {"罗总要","主进程","杨马志","肖波","张晓东","是滑清"}
res = "肖波123" not in setvar
print(res) # dict
"""在字典中,in , not in 判断的是字典的键,不是值"""
dictvar = {"lzy":"应该减肥","zjc":"小心被卖掉","ymz":"非常大气"} res = "应该减肥" in dictvar
res = "lzy" in dictvar
res = "非常大气" not in dictvar
print(res)
赋值运算符 示例代码
# ### 身份运算符 is 和 is not (检测两个数据在内存当中是否是同一个值) # 整型: -5 ~ 正无穷
var1 = 90
var2 = 90
res = var1 is var2
print(res) # 浮点型 非负数
var1 = 5.89
var2 = 5.89
res = var1 is var2
print(res) # bool 两个值相同即可
var1 = True
var2 = False
res = var1 is not var2
print(res) # 复数 (实数+虚数 地址永远不相同, 只有虚数的情况例外)
var1 = 4+3j
var2 = 4+3j
res = var1 is var2
print(res) # 相同的字符串 和 空元组 地址相同,其他容器类型数据地址都不相同
var1 = [90,91]
var2 = [90,91]
res = var1 is var2
print(res) # ### 逻辑运算符
print("<==========>")
# and 逻辑与
"""全真则真,一假则假"""
res = True and True # 真
res = True and False # 假
res = False and False # 假
res = False and True # 假
print(res) # or 逻辑或
"""一真则真,全假则假"""
res = True or True # 真
res = True or False # 真
res = False or True # 真
res = False or False # 假
print(res) # not 逻辑非
res = not True
res = not False
print(res) # 逻辑短路 : (不能够改变最终的结果了,后面的代码不执行)
"""
(1) True or 表达式
(2) False and 表达式
"""
True or print(111) # 不会打印111
False and print(222) # 不会打印111 res = 5 or 6 #
res = 5 and 6 #
res = not 5 # False
print(res) print("<=========>")
# 逻辑的优先级
# () > not > and > or
res = 5 or 6 and 7 # 5 or 7 => 5
res = (5 or 6) and 7 # 5 and 7 => 7
res = not (5 or 6) and 7 # not 5 and 7 => False and 7 => False
print(res) res = 1>2 or 3<4 and 5>6 # False or True and False => False or False => False
res = 1<2 and 3>5 or 7<6 and 90>100 or 100<2000 # True and False or False and False or True => False or False or True => False or True => True
print(res) # 注意点:
res = True or False and True or False #(这种情况直接短路)
res = False and True or True and True #(False and 一堆表达式,不能直接判定结果)
# False or True
print(res) # isinstance 判断类型的
"""
int float bool complex str tuple list set dict
isinstance(要判断的值,要判断的类型) 返回True真 或者 False假 # 只要有一个类型满足条件,就返回真,否则返回假
isinstance(要判断的值, (把所有可能的类型塞到元组当中) )
""" # 用法一
strvar = "我好帅"
res = isinstance(strvar,str)
print(res) # 用法二
listvar = ["张晓东","朱金城","石华清"]
res = isinstance(listvar, (str,int,tuple,list) )
print(res) container = [1,2,3,4,[5,6,7,[8,9,10,(11,{"a":{"bb":98},"pp":{"d":"bingo"}})]]]
# ”bingo”
print(container[-1][-1][-1][-1]["pp"]["d"])
逻辑与身份运算符 示例代码
3. 逻辑短路与isinstance

# 逻辑短路 : (不能够改变最终的结果了,后面的代码不执行)
"""
(1) True or 表达式
(2) False and 表达式
"""
True or print(111) # 不会打印111
False and print(222) # 不会打印111 res = 5 or 6 #
res = 5 and 6 #
res = not 5 # False
print(res) print("<=========>")
# 逻辑的优先级
# () > not > and > or
res = 5 or 6 and 7 # 5 or 7 => 5
res = (5 or 6) and 7 # 5 and 7 => 7
res = not (5 or 6) and 7 # not 5 and 7 => False and 7 => False
print(res) res = 1>2 or 3<4 and 5>6 # False or True and False => False or False => False
res = 1<2 and 3>5 or 7<6 and 90>100 or 100<2000 # True and False or False and False or True => False or False or True => False or True => True
print(res) # 注意点:
res = True or False and True or False #(这种情况直接短路)
res = False and True or True and True #(False and 一堆表达式,不能直接判定结果)
# False or True
print(res) # isinstance 判断类型的
"""
int float bool complex str tuple list set dict
isinstance(要判断的值,要判断的类型) 返回True真 或者 False假 # 只要有一个类型满足条件,就返回真,否则返回假
isinstance(要判断的值, (把所有可能的类型塞到元组当中) )
""" # 用法一
strvar = "我好帅"
res = isinstance(strvar,str)
print(res) # 用法二
listvar = ["张晓东","朱金城","石华清"]
res = isinstance(listvar, (str,int,tuple,list) )
print(res) container = [1,2,3,4,[5,6,7,[8,9,10,(11,{"a":{"bb":98},"pp":{"d":"bingo"}})]]]
# ”bingo”
print(container[-1][-1][-1][-1]["pp"]["d"])
逻辑短路与isinstance 示例代码
day03
day03-Python运维开发基础-(数据类型强转、运算符、逻辑短路、isinstance)的更多相关文章
- Python运维开发基础08-文件基础【转】
一,文件的其他打开模式 "+"表示可以同时读写某个文件: r+,可读写文件(可读:可写:可追加) w+,写读(不常用) a+,同a(不常用 "U"表示在读取时, ...
- Python运维开发基础04-语法基础【转】
上节作业回顾(讲解+温习90分钟) #!/usr/bin/env python3 # -*- coding:utf-8 -*- # author:Mr.chen # 仅用列表+循环实现“简单的购物车程 ...
- Python运维开发基础03-语法基础 【转】
上节作业回顾(讲解+温习60分钟) #!/usr/bin/env python3 # -*- coding:utf-8 -*- # author:Mr.chen #只用变量和字符串+循环实现“用户登陆 ...
- Python运维开发基础02-语法基础【转】
上节作业回顾(讲解+温习60分钟) #!/bin/bash #user login User="yunjisuan" Passwd="666666" User2 ...
- Python运维开发基础10-函数基础【转】
一,函数的非固定参数 1.1 默认参数 在定义形参的时候,提前给形参赋一个固定的值. #代码演示: def test(x,y=2): #形参里有一个默认参数 print (x) print (y) t ...
- Python运维开发基础09-函数基础【转】
上节作业回顾 #!/usr/bin/env python3 # -*- coding:utf-8 -*- # author:Mr.chen # 实现简单的shell命令sed的替换功能 import ...
- Python运维开发基础07-文件基础【转】
一,文件的基础操作 对文件操作的流程 [x] :打开文件,得到文件句柄并赋值给一个变量 [x] :通过句柄对文件进行操作 [x] :关闭文件 创建初始操作模板文件 [root@localhost sc ...
- Python运维开发基础06-语法基础【转】
上节作业回顾 (讲解+温习120分钟) #!/usr/bin/env python3 # -*- coding:utf-8 -*- # author:Mr.chen # 添加商家入口和用户入口并实现物 ...
- Python运维开发基础05-语法基础【转】
上节作业回顾(讲解+温习90分钟) #!/usr/bin/env python # -*- coding:utf-8 -*- # author:Mr.chen import os,time Tag = ...
- Python运维开发基础01-语法基础【转】
开篇导语 整个Python运维开发教学采用的是最新的3.5.2版,当遇到2.x和3.x版本的不同点时,会采取演示的方式,让同学们了解. 教学预计分为四大部分,Python开发基础,Python开发进阶 ...
随机推荐
- 阿里云服务器安装nginx(ubantu16.04)
下载安装包 sudo wget http://nginx.org/download/nginx-1.15.5.tar.gz 解压缩 tar zxvf nginx-1.15.5.tar.gz 打开目录 ...
- php 高级 提高PHP代码的性能10条建议
1.echo比print要快很多.两个方法都会在页面上打印东西,不过echo不返回任何值,print会在成功或失败的时候返回0或1. 2.include_once比include更加耗时.因为它需要去 ...
- 【C++初学者自学笔记三】哑元函数、缺省参数、内联函数(模块二,PS:需要用到重载函数)
一,哑元函数:一个函数的参数只有类型没有名字的则这个参数称之为哑元.类似于void fun(int); 功能:1保持向前的兼容性,比方说我们需要做成一个成品,然后成品是会不断的更新第一代第二代,当我们 ...
- 语言国际化:中文ASC码互转
https://javawind.net/tools/native2ascii.jsp 1.首先找到了上面的链接,也就是下图,输入中文就可立即得出ASCII码 2.看到上图第一条,找到了JDK/bin ...
- Python中神秘的-5到256
注:本文不区分作为编程语言的Python和作为语言实现的Python.后者均默认为CPython. 了解他人对Python源代码的掌握情况,我喜欢问这样一个问题 请问,在Python中,256和257 ...
- 并发编程之Event事件
Event事件 用来同步线程之间的状态. 举个例子: 你把一个任务丢到了子线程中,这个任务将异步执行.如何获取到这个任务的执行状态 解决方法: 如果是拿到执行结果 我们可以采用异步回调, 在这里我 ...
- 二十一 Struts的数据校验两种方式:手动编码和xml校验
数据的校验: 一.前台校验:JS校验 JS的校验不是必须的,JS可以被绕行,可以提升用户体验 二.后台校验:编码校验 必须的校验 三.校验的方式: 手动编码(不建议使用) 配置文件(支持) 手动编码的 ...
- 杭电2014 (第一次用vector ac题目)
早就想用容器类来实现一些编程,今天也算是学了一点吧. vector的使用方法参考了某位博主的一篇文章,感觉写得还是不错的:http://blog.csdn.net/always2015/article ...
- SpringMvc 返回json的三种方式
参考:https://blog.csdn.net/fupengyao/article/details/62220886
- Spark教程——(8)本地执行spark-sql程序
在程序中设定Spark SQL的运行模式: //.setMaster("local")设置本地运行模式 val conf = new SparkConf().setAppName( ...