入门 | Python基础语法——条件控制/循环
零、条件控制语句
条件控制语句的功能是帮助你实现逻辑分支。其作用可以被简单描述为“如果……那么”。如果你想要实现通过条件来决定功能,那么你可以选择条件控制语句来实现。
总体逻辑:当表达式(Expression)为真的时候,执行对应的语句(statement)。
0.普通条件控制语句if
、else
、elif
#伪代码描述-if/else/elif样例
if (Expressionf):
statement1
elif (Expression2):
statement2
else:
statement3
if
:用于开始你的条件控制语句,你需要像样例那样把表达式写在if
后,然后在下一行的缩进位置(4个空格的位置后)后写上你的语句。这样就可以实现最简单的条件语句啦。让我们来写一段有趣的if
代码吧。
if age < 18:#如果用户年龄低于18岁
print("Access Denied!")#拒绝访问
else
:用于实现if
或者elif
中未被包含的条件对应的语句。也就是实现前面所有的条件语句所包含的条件的补集相应的功能。可以被简单描述为:“否则”。其语法格式与if
相同且平行。让我们来对前面的代码稍加修改得到一个else
语句吧。
if age < 18:
print("Access Denied!")
else #对于18岁及以上的用户(18岁及以上就是低于18岁的补集)
print ("Welcome to Linear Algebra Class One!")#“欢迎来到线性代数一班!”
elif
:如果你希望实现多种条件判断的功能,那么你需要在第一个if
后使用elif
来书写你的条件语句。
if age < 18:
print("Access Denied!")
elif age > 60:
print("Welcome to Healthy classroom!")#“欢迎来到健康课堂”
else: #对于18岁及以上并且60岁及以下的用户(前面所有条件的补集)
print ("Welcome to Linear Algebra Class One!")
*给初学者的尝试建议:
- 如果你想要试试上面的代码,别忘了先定义age变量(我相信你在上一篇文章中已经学会了定义变量)。
- 如果无法运行,提示“Invalid Syntax”(无效语法)的话,请检查你是否完全按照给出的格式编写。请不要遗忘 “ : ”符号,也不要忘记缩进哦。
如果还是无法正确运行,请在公众号菜单栏点击联系我们-共享社群,加入我们的群聊,我们将会为你答疑。 - 如果你想要在条件语句中加入更多规则(判断是否相等等),那么请关注本节最后的的逻辑运算符部分。
1.三元条件控制语句if-else
#伪代码描述-三元条件控制语句
Statement1 if Expression else Statement2
三元条件控制语句的释义为:当表达式(Expression)为真时,执行语句1(Statement1)。否则执行语句2(Statement2)。这种方法可以用一行代码来实现if-else
语句的功能。让我们试着来把上面else
的示例代码改成三元语句的格式吧。
print("Access Denied!")if age < 18 else print ("Welcome to Linear Algebra Class One!")
*给初学者的尝试建议:
请不要在语句中加入任何的“ : ”符号,否则将会报错。
2.常用逻辑运算符
操作符 | 描述 |
---|---|
< | 小于 |
<= | 小于或等于 |
> | 大于 |
>= | 大于或等于 |
== | 等于(判断) |
!= | 不等于 |
*给初学者的尝试建议:
需要注意的是,当我们需要判断两个表达式是否相等的时候,我们需要使用==
而非=
,后者的含义是赋值。如果你对此仍有疑问,那么请复习一下变量篇的内容吧~
一、循环语句
简单来说,循环语句的功能就是当满足某个条件的时候,执行特定的语句(循环体中的),由于常常需要执行多次循环体语句才会跳出循环(不满足时跳出),因此我们将这类语句称为循环语句。
Python中的循环语句可以被分为for
循环和while
循环,此外在循环语句中,我们还常常用到break
、continue
、pass
等循环控制语句。
0.for
循环语句
for
的用法如伪代码描述所示,当遍历序列中的变量时,执行语句。
#伪代码描述-for循环
for variable in sequence:
(statements)
概念性和伪代码的描述对于新手而言可能会不易理解,那就让我们来看一个示例吧。我们想要把明日方舟中企鹅物流的干员的名字打印出来,那么我们如何实现呢?
L=["能天使","德克萨斯","拉普兰德","空","可颂","莫斯提马"]
for i in L:#你可以把i理解成:你目前从L中抓到的元素
print(i)
*你可能没有见过L
所代表的数据类型,不过没关系,这种被称为列表的数据类型将会在后面的文章中有所介绍。现在只要理解L
在此处代表的是一个容器,而for
循环的功能就是将L
中 的元素取出进行操作而已啦。
除了上面描述的方法外,for
循环还有一个好朋友range
函数,它可以帮助我们直接遍历数字序列。它一共有三个参数,第一个代表起始数字(start),第二个代表结束数字(stop),第三个代表步长,也就是每次增加的数字。需要注意的是,range
函数的范围是前闭后开,也就是[start,stop)
。(可以取到start
,但不能取到stop
)
#伪代码描述-range函数
range(start,stop,step)
当然,我们并不需要每次都说明range
函数的全部三个参数。关于省略参数的情况,请看下例。
range(a)#代表[0,a)这个范围
range(a,b)#代表[a,b)这个范围
range(a,b,c)#代表[a,b)这个范围中,步长为c取到的数。例如range(6,10,2)可以取到6和8.
让我们来结合for
循环与range
函数编写一个实例吧。让我们打印出101到200之间的所有奇数吧。
for i in range(101,200,2)#由于101是奇数所以可以直接作为起始
print(i)
1.while
循环语句
while
的用法如伪代码描述所示,当条件(condition)满足时,循环体中的语句(statement)将会被不断执行。
#伪代码描述-while语句
while (condition):
(statements)
让我们来编写一个实现1-100
的整数求和的while
程序吧。
n=100#记录上界
counter=1#记录当前整数,初始为1
sum=0#记录总和,初始为0
while (counter<=100):#在count小于等于100时执行
sum+=counter
counter+=1
print (sum)
*给初学者的尝试建议:
+=
的含义是:给该操作符左边的变量加上右边的变量的值。即a+=b
等同于a=a+b
- 跟条件控制语句一样,请在尝试的时候严格保持缩进。
2.break
控制语句
break
语句可以帮助你在达到了某种条件后退出循环。来看一个简单示例,我们希望在打印企鹅物流的干员时,遇到"空"就停止打印,那么可以使用break
来实现这种功能。
L=["能天使","德克萨斯","拉普兰德","空","可颂","莫斯提马"]
for i in L:
if(i=="空"):
break
print(i)
3.continue
控制语句
continue
语句可以帮助你在达到了某种条件后退出本次循环,进入下一次循环。来看一个简单示例,我们希望在打印企鹅物流的干员时,遇到"拉普兰德"就跳过她不打印,那么可以使用continue
来实现这种功能。
L=["能天使","德克萨斯","拉普兰德","空","可颂","莫斯提马"]
for i in L:
if(i=="拉普兰德")
continue
print(i)
看到这里,你是否已经对条件控制语句和循环语句有了一定的了解呢?
二、练习题
1.你知道如何方便地打出4个空格吗?
2.为什么range函数被设计成了前开后闭的模式呢?上网搜索来找出答案吧。
3.请用本文所学的知识来编写一个猜数字的游戏,规则如下:有三次猜数字的机会,如果猜对则结束程序,如果猜错则提示“猜大了”/“猜小了”。
*你可能会用到输入/输出的input
与print
函数,我们下次的文章将会详细讲解。但在那之前,请你先从互联网上了解基本的用法以应对这道题。
4.改写示例,实现打印出100-200间5的倍数。
本文来自Talk of Python公众号,如果想要了解更多信息或者获取上方的练习题答案,请关注我们吧~