第一节:if分支初步用法
![4e6a4213f74b9cc0c787843abfca5c96.png](https://img8.php1.cn/3cdc5/156ea/bdf/1f8dc49c053fbcde.jpeg)
三种程序流程
![8c1cd3c4dbc4e946b8d504a7476c0620.png](https://img8.php1.cn/3cdc5/156ea/bdf/66b90634cfbd56ea.jpeg)
if分支的三种语法格式
# 第一种和第二种代码示例age = int(input("请输入你的年龄: "))if age > 25: print("您的年龄大于25") print("您已经成年,建议不要依赖父母")else: print("您似乎还是一个宝宝") print("暂时还可以住在父母家") # 第三种代码示例score = int(input("请输入你的年龄: "))if score > 90: print("优秀") print("发奖金")elif score > 80: print("良好") print("发奖状")elif score > 70: print("中等") print("还需努力")elif score > 60: print("刚好及格") print("需要加把劲")else: print("不及格")
- 分支结构的注意点
- 统一的缩进,一般四个空格(提示错误:indent、indentation level)
- 不要忘记冒号:冒号代表条件的结束,执行体的开始(提示错误:SyntaxError: invalid syntax)
第二节:if分支的深入用法
- if条件的类型
- if条件可以是任意类型
- False、None、0、" "、()、[]、{}这些都会被当成false处理
- if条件的逻辑错误
- else的隐含条件是对前面的条件进行取反
- 当程序使用if elif时候,务必要先处理范围小的条件,如果你先处理范围大的条件,你的程序就可能引发逻辑错误
- if表达式
- 相当于三目运算符
- pass语句相当于一个空语句,保持程序的完整
age &#61; int(input("请输入您的年龄&#xff1a; "))print(&#39;您的年龄大于25&#39;) if age > 25 else print(&#39;您的年龄小于25&#39;) if age <25 else print(&#39;您的年龄等于25&#39;)
第三节&#xff1a;循环的初步用法
- 循环的意义
- 循环语句满足循环条件情况下&#xff0c;反复执行一段语句&#xff0c;被反复执行的语句称为循环体
- 当反复执行循环体的时候&#xff0c;合适时候需要将循环条件改成假&#xff0c;不然程序会一直执行下去&#xff0c;形成死循环
- 死循环实际上就是无限的循环
- while循环
![3ab23e7cf90e34aa220f742455908ca8.png](https://img8.php1.cn/3cdc5/156ea/bdf/3c344aa5f745f15f.jpeg)
while循环语法格式
i &#61; 0while i <10: print(&#39;i的值: %d&#39; % i) #每次循环改变i的值&#xff0c;合适时候退出程序&#xff0c;避免死循环 i &#43;&#61; 1
my_data &#61; [&#39;java&#39;, &#39;swift&#39;, &#39;python&#39;, &#39;kotlin&#39;]i &#61; 0# 通过让下标从0循环到len-1&#xff0c;这样既可遍历列表while i - for-in循环
- 专门用来遍历范围、列表、元素、字典等可迭代对象包含的元素
- 语法格式&#xff1a;
![31118798b225af5bb82940b266559130.png](https://img8.php1.cn/3cdc5/156ea/bdf/c9bf48785a2bf7c4.jpeg)
for-in循环语法格式
# for-in循环遍历字符串(序列)s &#61; &#39;fkjava&#39;# s序列有几个元素&#xff0c;for-in循环就重复几次&#xff0c;循环计数器会自动、依次等于每个元素for c in s: print(c) # for-in循环遍历字典my_data &#61; {&#39;java&#39;: 59, &#39;swift&#39;: 29, &#39;python&#39;: 45, &#39;kotlin&#39;: 44} # 用序列的解包同时遍历了key-valuefor key, value in my_data.items(): print(key, value)
- for-in 循环的说明&#xff1a;
- for-in循环中的变量的值是受for-in控制的&#xff0c;会自动被赋值&#xff0c;程序对for-in循环的循环计数器赋值在语法上是允许的&#xff0c;但是没有意义&#xff0c;而且非常容易导致错误
- 可遍历任何可迭代的对象&#xff0c;所谓可迭代对象就是该对象包含一个_iter_方法&#xff0c;且该方法的返回值对象具有next()方法即可
第四节&#xff1a;循环的深入用法和循环嵌套
- for-in循环遍历列表、字典
- 使用for-in循环遍历列表和元组时&#xff0c;列表和元组有几个元素&#xff0c;for-in循环体就执行几次&#xff0c;针对每个元素执行一次&#xff0c;循环计数器会依次被赋值为元素的值
- for-in循环也可根据索引来遍历列表和元组&#xff0c;只要让循环计数器遍历0到列表长度的区间
- for-in循环遍历字典包含的方法
- items():返回该字典中所有key-value对的列表
- keys():返回字典中所有key的列表
- values():返回字典中所有value的列表
# for-in循环遍历rangefor i in range(10): print(i) # for-in循环遍历字典my_data &#61; {&#39;python&#39;: 89, &#39;swift&#39;: 92, &#39;java&#39;: 78, &#39;kotlin&#39;: 77}# my_data的values()本身就是一个可迭代的对象 返回字典的所有valuefor v in my_data.values(): print(v) my_data &#61; {&#39;python&#39;: 89, &#39;swift&#39;: 92, &#39;java&#39;: 78, &#39;kotlin&#39;: 77}# my_data的keys()本身就是一个可迭代的对象 返回字典的所有keyfor k in my_data.keys(): print(k) my_data &#61; {&#39;java&#39;: 59, &#39;swift&#39;: 29, &#39;python&#39;: 45, &#39;kotlin&#39;: 44} # 用序列的解包同时遍历了key-valuefor key, value in my_data.items(): print(key, value)
- 循环使用else
- python的循环都可以定义else语句块&#xff0c;当循环条件为false时&#xff0c;程序会执行else语句块
- 循环的else块&#xff0c;是Python的一个特殊语法(其他编程语言通常不支持)&#xff0c;else语句块的主要作用是以便生成更优雅的Python代码
# else语句块的主要作用是以便生成更优雅的Python代码&#xff0c;没有也可以for c in &#39;fkjava.org&#39;: print(c)else: print(&#39;循环结束&#39;)
- 嵌套循环
- 把一个循环放在另一个循环体内&#xff0c;就可形成嵌套循环
![71c293de1eaf3553a1ac0a83ac0d2719.png](https://img8.php1.cn/3cdc5/156ea/bdf/536fe8bd828e63e9.jpeg)
循环嵌套示意图
# 嵌套循环&#xff0c;对于外层循环而言&#xff0c;内层循环就相当于一条语句# 内层循环执行N次&#xff0c;外层循环执行M次&#xff0c;内层循环的循环体共执行M*N次for i in range(10): j &#61; 0 while j <20: print("i: %d, j: %d" % (i, j) ) j &#43;&#61; 1
第五节&#xff1a;列表推导式与循环控制
- 列表推导式
- for表达式用于利用其它区间、元组、列表等可迭代对象创建新的列表&#xff0c;for表达式语法格式&#xff1a;[表达式 for 循环计数器 in 可迭代对象]
- for表达式与for循环区别
- for表达式后面没有冒号
- for表达式必须用方括号括起来
# 列表推导式是控制前面的表达式执行多少次# 表达式的多次执行结果将作为列表的元素r &#61; [&#39;表达式&#39; for i in range(10)]print(r)r &#61; [&#39;i * 2&#39; for i in range(10)]print(r)# 计算1-100的总和sum对整个列表元素求和print(sum([i for i in range(101)]))
- 使用break跳出循环
- 使用break可以提前跳出循环&#xff0c;而不是等循环条件为false时才退出循环
- 带else块的for循环&#xff0c;如果使用break强行终止循环&#xff0c;程序将不会执行else块
for i in range(100): print(i) # brank可提前结束程序 if i > 5: break#当有break时else块将不被执行else&#xff1a; print(&#39;循环结束&#39;)
- 使用continue忽略本次循环
- continue只是忽略本次循环的剩下的语句&#xff0c;接着开始下一次循环&#xff0c;并不会终止循环
- 把continue语句放在循环的最后一行&#xff0c;那么这条continue语句是没有任何意义的
for i in range(100): print(i) # continue忽略本次循环剩下的语句&#xff0c;接着开始下一次循环 if i > 5: continue print(&#39;循环第%d次&#39; % i)
- 使用return结束函数
- return作用是结束函数
- 无论return处于多深的嵌套循环中&#xff0c;return总可以结束函数