课堂笔记10(顺序执行、条件判断、循环控制、range函数)

顺序执行

对于普通语句,代码从上至下执行。
在这里插入图片描述

函数、方法的代码:虽然代码从上至下执行,但是函数只有在调用时候才会执行。
在这里插入图片描述

执行规则:

  • 普通语句,从上至下直接执行。
  • 碰到函数,将函数体载入内存,并不直接执行,需要调用再执行。
  • 碰到类,执行类内部的普通语句,但是类的方法只载入,不执行,需要调用再执行。
  • 碰到if、for等控制语句,按相应控制流程执行。
  • 碰到@,break,continue等,按规定语法执行。
  • 碰到函数、方法调用等,转而执行函数内部代码,执行完毕继续执行原有顺序代码。

程序主入口

if name == ‘main’: 为程序主入
口。
在这里插入图片描述

在pycharm中打main可以找到。

一个.py除了可以直接运行外,还可以作为模块被其他.py文件导入。不管是直接运行还是被导入, .py文件的最顶层代码都会被执行(python用缩进 来区分代码层次)

但当一个.py文件作为模块被导入时,我们可能不希望一部分代码被运行,那么就将这部分不希望运行的代码调用写在主程序中。

例:
在demo3.py中
调用函数func_one 和 func_two打印显示了
func_one和 func_two
在这里插入图片描述
如果加入了主程序(使用main可以快速写入),然后调用func_two
可以发现使用主程序和不使用主程序在同一个.py中没有发现区别。
都打印输出了 func_two
在这里插入图片描述
但是在主程序基础上 新建一个python模块, demo4.py
在demo4中导入demo3
运行demo4,会执行demo3内部的代码,打印结果时func_one
在这里插入图片描述
因为 调用func_two 被放入了主程序中
在这里插入图片描述

如果需要两个都想被调用可以放主程序外
在这里插入图片描述
运行demo4两个就都可以显示。
在这里插入图片描述
所以当只有想在当前.py中运行,但是有不想被其他.py导入运行的时候,可以放入程序主入口进行代码保护。

补充:
在这里插入图片描述
在同个.py中 下划线下划线name 打印结果为下划线下划线main。
而在其他.py中导入该.py运行打印结果 下划线下划线name为被导入的.py的名字。(上文例子为例,在demo4中导入demo3,name就为demo3)

所以主程序保护是一个判断程序,
假如name等于main的时候就可以运行,
如果name不等于main的时候就不运行。

扫描二维码关注公众号,回复: 12657394 查看本文章

条件判断

if elif else三个关键字来进行条件判断。

条件判断使用原则:

  • 每个条件后面要使用冒号)作为判断行的结尾,表示接下来是满足条件结果为true)后要执行的语句块。
  • 除了if分支必须有elif和else分支都可以根据情况省略
  • 使用缩进划分语句块,相同缩进数的语句在一起组成一个语句块。
  • 顺序判断每一个分支,任何一个分支首先被命中并执行,则其后面的所有分支被忽略,直接跳过!
  • 可以有多个elif,但是只能有一个else
  • 在python中没有switch-case语句。

if ➕判断条件表达式➕: (直接回车)
自动缩进,满足条件后的语句内容。
elif➕判断表达式➕:
自动缩进,满足条件后的语句内容。
elif➕判断条件表达式➕:
自动缩进,满足条件后的语句内容。
else ➕: (注意⚠️else后面不能叫条件判断表达式只能直接冒号)
自动缩进,满足条件后的语句内容。
在这里插入图片描述

条件判断嵌套

if…elif…else语句结构可以放在另外一个if…elif…else语句结构中。

例:
在这里插入图片描述
在这里插入图片描述

循环控制

循环控制介绍

循环控制就是让程序循环运行某一段代码直到满足退出条件,才退出循环
python用for 和 while 来进行循环控制。

break与continue语句

break:当循环体执行过程中想要退出循环,就可以使用到break语句。
break跟在循环体内部,不能用于外部。

continue:用于跳过当前循环体剩余部分的代码,直接开始下一轮循环。它不会退出和终止循环

while循环表达式

当程序从上至下执行时,遇到while循环语句,则会判断表达式是否成立,当成立时,会进入while循环体内执行循环体内部执行代码块。直到判断表达式不成立时,则终止循环

在这里插入图片描述
while 判断条件表达式:
条件成立时的内部代码块

例:
1、打印五次hello amy
在这里插入图片描述
2、求1—100之间的和。
在这里插入图片描述
循环是不可逆的,只能一直往下执行。

3、基于例2,在不改变while判断条件的情况下,当n=8的时候退出循环。
可以使用break语句
在这里插入图片描述
注意:break是退出循环,是循环语句,跟在循环体内部,而不是跟在if语句。

4、基于例2,在不改变while判断条件的情况下,当n=8的时候跳过当前循环进入下一轮循环。
可以使用continue语句。

注意⚠️:
在这里插入图片描述
这种时候n += 1要位置更换,放在if之前。
才能正常运行。
在这里插入图片描述

while和else

当程序正常结束的时候会执行else。
如图所示:
在这里插入图片描述
当内部循环使用了break的时候则不会使用else的内部代码
因为break时候强制结束循环,所以不会执行else内容。
在这里插入图片描述
注意:这里else和while平级所以不需要缩进,但是else内部需要缩进。

while嵌套

尽量嵌套两层,不要在3层以上,那样效率会低。
例:制作如图所示在这里插入图片描述
代码:
在这里插入图片描述
代码分析:解析看pycharm第22行和打印结果。
在这里插入图片描述

for循环、range()函数

range()【类】

range()是个类:生成一个范围。
在这里插入图片描述
range()括号内必须要有参数。
例:print(range(10))返回结果range(0,10)代表0到10
以列表形式呈现:print(lise(range(10)))得到的列表为[0,1,2,3,4,5,6,7,8,9]
一个左闭右开的内容,没有数字10.

range(start,stop,step)
例:print(lise(range(1,10,2)))得到[1,3,5,7,9]

小结:
1、默认从0开始
2、默认返回的是range()对象【括号内的对象】
3、左闭右开区间
4、步长默认为1
5、使用ange(start,stop,step)起始参数,结束参数,和步长的时候注意和切片的区分,是用逗号,而不是用冒号

for循环

for循环虽然与while一样是循环,但是for循环通常用来遍历可迭代的对象。
在这里插入图片描述

注意⚠️:
for…in…是固定格式。
iterable:是可迭代的对象。
i是变量名(可以更改),代表可迭代对象里面的每个元素。

整数是不可迭代的,所以不能用来作为对象,会报错。如果想用整数循环遍历可以使用range()函数来进行。
例:for i in 12: 会报错
在这里插入图片描述
for i in range(12):就可以进行遍历
就是从0-11遍历一遍,而且都是整数。
在这里插入图片描述
for I in ‘12’:字符串12的遍历结果为1 、2。

for循环嵌套

99乘法表制作:
第一层for循环是1-10.
第二层则是1到1+第一层的循环数。
如果第二层也是1-10 则打印会是:
1 1。 1 2。1 3。1 4。1 5。1 6。1 7。1 8。1 9。2 1。2 2 等等。会出现数字重复。
在这里插入图片描述
当对应去值完成后,进行组合打印输出。
这里可以用format函数(见字符串格式化内)
先占坑符 "{}{}={}"
之后输入需要占坑的函数。
format(j, I, (I
j))
在这里插入图片描述
当需要同行的时候不换行,但是非同行要换行。
现在嵌套内设置不换行。只空格,之后在第一层for循环中进行换行设置。
在这里插入图片描述
当第二层中设置range(i,10)也可以,只不过是倒置的。
在这里插入图片描述

for循环中的break 和 continue和while中一样
例:在1-9中当i等于8 的时候结束循环。
在这里插入图片描述

在1-9遍历循环中当i等于8时候跳过,执行下一次循环。【可以看到打印是7、9 没有8】
在这里插入图片描述

在双层循环中:
break只退出当前循环并不是退出外层循环
如图所示。
可以发现并没有到33结束,而是少了个3的列数
在这里插入图片描述
通过建立flag标志
首先建立了flag为false。
在第一层for循环中,id语句当flag为true的时候结束外层循环。
在第二次循环中建立if语句当j等于3的时候,flag就是true。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/yuuisei/article/details/112357872
今日推荐