运算符与流程控制
赋值运算
- 用 ‘=’ 表示,’=’ 的左边只能是变量
算数运算
符合运算
- +=、-=、*=、/=、//=、%=、**=
1
2
3
4
5
6
7a = 10
b = 4
# a = a + b
# 等同于上式
a += b
print(a)
- +=、-=、*=、/=、//=、%=、**=
关系运算(比较运算)
>、>=、<、<=、==、!=
- 由操作数和运算符组成的式子称为表达式
- 关系表达式是有值的,符合数学逻辑值为True,不符合数学逻辑值为False
1
2
3a = 10
b = 4
print(a != b)
逻辑运算
与(and):两边的表达式同时为真,值才为真
1
2
3
4
5
6a = 10
print((a >= 100) and (a <= 200))
# 与上式等价
print(100 <= a <= 200)
# 判断是否既是3的倍数又是5的倍数
print((a % 3 == 0) and (a % 5 == 0))或(or):两边的表达式一个为真,值就为真
1
2
3# 判断是否是闰年
y = int(input('请输入一个年份:'))
print(((y % 4 == 0) and (y % 100 != 0)) or (y % 400 == 0))非(not):用于取反表达式,真变假,假变真
- 逻辑非运算经常会伴随着隐式类型转换
- 很多时候是为了简化表达式
1
2a = 10
print(not a)
成员运算
- in、not in:判断一个变量是否是另一个变量的成员,是返回True,不是返回False
- 一般用在字符串、列表、元组、集合、字典等成员的判断
- 若是字典判断的是键
1
2
3
4l = ['李白', '杜甫', '白居易', '欧阳修']
print('李白' in l)
d = {'a': 'apple', 'b': 'banana', 'c': 'cat', 'd': 'dog'}
print('a' not in d)
按位运算(了解)
- &:按位与,对应的数据同时为1,值才为1
- |:按位或,对应的数据一个为1,值就为1
- ^:按位异或,对应的数据相同时值为0,不同时值为1
- ~:按位取反,对应的数据1变0,0变1
- <<:按位左移,相当于乘2
- >>:按位右移,相当于除2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15a = 0b10101
b = 0b01011
print(a & b)
print(a | b)
print(a^b)
a = 0b01
'''
补码: 0000 0001
(按位取反)补码: 1111 1110
反码: 1111 1101
原码: 1000 0010
'''
print(~a)
print(a<<1)优先级:无需记录运算符的优先级,需要的时候添加()即可
- 按照程序的执行流程,程序可以分为三种结构:顺序结构、分支结构、循环结构python中的代码层次是通过缩进表现的
顺序结构:代码从上到下,依次执行,没有语法要求
分支结构:if-else
- 格式1:执行流程:当程序执行到if语句时,首先要判断表达式的真假;若表达式的值为真(True),则执行语句块;若表达式的值为假(False),则跳过语句块,继续向下执行。
1
2if 表达式:
语句块1
2
3
4# 判断一个数是否是3的倍数
num = int(input('请输入一个整数:'))
if num % 3 == 0:
print('%d是3的倍数' % num) - 格式2:执行流程:当程序执行到if-else语句时,首先判断表达式的真假;若表达式的值为真,则执行语句块1;若表达式的值为假,则执行else后边的语句块2。
1
2
3
4if 表达式:
语句块1
else:
语句块21
2
3
4
5
6# 判断闰年
y = int(input('请输入一个年份:'))
if ((y % 4 == 0) and (y % 100 != 0)) or (y % 400 == 0):
print('%d年是闰年' % y)
else:
print('%d年不是闰年' % y) - 格式3:
1
2
3
4
5
6
7if 表达式1:
语句块1
elif 表达式2:
语句块2
...
else:
语句块n- elif的个数不限
- else可以不写
1
2
3
4
5
6
7
8
9
10
11
12# 判断学生成绩级别
score = int(input('请输入一个分数:'))
if score >= 90:
print('A:优秀')
elif score >= 80:
print('B:良好')
elif score >= 70:
print('C:中等')
elif score >= 60:
print('D:及格')
else:
print('请把家长叫来!')- 练习:
1
2
3
4
51.输入两个数,打印较大的那个值
2.输入三个数,按照从小到大的顺序打印
2.输入一个三位数,打印其个位、十位、百位上的数
4.输入一个年份,判断是否为闰年,是打印一句话,不是打印赢一句话
5.输入一个整数,判断其是否既能被 3 整除,又能被 5 整除
- 格式1:
循环结构(while):
- 格式:执行流程:当程序执行到while语句时,首先判断表达式的真假。当表达式的值为真时,执行语句块,之后返回while,继续判断表达式的真假;若表达式为假,则跳过语句块。
1
2while 表达式:
语句块- 表达式也叫循环条件
- 语句块也叫循环体
- 表达式一直成立称为死循环
1
2
3
4
5
6
7# 1 + 2 + 3 + ... + 100 = ?
i = 1
s = 0
while i <= 100:
s += i
i += 1
print(s) - break:跳出循环
- continue:结束本次循环,进入下次循环
- 结合else使用:循环正常退出,执行else后的语句块;非正常(break)退出,则不执行else语句块。
1
2
3
4
5
6
7i = 1
while i <= 10:
print(i)
i += 1
break
else:
print('结束')
- 练习:
1
2
3
4
51.计算 1~100 之间所有整数的和
2.打印字符 a~z
3.打印字符 Z~A
4.循环输入 10 个字符,大写转为小写,小写转为大写,其他字符不处理
5.思考:循环能否嵌套,想一想其应用场景及执行流程
- 格式: