220920python学习:变量、运算符和分支结构
一、变量
-
变量的作用:保存数据。
程序中使用数据的方式:
-
在需要数据时直接提供数据
-
先将数据保存到变量中,然后在需要使用数据的时候通过变量来提供数据(需要多次打印或使用同一个数据,用变量最便捷)
# 方法1: print(18) # 方法2: age = 18 print(age)
-
-
定义变量:创建变量保存数据。
语法:变量 = 数据
-
变量名:
- 由程序员自己命名
- 两个要求:是标识符;不能是关键字
- 三个规范:见名知义;所有的字母都小写,多个单词之间用下划线隔开;不使用系统函数名、类名和模块名。
-
= 是赋值符号,固定写法
-
数据:可以是任何有结果的表达式
a = 10 # 具体的数字 b = 'abc' c = a # 已经赋值过的变量 d = 10 + 20 # 有结果的运算表达式 e = input('请输入一个数据:') # 函数调用表达式
-
-
使用变量
使用变量就是使用变量中保存的数据(变量中保存的数据能做的事情,变量都可以做)。
注意:变量必须先定义再使用。
-
修改变量值:重新给变量赋值。(后赋的值会覆盖变量中原来保存的数据)
age = 18 age = 19 print(age) # 19
-
同时定义多个变量
-
同时定义多个变量赋相同的值:变量名1 = 变量名2 = 变量名3 = … = 数据
x = y = z = 100 print(x, y, z) # 100 100 100
-
同时定义多个变量赋不同的值:变量名1, 变量名2, 变量名3,… = 数据1, 数据2, 数据3,…
注意:前面的变量个数必须和后面的数据个数保存一致
m, n = 10, 20 print(m, n) # 10 20
-
⭐练习:交换两个变量的值
v1 = 100
v2 = 320
# 方法1:
v1, v2 = v2, v1
print(v1, v2)
# 方法2(取第三个变量赋值):
t = v1 # t = 100
v1 = v2 # v1 = 320
v2 = t
print(v1, v2)
二、数字运算符
- +(加)、 -(减)、 *(乘)、 /(除)
python中 +、 - 、 * 、 / 和数学中的 +(加)、 -(减)、 *(乘)、 /(除) 的功能一样。
print(10 + 20) # 30
print(10 - 5) # 5
print(10 * 10) # 100
# 注意:除法运算的运算结果的类型一定是浮点型
print(4 / 2) # 2.0
-
%(取余/取模)
x % y :求x除以y的余数
print(10 % 3) # 1 print(15 % 4) # 3
-
应用1:判断两个数是否存在整除关系(判断两个数的余数是否为0)
num = 100 print(num % 2) # 0 num = 9 print(num % 3) # 0
-
应用2:取整数的低位数(让整数对10或者10的幂次方进行取余操作)
num = 57836 print(num % 10) # 6 print(num % 100) # 36 print(num % 1000) # 836
-
-
**(幂运算)
print(2 ** 3) # 8 print(4 ** 5) # 1024 print(16 ** 0.5) # 4.0 运算中只要有一个浮点数,结果就是浮点数 print(8 ** (1/3)) # 2.0 print(3 ** -2) print(5 ** -3) # 0.008
-
//(整除)
x // y:求x除以y的商,商向小取整。
print(5 // 2) # 2 print(10 // 3) # 3 print(-5 // 2) # -3
-
应用1:去掉一个正整数的低位数,保留高位数。
num = 2733 print(num // 100) # 27 print(num // 10) #273
-
-
⭐练习:获取任意一个正整数的十位数
num = 2567 # 方法1(先取余只剩后个位和十位,再整除10获取十位): print(num % 100 // 10) # 方法2(先整除10将十位放在最低位,再对10取余获取) print(num // 10 % 10)
三、比较运算符
比较运算符:>(大于)、 <(小于)、 >=(大于等于)、 <=(小于等于)、 ==(等于)、 !=(不等于)。
-
注意:所有比较运算的结果都是布尔值
print(10 > 20) # False print(20 > 10) # True print(20 >= 20) # True print(10 == 20) # False print(10 != 20) # True num = 23 print('是否为奇数:', num % 2 == 1) # 是否为奇数: True age = 16 print('是否成年:', age >= 18) # 是否成年: False
-
注意2:python的比较运算支持连写表示范围
x = 0.5 print('x是否在0到1之间:', 0 <= x <= 1) # x是否在0到1之间: True y =21 print(10 < y < 20) # False
四、逻辑运算符
逻辑运算符:and(逻辑与运算)、or(逻辑或运算)、not(逻辑非运算)
-
and:逻辑与运算
-
应用场景:如果需要两个条件同时满足,就用and来连接这两个条件。相当于生活中的并且。
-
运算规则:条件1 and 条件2。
如果两个条件都是True,结果是True,只要有一个是False结果就是False。
- True and True - True
- True and False - False
- False and True - False
- False and False - False
-
⭐练习
# 写出判断num是否能同时被3和7整除的条件 num = 23 # num能被3整除:num % 3 == 0 # num能被7整除:num % 7 == 0 print('num是否能同时被3和7整除:', num % 3 == 0 and num % 7 == 0) # False print('num是否能同时被3和7整除:', num % 21 == 0) # False
-
⭐练习2
# 练习:写出判断num是否是大于10的偶数的条件 num = 13 # num是否大于10:num > 10 # num是否是偶数:num % 2 == 0 print('num是否是大于10的偶数', num > 10 and num % 2 == 0) # False
-
-
or:逻辑或运算
-
应用场景:如果需要两个或者多个条件中有一个条件成立就行,就将两个或者多个条件用or连接,相当于生活中的或者。
-
运算规则:条件1 or 条件2。如果两个条件都是False,结果才是False,只要有一个是True,结果就是True。
- True or True - True
- True or False - True
- False or True - True
- False or False - False
-
⭐练习
# 练习:判断num是否能被3或者4整除的条件 num = 234 print('num是否能被3或者4整除', num % 3 == 0 or num % 4 == 0) # True
-
⭐练习2
# 练习2:写出判断指定的年是否是闰年的条件 # 闰年分为世纪闰年(能被400整除的年)和普通闰年(能被4整除但不能被100整除的年)两种 # 世纪闰年:year % 400 == 0 # 普通闰年:year % 4 == 0 and year % 100 != 0 year = 2003 print('year是否是闰年:', (year % 400 == 0) or (year % 4 == 0 and year % 100 != 0))
-
-
not:逻辑非运算
-
应用场景:对一个条件进行否定,相当于生活中的不。
-
运算规则:not 条件——对指定的条件进行否定
- not True - False
- not False - True
-
案例
# 案例:age不大于12 age = 27 print(not age > 12) print(age <= 12) # 案例2:判断num是否不等于10 num = 23 print(num != 10) print(not num == 10)
-
⭐练习
# 练习:写出判断num是否不能同时被3和7整除的条件 num = 42 print(not (num % 3 == 0 and num % 7 == 0)) print(num % 21 != 0)
-
五、赋值运算符和运算符的优先级
-
赋值运算符:=、 +=、 -=、 *=、 /=、 %=、 //=、 **=
所有的赋值运算符都是用来给变量赋值的,所以所有的赋值运算符的左边必须是变量,右边是能够提供数据的表达式
-
= :变量 = 数据(将指定的数据保存到变量中)
-
复合赋值运算符:变量 += 数据(将变量中保存的数据取出来和后面的数据进行加法运算,再将结果重新赋值给前面的变量)
注意:复合的赋值运算符前面的变量必须是已经定义过的变量。
x = 100 x += 10 print(x) # 110 x -= 20 # x = 90 x *= 2 # x = 180 x %= 3 # x % 3 = 0 x **= 2 # x = 0 print(x)
🔺**特别注意:**赋值运算表达式没有结果。(打印它会报错)
-
-
运算符优先级:数学运算符 > 比较运算符 > 逻辑运算符 > 赋值运算符(最低)
- ** > *、/ 、%、// > +、-
- not > and > or
- 括号先算括号中里面的——( )
六、分支结构
-
流程控制:根据代码执行过程不同,可以将代码的结构分为三种。
- 顺序结构(默认):代码从上往下按顺序依次执行,并且每一条语句只执行一次。
- 分支结构(if):根据条件选择性的执行代码。
- 循环结构(for、while):让代码重复执行。
-
分支机构
-
if 单分支结构 — 如果xx就xx
-
应用场景:满足条件才执行,条件不满足的时候这个操作就不执行
-
语法:
# if 条件语句: # 代码段 """ 说明: if - 关键字;固定写法 条件语句 - 可以是任何有结果的表达式 : - 固定写法(注意必须是英文输入法的冒号) 代码段 - 结构上,就是和if保持一个缩进的一条或者多条语句(至少一条); 逻辑上,就是满足条件才会执行的代码 """
-
执行过程:先判断条件语句是否为True,如果是就执行代码段中的代码,否则就不执行。
age = 19 # 根据age的值打印'成年' if age >= 18: print('成年') # 成年
-
-
if 双分支结构 — 如果xx就xx否则就xx
-
语法
""" 语法: if 条件语句: 代码段1(满足条件会执行的代码) else: 代码段2(条件不满足的时候会执行的代码) """
-
⭐练习
# 根据age的值打印'成年'或者'未成年' age = 14 # 未成年 age2 = 22 # 成年 if age >= 18: print('成年') else: print('未成年')
-
-