一、Python 的逻辑语句
逻辑与 if 语句
逻辑判断与逻辑语句:
- 对于一件事情正确与否的判断
- 根据判断的结果做不同的事情
- 对于条件满足的判断语句,就是条件语句
- 一个逻辑语句是由条件语句和业务语句组合而成
判断一个命题的真实性,如果命题为真(True)则执行 if 的逻辑语句
if bool_result: # 语法块 do # 业务代码块,有缩进 复制代码
- if 关键字后的 bool_result 是结果的真假,为布尔类型既 True 或者 False
- do 代码块是在 bool_result 为 True 的条件下执行的
- if 是关键字,不是函数,无返回值
info = 'i am iron man' info_list = info.split(' ') print(info_list) if info_list[0] == 'iron': info_list[0] = 'spider' if info_list[1] == 'iron': info_list[1] = 'spider' if info_list[2] == 'iron': info_list[2] = 'spider' if info_list[3] == 'iron': info_list[3] = 'spider' print(info_list) info_02 = ' '.join(info_list) print(info_02) 复制代码
使用成员运算符
进行逻辑判断
message = 'Will says:"Keep my wife's name out of your fucking mouth"' message_list = message.split() if 'fucking' in message_list: message = message.replace('fucking', '*') print(message) 复制代码
条件语句中的 else 关键字
else 就是对于不满足 if 条件的时候执行另一个代码块的入口
if bool_result: do else: else do # else 代码块,当满足if条件时执行,需要与if代码块有同样的缩进 复制代码
else是关键字,不是函数,无返回值
name = 'peter' if name == 'stark': print('I am IronMan') else: print('Who are you then?') 复制代码
不满足 if 的条件,则会执行 else 代码块。
条件语句中的 elif 关键字
elif(或者如果)对于条件的非第一次的多种判断,每种判断条件对应一个代码块
if bool_reslut: do elif bool_result: elif do # 当前elif对应的代码块, 缩进与上面保持一致 elif bool_result: elif do else: else do 复制代码
elif 是关键字,不是函数,没有返回值
num = 8 if num >= 10: print('num的值大于等于10') elif num > 5: print('num的值大于5小于10') else: print('num的值小于等于5') 复制代码
条件语句总结
- 条件语句中满足一个条件后,将推出当前条件语句
- 每条语句中有且只有一个if语句,可以有0个或者多个elif语句,可以有0个或者1个else语句
- 每个条件语句中的第一个条件语句必须是if条件语句
二、for 循环
for 关键字可以将列表、元组、字典、字符串中的每个元素按照队列中的顺序进行遍历
for item in iterable: # iterable 既可迭代的数据类型,元组、字典、字符串、列表等 print(item) # item 是指队列中的一个元素 复制代码
list_01 = ['stark', 'wanda', 'steve', 'strange', 'loki'] for item in list_01: print(item) if item == 'stark': print('I am IronMan') elif item == 'peter': print('I am SpiderMan') elif item == 'banner': print('Incredible Hulk') elif item == 'thor': print('Thor Odin') else: print('We are Heros') 复制代码
字典的 item 函数
items函数可以将字典转成伪列表,每个Key、Value转换成元组
利用字典的item函数对字典进行for循环
for key, value in dict.items(): print(key, value) 复制代码
items函数无参数 key:for循环体中获取的字典的当前元素的key value:for循环体中对应当前Key的Value值
list_dict = [ {'name': 'stark', 'age': 40}, {'name': 'thor', 'age': 1500}, {'name': 'banner', 'age': 40}, {'name': 'clint', 'age': 37}, ] for i in list_dict: for k, v in i.items(): print(k ,v) 复制代码
range 函数
range函数返回的是一个一定范围的可迭代对象,元素为整型,不是列表,无法打印信息,但是可以进行循环。
for item in range(start, stop, step=1): print(item) 复制代码
- start: 开始的数字,类似切片时的起始位置
- stop:结束的数字,类似切片的结束位置
- step:步长,类似切片中的步长
返回一个可迭代的整型的对象,且与切片一样是左包含右不包含
for i in range(1, 5): print(i) print('--------------') for j in range(1, 10, 2): print(j) 复制代码
else 在 for 循环中的使用
else语句只有在for循环正常退出后才执行
for i in range(1, 5): print(i) else: print('for循环执行结束') 复制代码
嵌套for 循环
for循环中的for循环称为嵌套for循环
for i in range(1, 3): print('第一层for循环') print(i) for j in range(1, 3): print('第二层for循环') print(i, ',', j) print(i, j) 复制代码
可以使用上一层的for循环中的变量,可以在 for 循环外使用 for 循环中的两个变量。
三、while 循环
以一定条件为基础的循环,条件满足则无限循环,条件不满足则退出循环,for循环是有限循环,有一定的迭代次数,while循环是无限循环,while循环不依赖可迭代的数据类型,for循环依赖可迭代的数据类型。
while bool_result: do 复制代码
- bool_result:True 或 False
- do:while循环的代码块
count = 0 total = 0 while count <= 100: total += count count += 1 print(total) 复制代码
index = 0 list_01 = ['stark', 'banner', 'peter', 'clint', 'thor'] while index < len(list_01): print(list_01[index]) index += 1 复制代码
四、continue 与 break 关键字
continue 关键字可以停止当前循环,直接进入下一次循环,continue 关键字在循环中使用
while bool_result: if bool_result: contineu 复制代码
break 关键字可以使循环停止,并且不会执行当前语句中的else语句
while bool_result: break 复制代码
- continue 与 break 通常伴随着循环语句中的条件语句,满足某些条件可以继续执行,不满足条件提前退出或者结束循环
- 在while循环中,break语句优先与while逻辑体中的判断
heros = [ {'name': 'stark', 'age': 40, 'address': 'NY'}, {'name': 'peter', 'age': 18, 'address': 'NY Queens'}, {'name': 'steve', 'age': 40, 'address': 'NY Brooklyn'}, {'name': 'thor', 'age': 1500, 'address': 'Asgard'}, ] humans = [] for hero in heros: if hero.get('name') == 'thor': continue humans.append(hero) print('{} is human'.format(hero.get('name'))) print(humans) 复制代码
heros = [ {'name': 'stark', 'age': 40, 'address': 'NY'}, {'name': 'peter', 'age': 18, 'address': 'NY Queens'}, {'name': 'steve', 'age': 40, 'address': 'NY Brooklyn'}, {'name': 'thor', 'age': 1500, 'address': 'Asgard'},] humans = [] for hero in heros: if hero.get('name') == 'steve': break humans.append(hero) print('{} is human'.format(hero.get('name'))) else: print('for循环执行完毕') print(humans) 复制代码
continue、break只能在循环中使用。
嵌套循环实现九九乘法表
num = [1, 2, 3, 4, 5, 6, 7, 8, 9] for i in num: # print(i) for j in range(1, i+1): # 输出乘法口诀 print('{} * {} = {}'.format(j, i, i * j), end=' ') if j == i: # 换行 print()