壹–其他数字类型与bool之间的转换
True:非0的数字,非空的字符串,列表,元祖,字典
False :0,’’, () , [] , {} , None
None不能理解为0;0是有意义的,None是一个特殊的空值
"""
bool为False的情况
"""
# 空字符串
s1 = ''
print(bool(s1))
# 数字 0
s2 = 0
print(bool(0))
# 空元组
s3 = ()
print(bool(s3))
# 空列表
s4 = []
print(bool(s4))
# 空字典
s5 = {}
print(bool(s5))
# None
s6 = None
print(bool(s6))
贰–运算符
算术运算符,逻辑运算符,赋值运算符,复合赋值运算符,关系运算符
1.算术运算符
下面是a = 10 , b = 20为例计算
运算符 | 描述 | 实例 |
---|---|---|
+ | 加 | 两个对象相加 a + b 输出结果为30 |
- | 减 | 得到一个负数,或者一个数减去另外一个数 a-b 输出为 -10 |
* | 乘 | 两个数相乘或者返回一个被重复若干次的字符串 a*b 输出为200 |
/ | 除 | b/a输出结果为 2.0,不管操作数的类型,返回任何余数的浮点型结果 |
// | 整除 | 返回商的整数部分 9//2输出结果为 4 , 9.0//2.0 输出的是4.0,它截取掉余数并且针对整数操作返回整数,如果两个数有任何一个是浮点数,那么返回浮点数 |
% | 取余 | 返回除法的余数 b % a 输出结果为 0 |
** | 幂 | 返回 a 的 b次方 为 10 的 20 次方 ,输出结果为 100,000,000,000,000,000,000 |
2.赋值运算符
运算符 | 描述 | 实例 |
---|---|---|
= | 把=号右边的值给=号左边的变量 num = 1+2+3 的结果 num的值为 6 |
3.复合赋值运算符(自增运算)
运算符 | 描述 | 实例 |
---|---|---|
+= | 加法赋值运算符 | c+=a 等效于 c = c + a |
-= | 减法赋值运算符 | c-=a 等效于 c = c - a |
*= | 乘法赋值运算符 | c*=a 等效于 c = c* a |
/= | 除法赋值运算符 | c/=a 等效于 c = c / a |
%= | 取模赋值运算符 | c%=a 等效于 c = c % a |
//= | 取整除赋值运算符 | c//=a等效于 c = c // a |
4.逻辑运算符
运算符 | 逻辑表达式 | 描述 | 实例 |
---|---|---|---|
and | x and y | 布尔“与”,如果x为False,x and y 返回False,否则他返回y的计算值 | x = False ,y=True,b= x and y,print(b) # True |
or | x or y | 布尔“或”,如果X为True,它返回是True,否则返回y的计算值 | x = True , b = not x ,print(b) #False, x1 = True,y1 = False, b1 = x and y ,print(b1)#True |
not | not x | 布尔“非”,如果X为True,返回False。如果X为False,返回True | x = True , b = not x ,print(b)# False ,x1 = False,b1=not x1,print(b1)#True |
优先级为 not > and >or.可以添加()来提升优先级
短路逻辑:
a and b and c and d
如果a为False,则后面的所有and均不再执行,直接返回a的值
a or b or c or d
如果a为True,则后面的所有or都不执行,直接返回a的值
5.比较(关系)运算符
运算符 | 描述 | 实例 |
---|---|---|
== | 检查两个操作数的值是否相等,如果是,则条件为True | a = 3 ,b =3,(a == b)# True |
!= | 检查两个操作数的值是否相等,如果不相等,则条件为True | a = 2,b = 3,(a != b) # True |
> | 检查左边的操作数的值是否大于右边,如果是,则条件为True | a = 7 , b = 2,(a > b)# True |
>= | 检查左边的操作数的值是否大于或等于右边,如果是,则条件为True | a = 3 ,b =3,(a >= b)# True |
< | 检查左边的操作数的值是否小于右边,如果是,则条件为True | a = 2 , b = 8,(a < b)# True |
<= | 检查左边的操作数的值是否小于或等于右边,如果是,则条件为True | a = 3 ,b =3,(a <= b)# True |
1.混合数据类型比较
python支持数字表达式的混合类型比较,同样是将简单的类型转为复杂类型进行比较
print(True < 3)# True
print(False == 0) #True
print(3 > 9.0)# False
print(3 == 3.0)# True
2.连续比较
Python允许我们把大小比较连接起来,成为诸如范围测试的连续比较。例如,表达式(A < B <C)测试B是否在A和C之间 等同布尔测试(A < B and B < C)
a = 1
b = 2
c = 3
print(a < b < c)# True
print(a < b and b < c)# True
print(a < c > b)# True
print(a < c and c > b)# True
print(1 == 2 < 3)# False
print(1==2 and 2 < 3)# False
叁–流程控制语句
流程控制语句,就是根据不同的情况选择不同的执行方向,例如我们让代码,根据时间打印,早上好!或者晚上好。这就用到了控制语句。
1.顺序流程控制语句
顺序流程控制语句,就是程序从上至下依次执行。
#顺序流程
print("aaa")
print("bb")
print("c")
2.分支控制语句
根据表达式的结果执行相应的代码。
分支控制语句的基本格式有很多:
结构 | 格式 | 执行代码 |
---|---|---|
if | if 条件表达式:…代码… | 如果条件成立,则执行if块中的代码,否则不执行 |
if…else… | if 条件表达式:…代码1…else:…代码2… | 如果条件成立,执行if块中的代码,否则执行else块中的代码 |
if…elif…elif…else | if 条件表达式1:…代码1…elif条件表达式2:…代码2…elif:条件表达式3…代码3…else:代码4… | 如果条件表达式1成立,则执行if块中的代码,执行完不在执行后面的elif代码。如果条件表达式1不成立,则继续判断条件表达式2,如果成立,执行代码块2,否则继续向下判断条件表达式3,以此类推,如果所有的elif都不成立,则执行else代码块 |