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

 

总结

  

posted @ 2022-10-30 11:48  whiteList  阅读(142)  评论(0编辑  收藏  举报