目录
前言
本文为作者自学过程中总结的有关Python逻辑结构小知识点,希望可以帮助自学Python的朋友。
内容包括:if分支-while循环-for循环-循环的控制-三角形打印实践
逻辑介绍
Python的默认执行顺序为从上到下,如果想要改变这种执行顺序,就需要运用一些逻辑逻辑结构。
分支结构
分支结构有:if,else,elif
实例以及注释:
各个关键字的作用,用注释的型式为大家进行讲解。方便大家对照程序进行理解。
用法
关键字(if /elif)+空格+条件+:
下一行要空四个输入满足条件时执行的程序。
但是else不需要输入空格和条件,因为它本身就是全不满足时执行他的程序。
输入不同的内容如下
可以看到,我们输入不同的数字就会反馈相应分支的程序。
值得注意的是
我们的条件如果有重合之处,他会执行第一个符合条件的分支
我们对这个程序的条件进行一个修改
看到第一个条件和第二个条件在50--55之间是重合的
那我们输入一个52会满足两个分支的条件
可以看到他并没有同时执行两个分支的程序
而是执行了第一个分支的程序
这个是需要注意一下的
循环结构
循环结构通常是由while和for引导
while循环
如果我们想要重复执行一段代码,直到他满足结束条件之后才停止循环。这时就需要用while循环。
先上事例
while的格式为:while+空格+条件+:
下一行空四格写while满足条件时执行的代码
我们可以得到这样的输出
可以看到a在满足while的循环条件时,程序会不断循环while的内容
for循环
先上案例
我们用这个代码会得到这样的输出
for循环实际上是把一个变量赋予不同的值,然后用这些不同的值逐一的进行相应的程序。
以上面例子为例,a的赋值为你好,那么for就会把a拆开赋值给b,然后用b进行他相应分支的程序。
用这个特性我们会有两个应用
给一个变量赋予不同的值,然后进行程序加工
这个就像上面那个例子一样,用不同赋值的b变量进行同一个程序
设定循环多少次程序
在用for循环设定循环多少次程序时,我们要用到一个range函数
range(开始值,最大值,步长)
来个例子吧
我们设置了b就是range(1,5,1)
range()的最初值是1,最大值是5,每个数字之间间隔1
那么也就是说range是1,2,3,4,5
我们运行一下
大家会发下他运行了4次,这个是因为range函数是不包括最大值的
记住!range函数的实际值为1,2,3,4没有5!!!
这里我们也可以简略一下
如果我们只在range里输入5
那么b会被赋值0,1,2,3,4
也就是说for循环执行了五次
这时因为range的默认初始值是0,步长是1,
这就成了我们输入几,这个程序就执行几次
如果我们在执行的for程序中用不到这个b值的话,我们完全可以直接在range中输入我们想循环几次即可。也就是说,如果我们想让程序执行6次,那我们直接输入for 变量 in range(6):即可
for循环的注意事项
如果大家不是很留意这个循环的话,大家经常会出现像我这样的错误。
大家看到哪里有问题了吗?
我想让for循环五次,我直接写了个for b in a:
a=5,是一个整型,in后面是不可以跟整型数据的。
我应该改成
用range函数把a拆成01,2,3,4从而实现5次循环。
in后面虽然不能跟整型,但是字符串可以。
我们输入的字符有四个,那么他就循环了4次。
循环的控制语句
在Python中也有一些关键字是可以控制程序的循环的,常用的有continue和break。
continue的应用
关键字continue具有跳出本次循环的作用。
举个实例
这个continue关键字通常是放到if分支中使用,如图
我们能够得到以下的结果
可以看到我输入了range(3),那么这个循环应当循环三次。
但是输出只显示我们循环了2次
range赋予了a0.1.2这三个值,当a=2时,就满足if的条件了,就执行了continue跳出本次循环,这样我们实际就循环了2次。
在我自学的过程中,我总是在想为什么continue不会跳出if而是跳出for。
这里区分一下,if是分支结构,而for是循环结构,continue是控制循环结构的,或者说if压根不能循环,所以continue不会跳出if的分支,而是跳出for的a=2这次循环。
break的应用
这个的用法与continue基本相同,但是不同的是,他跳出的是整个循环,而不是一次循环。
通常也是与if一起使用
我们用这个程序会得到这样的输出。
我输入的range(10),理应循环10次。
但同时,我又用了if分支的break,当a=2时,也就是第三次循环时,满足a=2,那么执行break,跳出整个循环,后面也就不会再循环了。
小实践
我们利用循环来打印一个三角形练练手。
我们先写出代码和结果,再说说打码的过程
这里为了代码容易懂我直接用汉语作为变量
说说我打码时的过程和想法把
第一步准备阶段(思考阶段)
1.首先我们先要搞清楚我们想要我们的程序最终会有什么效果。
这里我们想要打印三角形,同时利用循环结构巩固我们的知识。
那我们就要想象一下三角形的特征
三角形是一个十分有规律的图形,这样才让我们能够通过循环来打印出这个三角形
2.我们要打印三角形肯定是一个多行的图型,多行图形要通过每一行来组成。
那我们就要想象三角形每行的特点
3.我们要想,三角形一定是要由符号组成的,我们要确定我们的符号。
这里我用了*来组成三角形的主体
4.我们确定了主体后,我们脑补一下三角形,我们会想到如果我们想要打印出三角形的话,三角形主体的前面一定需要有空格来凑形状。
5.这样我们就可以正式开始编程序了
第二步实践阶段(打码阶段)
我们在明确了基本的打码路线之后就不会像无头苍蝇一样,对代码改了又改以至于我们最终一团糟。
1.首先根据准备阶段,我们已经知道了我们的三角形需要行数,前面的空格,三角形的本体
那我们可以先弄出我们所需的变量,如图我们先赋值我们需要的变量
我就先赋值了我的变量,我要打印的三角形有5行,我想让第一行有9个空格,1个本体*
2.之后利用for循环,打印五行
3.在for循环中,我们既要打印出我们这一行的三角形本体,又要让下一行的数据打印出来刚好跟上一行能够组成三角形。
4我们用了print函数打印本行,再想下一行怎样才能打印出相应的三角形
5.我们可以想到,三角形图形只要把上一行的图形挪下来,再在两边都加一个*就可以组成三角形了。
6.那么我们可以了解到,下一行会比上一行多2个*,所以我们要修改三角形本体,让下一次循环多打印两个*
7.仅仅只是多打印两个*是形不成三角形的。所以我们得去除前面的空格,
8.我们要想,如果不修改空格数量,那我们实际上打印的*就是在上一行样式的末尾多了两个*
那么我们只要去除一个空格,那么就能实现多加的这两个*在上一行形状的两侧了
总结
如果你看我的思路,你可能会被劝退,但实际上,如果是你自己想这串代码,你只需要大体明白你要干嘛,你不会全转化为文字的型式去理解你要干嘛,那么其实编辑起这串程序是很快的。
我写我的思考过程只不过是给大家一个参考。
这个也是程序员编程序的基本过程,因为程序员的思考过程要比实际打码过程要长。
希望我的总结可以帮到我们自学的朋友,让我们共同进步。