前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python入门教程笔记(二)控制语句

Python入门教程笔记(二)控制语句

作者头像
Lemon黄
发布2020-10-10 09:46:32
4150
发布2020-10-10 09:46:32
举报
文章被收录于专栏:Lemon黄Lemon黄

十一、if语句

计算机之所以能做很多自动化的任务,因为它可以自己做条件判断,通过条件判断,选择做什么样的逻辑(当然,逻辑是需要我们提前写好的),我们称之为条件分支判断。

举个例子,在100分试卷的考试中,小于60分我们认为是不及格的,因此,我们可以使用程序自动判断考试是否及格。

score = 59
if score < 60:
    print('抱歉,考试不及格')
# ==> 抱歉,考试不及格

这里,因为score = 59 < 60,所以if的判断是True,因此就会执行print('抱歉,考试不及格')

这里有几个需要注意的地方:

  1. 可以看到print('抱歉,考试不及格')这行代码明显比上一行代码缩进了,这是因为这行代码是if判断的一个子分支,因此需要缩进,在Python规范中,一般使用4个空格作为缩进
  2. 在if语句的最后,有一个冒号:,这是条件分支判断的格式,在最后加入冒号:,表示接下来是分支代码块

十二、if-else语句

使用if判断,可以在当if条件为True时,执行if的子逻辑分支,但有时候,也想在if条件不为True时,执行别的子逻辑分支。

比如:在上一节课的例子中,我希望当分数小于60分时输出,抱歉,考试不及格,否则,输出恭喜你,考试及格,这个时候可以使用if-else语句。

score = 59
if score < 60:
    print('抱歉,考试不及格')
else:
    print('恭喜你,考试及格')

这个时候,程序就会根据score的值,走不同的子逻辑分支,同学可以改变score的值试一试。

在这里,同样需要注意两个地方,第一个是冒号:,在else中,同样需要冒号;其次是缩进,在else的子逻辑分支,同样需要缩进。

十三、if-elif-else语句

在100分的考试当中,分数达到或超过90分是顶尖的,达到或超过80分是优秀的,如果想对达到或者超过60分的学生进行不同的分类,使用if-else进行判断,代码如下:

score = 59
if score < 60:
    print('抱歉,考试不及格')
else:
    if score >= 90:
        print('恭喜你,拿到卓越的成绩')
    else:
        if score >= 80:
            print('恭喜你,拿到优秀的成绩')
        else:
            print('恭喜你,考试及格')

在这个程序里,我们做了多次分类,第一次,我们把低于60分和大于等于60分的分开,第二次,我们把大于等于90分和小于90分的分开,第三次,我们把大于等于80分和小于80分的分开。

这样写,我们得到一个两层嵌套的if-else语句,这样的实现可以满足我们的要求,但是如果继续增加条件,比如继续判断高于70分和低于70分的话,那么这个代码将会缩进越来越多,代码逻辑看起来也不够清晰。

我们可以使用if-elif-else语句来简化以上的逻辑。其中elif就是else if的意思。

score = 59
if score < 60:
    print('抱歉,考试不及格')
elif score >= 90:
    print('恭喜你,拿到卓越的成绩')
elif score >= 80:
    print('恭喜你,拿到优秀的成绩')
else:
    print('恭喜你,考试及格')

这样,我们就可以写出代码结构非常清晰的一系列条件判断了。

特别注意: 这一系列条件判断会从上到下依次判断,如果某个判断为 True,执行完对应的代码块,后面的条件判断就直接忽略,不再执行了。

请思考以下代码将会输出什么?为什么不输出恭喜你,拿到卓越的成绩

score = 95
if score < 60:
    print('抱歉,考试不及格')
elif score >= 80:
    print('恭喜你,拿到优秀的成绩')
elif score >= 90:
    print('恭喜你,拿到卓越的成绩')
else:
    print('恭喜你,考试及格')

十四、for循环

for循环在Python语言的流程控制中是非常重要的,在编程中有很多场景需要使用到for循环。举个例子,当我们需要把字符串中的每一个字符打印出来的时候,我们怎么实现呢?

我们当然可以使用之前学习的指定位置的方式让每个字符打印出来。

s = 'ABCD'
print(s[0])
print(s[1])
print(s[2])
print(s[3])

但是,这是字符串s比较短的情况下可以实现的,当s拥有成千上万个字符的时候,难道我们要为此书写上万行代码吗?这个时候for循环就可以派上用场了。

s = 'ABCD'
for ch in s:
    print(ch) # 注意缩进

在上述代码中,ch是在for循环中定义的,意思是把字符串s中的每一个元素依次赋值给ch,然后再把ch打印出来,直到打印出字符串s的最后一个字符为止。

十五、while循环

和 for 循环不同的另一种循环是 while 循环,while循环可以继续进行下去的条件更加简单,只需要判断while循环的条件是否为True即可,当条件为True时,即继续运行下去。

比如:

while True:
    print(1)

在上述代码中,由于while的条件一直为True,所以这个代码将会无限的输出1,这个可不要轻易尝试。

我们可以把while循环的条件设置得复杂一些,在运行一定次数后,条件可以自动变为False从而跳出while循环。

比如计算1~100的和。

num = 1
sum = 0
while num <= 100:
    sum = sum + num # 注意缩进
    num = num + 1 # 注意缩进
print(sum) # ==> 5050

在上述代码中,while的判断条件是num <= 100,当num小于或者等于100时,循环会继续下去,但当num > 100时,将跳出循环;因为在while循环里面num不断加1,所以num最终会大于100,因此while循环不会无限进行下去。

十六、break跳出循环

用 for 循环或者 while 循环时,如果要在循环体内直接退出循环,可以使用 break 语句。

比如在前面的无限循环里面,只要在恰当的时机,我们使用break跳出循环,也可以求出1~100的和。

num = 1
sum = 0
while True:
    if num > 100:
        break
    sum = sum + num
    num = num + 1
print(sum)

同样的,对于字符串s = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ',假如希望输出s的前20个字符,而不是所有字符,我们也可以使用break。

s = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
num = 1
for ch in s:
    if num > 20:
        break
    print(ch)
    num = num + 1

十七、continue继续循环

使用continue,我们可以控制循环继续下去,并跳过continue后面的逻辑,比如,对于字符串s = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ',假如希望输出字符串s中第10个以后的字符,而不是所有字符,这个时候, 我们可以使用continue跳过前面的9个字符。

s = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
num = 1
for ch in s:
    if num < 10:
        num = num + 1
        continue # 当num < 10时,跳过后续循环代码,继续下一次循环
    print(ch)
    num = num + 1

十八、嵌套循环

就像多层if-else嵌套一样,python的循环也支持嵌套。

我们使用两层嵌套循环输出字符串'ABC'中每个字符和字符串'123'每个字符的排列。

s1 = 'ABC'
s2 = '123'
for x in s1:
    for y in s2:
        print(x + y)

在上述代码中,对于外层循环,外层每循环1次,内层就会循环3次,因此,我们将会得到如下结果:

A1
A2
A3
B1
B2
B3
C1
C2
C3
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-10-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Lemon黄 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 十一、if语句
  • 十二、if-else语句
  • 十三、if-elif-else语句
  • 十四、for循环
  • 十五、while循环
  • 十六、break跳出循环
  • 十七、continue继续循环
  • 十八、嵌套循环
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档