DAY 03
一、基本运算符
因为是整数,所以也可以进行数学中的基本运算。
- 算数运算符是 运算符的一种
- 是完成基本的算术运算使用的符号,用来处理四则运算
运算符 | 描述 | 实例 |
---|---|---|
+ | 加 | 10 + 20 = 30 |
- | 减 | 10 - 20 = 10 |
* | 乘 | 10 * 20 = 200 |
/ | 除 | 10 / 20 = 0.5 |
// | 取整除 | 返回除法的整数部分(商) 9 // 2 输出结果 4 |
% | 取余数 | 返回除法的余数 9 % 2 = 1 |
** | 幂 | 又称次方、乘方,2 ** 3 = 8 |
#其中 + 和 ***** 可以适用于字符串
1、赋值运算
(1) 增量赋值
age = 18
age += 1 # age = age + 1
age -= 10 # age = age - 10
age *= 10 # age = age * 10
(2) 交叉赋值
x = 111
y = 222
# temp=x
# x=y
# y=temp
#等同于
x, y = y, x
(3) 链式赋值
x = 10
y = x
z = y
x = y = z
print(id(x), id(y), id(z))
---------------------------
140720998896960 140720998896960 140720998896960
(4) 解压赋值:变量名与值的个数必须一一对应,多一个变量名不行,少一个变量名不行。
lists = [1, 12.3, "name", [23, 1]]
a, b, c, d = lists
print(a, b, c, d)
-------------------------
1 12.3 name [23, 1]
#### 可以通过* _ 方法来选取压缩包中特定的元素,作为一个列表的集合
#### 此处 * 可以理解为贪婪匹配
#### _ 的命名是不规范的 当做‘垃圾’的命名
# 取前几个
a, b, *_ = lists
print(a, b, _, sep="\t")
print(_)
--------------------
1 12.3 ['name', [23, 1]]
['name', [23, 1]]
# 取后几个
*_, c, d = lists
print(c, d, _, sep="\t")
print( _ )
-------------------
name [23, 1] [1, 12.3]
[1, 12.3]
#取中间
_, *midlle, _ = lists
print(midlle)
--------------
[12.3, 'name']
解压赋值对字典同样适用,只是取到的是字典的Key
dic = {'k1': 111, 'k2': 222, 'k3': 3333}
x, y, z = dic
print(x, y, z)
------------------
k1 k2 k3
二、流程控制if判断
1、条件:只要能得到True 或 False两种值的语句都能当做条件
- 如果 条件满足,才能做某件事情,
- 如果 条件不满足,就做另外一件事情,或者什么也不做
(1)、显式的布尔值 : 表面上看就直接是True或False
①比较运算的结果
print(10 > 3)
print(10 == 3)
②变量值直接就是True或False
tag = True
(2)、隐式的布尔值 :表面上看上去是一种值,在底层会被解释器转换成True或False
0、None、空对应的布尔值为False,其余值对应的布尔值均为True
10 3.1 "" [] {"k1":222} None
Ture Ture False False Ture False
###
2、逻辑运算符:用来连接多个条件
(1) not 条件:对条件的结果取反
print(not 10 > 3)
print(not False)
print(not 0)
-------------------
False
True
True
(2) 条件1 and 条件2:连接左右两个条件,两个条件必须都为True,最终结果才为True
print(True and 10 > 3)
print(True and 10 == 3)
------------------------
True
False
(3) 条件1 or 条件2:连接左右两个条件,两个条件只要有一个为True,最终结果就为True
print(False or 10 == 3)
print(True or 10 == 3)
------------------------
False
True
# ps:偷懒原则=》短路运算
print(10 or None)
print(0 or 'name')
------------------------
10 # 此处10为Ture而or判断的条件应为Ture 而Ture = 10 所以此处输出的是10
name # 同上
#####运算符的优先级
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kFhEnuR4-1594197163366)(C:\Users\S\AppData\Roaming\Typora\typora-user-images\image-20200708155110273.png)]
# 三者的优先级关系:not>and>or,同一优先级默认从左往右计算
# or最后判断 False or Ture == Ture
# 右and次优先 False and Ture == False
# 左and次优先 False and False == False
# not优先 False
result = (3 > 4 and (not 3 > 3)) and ('x' == 'x') or (3 == 3)
print(result)
--------------------
True # not运算通常单独使用 或者跟在 另外的运算符后面
3、if 判断的完整语法
if 条件1:
条件1满足执行的代码
……
elif 条件2:
条件2满足时,执行的代码
……
elif 条件3:
条件3满足时,执行的代码
……
else:
以上条件都不满足时,执行的代码
……
注意:
if
和else
语句以及各自的缩进部分共同是一个 完整的代码块elif
和else
都必须和if
联合使用,而不能单独使用- 可以将
if
、elif
和else
以及各自缩进的代码,看成一个 完整的代码块
4、if 的嵌套
gender = "female"
age = 18
is_beautiful = True
is_successful = True
if gender == "female" and 60 >= age >= 18 and is_beautiful:
print('开始表白。。。')
if is_beautiful:
print('在一起')
else:
print('再见。。。')
else:
print('阿姨好,开个玩笑。。。')
print('后续代码。。。')
``