Python学习笔记(四)控制结构 |
您所在的位置:网站首页 › python程序的基本控制结构包括 › Python学习笔记(四)控制结构 |
“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 搭配 elsefor-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 |