Python学习笔记(四)控制结构

您所在的位置:网站首页 python程序的基本控制结构包括 Python学习笔记(四)控制结构

Python学习笔记(四)控制结构

2023-11-23 21:34| 来源: 网络整理| 查看: 265

“Life is short, You need Python” – Bruce Eckel

Environment

OS: macOS MojavePython version: 3.7IDE: Jupyter Notebook

目录 0. 写在前面1. 控制枢纽1.1 条件判断1.2 逻辑运算1.3 成员资格运算 2. if 分支结构条件表达式 3. for 迭代3.1 迭代控制3.2 搭配 else 4. while 循环4.1 循环控制4.2 搭配 else 5. 异常处理

0. 写在前面

Python 采用缩进(缩进量为 4 个字符)和冒号表示语句之间的逻辑,代码简洁。其允许行的最大长度为 79。这里做一点儿个人的Python学习笔记,本文内容包括 Python 的基本结构控制语句,包括 if 条件分支、for 迭代、while 循环、break 和 continue 、else 的使用和异常处理语句。

1. 控制枢纽 1.1 条件判断

条件判断用于分支结构和循环结构中的条件测试

比较,成立为 True,否则为 False a, b = 1, 2 print(a > b, a == b, a 与 > 或

与 flag, another_flag = True, False print(flag and another_flag) # False 或 flag, another_flag = True, False print(flag or another_flag) # True 非 flag, another_flag = True, False print(not flag, not another_flag) # Flase True 1.3 成员资格运算

成员资格运算符 in

members = ['one', 'two', 'four'] print('three' in members) # False print('two' in members) # True 2. if 分支结构

注意,Python 不允许在条件判断中进行赋值操作。

单分支,使用 if 实现 if 条件: 条件为 True 时执行的操作

x = 1 if x: print('Yes') # Yes 二分支,使用 if-else 实现 if 条件: 条件为 True 时执行的操作 else: 上述条件为 False 时执行的操作

x = 0 if x: print('Yes') else: print('No') # No 多分支,使用 if-elif-elif-...-else 实现 if 条件: 条件为 True 时执行的操作 elif 条件: 条件为 True 时执行的操作 elif 条件: 条件为 True 时执行的操作 elif ...: ... else: 上述各条件均为 False 时执行的操作

# 判断一个年份是否为闰年 year = 2020 if (year % 4 == 0) and (year % 100 != 0): print('Yes') elif (year % 400 == 0): print('Yes') else: print('No') # 输出 'Yes'

Tip:避免过多分支嵌套

条件表达式

条件表达式是 Python 中唯一的三目运算符,使 if 分支结构更即爱简洁,其语法为

expression1 if condition else expression2

例 leaky_relu 函数

def leaky_relu(x, a=0.01): """ 计算 LeakyReLU Params: x, float input a, float, default 0.01 slope for the negative axis """ return x if x >= 0 else a * x 3. for 迭代

语法为

for 元素 in 可迭代对象: 执行的操作

例 对元组进行迭代

# 对 0 到 4 的整数求和 out = 0 for i in (0, 1, 2, 3, 4): out += 1 print(out) # 10

例 对字典进行迭代

dictionary = {1: 'one', 2: 'two', 3: 'three'} # 直接迭代得到键 for elem in dictionary: print(elem) print() # 与上面等价 for elem in dictionary.keys(): print(elem) # 对值迭代 print() for elem in dictionary.values(): print(elem) # 对 键-值 迭代 print() for elem in dictionary.items(): print(elem)

例 对数字序列迭代

# 对 0 到 4 的整数之和 res = 0 for i in range(5): res += i print(res) # 10

例 列表的 remove 方法一次只能够删除一个元素,那么如何删除重复的元素呢?

如,删除一个列表 [1, 1, 1, 1, 0, 0, 1] 中所有的 1

# 法一:使用 while 循环,可以实现,但不够简洁 while True: if 1 in ls: ls.remove(1) else: break print(ls) # [0, 0] # 法二:尝试 for 迭代,无法完成 # 搞清楚迭代的每一步就明白了为什么 for elem in ls: if elem == 1: ls.remove(1) print(ls) # [1, 0, 0, 1] # 法三:for 迭代结合反向索引,可以实现 for i in range(-len(ls), 0): if ls[i] == 1: ls.remove(1) print(ls) # [0, 0] 3.1 迭代控制 break 语句,结束迭代 res = 0 for i in range(1, 10): if i % 5 == 0: break res += i print(res) # 10 continue 语句,结束本轮迭代,进入下轮迭代 res = 0 for i in range(1, 10): if i % 5 == 0: continue res += i print(res) # 40 3.2 搭配 else

for-else ,顺利完成了迭代,即没有被 break 语句中止迭代,那么执行 else 语句中的内容

res = 0 for i in range(5): res += i else: print('iterationn done!') # iterationn done! 4. while 循环

使用 while 实现

while 条件: 条件为 True 时执行的操作

# 猜数字,正确答案为 666 answer = 666 flag = True while flag: number = int(input("Input a number:")) if number == answer: print('Damn right') flag = False else: print('Wrong guess') 4.1 循环控制

与 for 迭代相同

break 语句,结束循环 answer = 666 while True: number = int(input("Input a number:")) if number == answer: print('Damn right') break else: print('Wrong guess') continue 语句,结束本轮循环,进入下轮循环 # 计算 1 到 5 之间奇数之和 i = 0 res = 0 while i 1: if num % count == 0: print('The max factor of %d is %d.' % (num, count)) break count -= 1 else: print('%d is a prime.' % num) showMaxFactor(19) # 输出 '19 is a prime.'

Tip:小心死循环

```python # 计算 1 到 5 之间奇数之和 i = 0 res = 0 while i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3