python基础-流程控制
1.逻辑
逻辑判断:对于一件事情正确与否的判断,python中用布尔类型真(True)、假(False)做区分;
根据判断结果的不同去完成的不同操作,就是我们的业务逻辑;
对于条件是否满足的判断语句,就是条件语句;
一个逻辑语句是由条件语句+业务语句组成的。
2.if语句
判断一个命题的真实性,如果命题为真,则执行if的逻辑语句;
name_list = []
if name_list:
print('可以打印') # 条件语句为假,无输出
条件语句中可以使用逻辑关系,or、and、not
name_list = []
name = '小王'
if not name_list and name:
print('可以打印') # 可以打印
if name_list or name:
print('可以打印') # 可以打印
else语句,是当if语句不满足时所执行代码块的入口;
添加else语句后,当条件语句判断为假时,可以走else后的业务逻辑;
else模块是非必须的,可以按需添加;
if 5-5:
print('0不是对应False')
else:
print('0对应False')
# 0对应False
elif (或者如果),对于命题的非第一次的多种判断,每一种判断条件对应一组业务代码;
是对于首次if判断不满足时,其它条件的判断语句;
num = -1
if num >= 10:
print('num大于或等于10')
elif 5 <= num < 10: # 条件语句的数字区间可以直接这样写
print('num在5-10之间')
elif 0 <= num < 5:
print('num在0-5之间')
else:
print('num小于0')
# num小于0
3.for循环
循环:周而复始的变化或运动;
python中循环的操作也叫做遍历;
for循环可以将列表、字典、元组、字符串中的元素按顺序进行遍历;
for item in iterable:
print(item) # item就是itertable可遍历对象中的每一个元素;每一个元素遍历后就退出for循环;
for i in 'python':
print(i)
'''
p
y
t
h
o
n
'''
# 可以和if语句结合使用
for num in [1, 2, 3, 4, 5, 6]:
if num % 2 == 0:
print(num)
'''
2
4
6
'''
# for 后的item可以指定为多个变量,比如要遍历字典的items()
dict_test = {'name': 'll', 'age': 23}
for key, value in dict_test.items():
print(key, value)
'''
name ll
age 23
'''
python内置函数range() ,返回的是一个一定范围的可迭代对象,元素为整型,可循环;
for item in range(start, stop, step=1) 包含start、不包含stop,step为数字间隔;
l = range(1, 6)
print(l) # range(1, 6)
print(type(l)) # <class 'range'>
# range() 只传一个参数,表示默认从0开始,stop值为指定的值
for i in range(6):
print(i)
'''
0
1
2
3
4
5
'''
r = range(1, 10, 2)
print(r[3:5]) # range(7, 11, 2)
for i in range(7, 11, 2):
print(i)
'''
7
9
'''
for i in range(7, 10, 2):
print(i)
'''
7
9
'''
else在循环中的使用,只有在for循环正常退出时,else后的语句才被执行;
for i in range(3):
print(i)
else:
print('for循环结束了')
'''
0
1
2
for循环结束了
'''
嵌套for循环,for循环体内再增加一个for循环;
for i in range(3):
print(i)
print('--------')
for j in range(4):
print(j)
print('========')
'''
0
--------
0
1
2
3
========
1
--------
0
1
2
3
========
2
--------
0
1
2
3
========
'''
for i in range(3):
for j in range(4):
print(i+j, end='') # 012312342345
4.while循环
以一定的条件为基础的循环,条件满足则无限循环,条件不满足则退出循环;
count = 1
while count < 5:
print(count, end='')
count += 1
# 1234
# 可以用while循环替代for对列表的遍历
list_test = ['python', 'go', 'java']
index = 0
while index < len(list_test):
print(list_test[index], end=',')
index += 1
# python,go,java,
# 用while循环计算1-100累加计算
num = 1
total = 0
while num < 101:
total += num
num += 1
print(total) # 5050
# 用for循环计算1-100累加计算
total_new = 0
for i in range(101):
total_new += i
print(total_new) # 5050
# 计算1-1000奇数和
num = 0
total_n = 0
while num < 1001:
if num % 2 != 0:
total_n += num
num += 1
print(total_n) # 250000
continue和break
在循环体中遇到continue时,会停止本次循环,进行下一次循环;
break可以使循环停止;
# 找出所有男同学
student_list = [
{'name': 'll', 'sex': '男'},
{'name': 'uu', 'sex': '女'},
{'name': 'tt', 'sex': '男'},
]
man = []
for stu in student_list:
if stu.get('sex') == '女':
continue
man.append(stu)
print(man) # [{'name': 'll', 'sex': '男'}, {'name': 'tt', 'sex': '男'}]
# 打印到指定数字
for i in range(10):
if i == 4:
break
print(i)
else:
print('循环已退出') # 可以看到break导致循环停止,else后的语句也不会输出
'''
0
1
2
3
'''
for i in range(10):
print(i)
else:
print('循环已退出')
'''
0
1
2
3
4
5
6
7
8
9
循环已退出
'''
# 嵌套循环,break只作用于自己循环内
for i in range(3):
for j in range(4):
if j == 3:
break
print(i+j, end='')
# 012123234
# 九九乘法表
for i in range(1, 10):
for j in range(1, i+1):
print(f'{j}x{i}={i*j}', end=' ')
print()
'''
1x1=1
1x2=2 2x2=4
1x3=3 2x3=6 3x3=9
1x4=4 2x4=8 3x4=12 4x4=16
1x5=5 2x5=10 3x5=15 4x5=20 5x5=25
1x6=6 2x6=12 3x6=18 4x6=24 5x6=30 6x6=36
1x7=7 2x7=14 3x7=21 4x7=28 5x7=35 6x7=42 7x7=49
1x8=8 2x8=16 3x8=24 4x8=32 5x8=40 6x8=48 7x8=56 8x8=64
1x9=9 2x9=18 3x9=27 4x9=36 5x9=45 6x9=54 7x9=63 8x9=72 9x9=81
'''
i = 1
while i <= 9:
j = 1
while j <= i:
print(f'{j}x{i}={i*j}', end=' ')
j += 1
i += 1
print()
'''
1x1=1
1x2=2 2x2=4
1x3=3 2x3=6 3x3=9
1x4=4 2x4=8 3x4=12 4x4=16
1x5=5 2x5=10 3x5=15 4x5=20 5x5=25
1x6=6 2x6=12 3x6=18 4x6=24 5x6=30 6x6=36
1x7=7 2x7=14 3x7=21 4x7=28 5x7=35 6x7=42 7x7=49
1x8=8 2x8=16 3x8=24 4x8=32 5x8=40 6x8=48 7x8=56 8x8=64
1x9=9 2x9=18 3x9=27 4x9=36 5x9=45 6x9=54 7x9=63 8x9=72 9x9=81
'''
# 求100以内,能被3或能被7整除、且不能同时被3和7整除的数字
# 不能同时被3和7整除,即不能被21整除的数
num_list = []
for i in range(101):
if i % 3 == 0 or i % 7 == 0:
if i % 21 != 0:
num_list.append(i)
print(len(num_list)) # 39
总结