【第2天】Python第一阶段学习总结
2021/09/15
一. 变量
1. 同时定义多个变量
-
同时定义多个变量赋相同的值:变量名1 = 变量名2 =变量名3 = … = 数据。
x = y = z = 0 print(x, y, z)
-
同时定义多个变量赋不同的值:变量名1. 变量名2, 变量名3,… = 数据1, 数据2, 数据3,…。
❗️ 注意:赋值的数量与变量的数量必须保持一致。
name, age, gender = '小明', 30, '男' print(name, age, gender)
2. 变量重新赋值
-
重新给变量赋值以后,再次使用时使用的是变量中最新的值。
score = 100 print(score) score = 95 print(score) 运行结果:95
3. Python定义变量和重新给变量赋值的原理
-
Python在定义变量的时候会申请内存保存数据,内存申请多大看被保存的数据需要多大。
-
重新给变量赋值的时候,会申请新的内存,新的内存的大小由新的数据大小决定,然后变量会和新的内存关联,原来的内存被自动销毁。
-
获取变量对应的内存地址:id(变量)
num = 100 print(id(num)) num = 1000 print(id(num))
二. 数学运算符:+、-、*、/、%、//、**
1. +、-、*、/和数学中的+、-、x、÷的功能一模一样
❗️ 注意:除法运算的结果类型均为浮点数。
print(10 + 20) #30
print(2 - 5) # -3
print(2 * 5) # 10
print(5 / 2) # 2.5
print(4 / 2) # 2
2. % - 取余(取模)
# x % y - 求x处以y的余数
# 被除数 ÷ 除数 = 商 ... 余数
# 被除数 = 除数 x 商 + 余数
print(10 % 3) # 1
# 应用一:判断两个数是否存在整除关系 - 判断两个数的余数是否为0
print(10 % 2) # 0
print(25 % 5) # 0
# 应用二:取整数的低位数
# 一个整数对10取余,能够获取这个数的个位数
# 一个整数对100取余,能够获取这个数的后两位数
# 一个整数对1000取余,能够获取这个数的后三位数
num = 2346
print(num % 10) #6
print(789 % 10) #9
print(num % 100) #46
3. // - 整除(商向小取整)
print(5 // 2) # 2.5取2
print(1/8 // 2) # 0.9取0
print(-5 // 2) # -2.5取-3
# 应用:去掉低位数
num = 2342
print(num // 10) # 234
print(num // 100) # 23
print(num // 1000) # 2
# 练习1:获取任意一个正整数的十位数
num = 5678
print(num // 10 % 10) # 7
print(num % 100 // 10) # 7
# 练习2:获取任意一个正整数的白位数
num = 28293
print(num // 100 % 10) # 3
print(num % 1000 // 100) # 3
4. ** - 幂运算
# x ** y - 求x的y次方
print(2 ** 2) # 4
print(9 ** (1/2)) # 3.0
print(8 ** (1/3)) # 2.0
三. 比较运算符
❗️ 结论:所有的比较运算符的运算结果都是布尔值。
print(10 > 20)
print(10 < 20)
print(10 == 20)
print(10 != 20)
print(10 >= 10)
print(10 <= 10)
- Python的比较运算符支持连写表示范围
x = 0.5
print(0 <= x <= 1)
四. 逻辑运算符:and、or、not
1. and(逻辑与)
-
应用场景:用于需要多个条件同时满足的时候,相当于生活中的并且。
-
运算规则:条件1 and 条件2 - 两个都是True,结果才是True;其中一个是False,结果就是False。
# 练习1:写出判断一个数是否能够被3和7整除的条件 num = 22 print('是否能够同时被3和7整除:', num % 3 == 0 and num % 7 == 0) print('是否能够同时被3和7整除:', num % 21 == 0)
# 练习2:判断指定数是否能被3整除的偶数 num = 9 print('是否能被3整除的偶数:', num % 3 == 0 and num % 2 == 0) print('是否能被3整除的偶数:', num % 6 == 0)
2. or(逻辑或)
-
应用场景:用于多个条件只要有一个条件满足就行的时候,相当于生活中的或者
-
运算规则:条件1 or 条件2 - 两个条件中只要有一个条件是True,结果就是True;两个都是False的时候,结果才是False。
# 练习1:判断指定数是否能被5或者7整除
num = 5
print('是否能被5或者7整除:', num % 5 == 0 or num % 7 == 0)
# 练习2:判断指定的年是否是闰年
# 普通闰年 - 能被4整除但是不能被100整除的年
# 世纪闰年 - 能被400整除的年
yr = 2008
print('指定的年是否是闰年:', (yr % 4 == 0 and yr % 100 != 0) or (yr % 400 == 0))
3. not(逻辑非)
-
应用场景:(对某一个条件进行否定)如果正向写条件情况很多很复杂,反向却很简单,条件就反向写再加not。
-
规则:not 条件
- not True -> False
- not False -> True
# 练习:写出判断一个数不能同时被3和7整除的条件
# 1) 能被3整除但是不能被7整除
# 2)能被7整除但是不能被3整除
# 3)既不能被3整除也不能被7整除
# 条件反向写:
num = 21
print('判断一个数不能同时被3和7整除:', not num % 21 == 0)
五. 逻辑运算符扩展
1. 短路操作
-
条件1 and 条件2
and的短路:如果条件1是False,那么条件2对应的代码不会执行。 -
条件1 or 条件2
or的短路:如果条件1是True,那么条件2对应的代码不会执行。
2. 逻辑运算符的通用运算规则
❗️ 注意: 运算结果不是数据1就是数据2。
-
and
数据1 and 数据2:- 不短路,是数据2
- 短路,是数据1
-
or
数据1 or 数据2:-
不短路,是数据2
-
短路,是数据1
print(7 and 8) # 8 print(7 or 8) # 7 print(not 7) # False print(not 0) # True
-
❗️❗️❗️ 重要结论:Python中任何类型的数据都可以转换成布尔(都有布尔值),其中零值值或者空值是False,其他的都是True
六. 赋值运算符
1. 赋值运算符:=、+=、-=、*=、/=、%=、//=、**=
- 赋值运算符的作用不是计算出一个结果,而是将数据保存到变量中
- 所有赋值运算符的左边必须是变量
2. =
x = 10
y = 100
3. +=、-=、*=、/=、%=、//=、**=
-
语法:变量 += 数据
-
说明:将变量中保存的数据和+=后面的数据进行加法运算,将运算结果重新赋值给变量。
❗️ 注意:复合的赋值运算符前面的变量必须是已经赋值过的变量。a = 10 a += 20 print(a) # 30 b = 20 b -= 10 print(b) # 10
❗️❗️❗️ 强调:所有的赋值运算是没有结果的。
七. 运算符的优先级
-
运算符的优先级:数学运算符 > 比较运算符 > 逻辑运算符 > 赋值运算符(最低)。
-
数学运算符中:** > *、/、//、% > +、-
-
有括号先算括号里面的 - ()
-
如果布尔数据参与了数学运算,False看成0,True看成1。
result = 100 + True print(result) # 101