[Python学习日记-10] Python中的流程控制(if...else...)
简介
缩进
单分支
双分支
多分支
练习
简介
假如把写程序比做走路,那我们到现在为止,一直走的都是直路,还没遇到过分叉口,想象现实中,你遇到了分叉口,然后你决定往哪拐必然是有所动作的。你要判断那条岔路是你真正要走的路,如果我们想让程序也能处理这样的判断怎么办?很简单,只需要在程序里预设一些条件判断语句,满足哪个条件,就走哪条岔路。这个过程就叫流程控制。
基本上在各个语言中,都是用语法 if...else... 来实现,可分为单分支、双分支、多分支
缩进
如果你看过其他人写的代码,你会发现每行代码之间会有不同的缩进,会使代码非常有层次感,以下面的 if 代码为例
if 0 < number < 10:print("this number is less than 10.")
else:print("this number is greater than 10.")
上面的 if 代码里,每个条件的下一行都缩进了4个空格,这是为什么呢?这就是 Python 的一大特色,强制缩进,目的是为了让程序知道,每段代码依赖哪个条件,如果不通过缩进来区分,程序将不会知道当条件成立时要去执行那些代码。
在其它的语言里,大多通过 {} 来确定代码块,比如 C、C++、Java、JavaScript 都是这样,看一个 JavaScript 代码的例子
var age = 56
if(age < 50){console.log("还能折腾")console.log("可以执行多行代码")
}else{console.log("太老了")
}
在有 {} 来区分代码块的情况下,缩进的作用就只剩下让代码变的整洁了。而Python是门超级简洁的语言,发明者定是觉得用 {} 太丑了,所以索性直接不用它,那怎么能区分代码块呢?答案就是强制缩进。
Python的缩进有以下几个原则:
- 顶级代码必须顶行写,即如果一行代码本身不依赖于任何条件,那它必须不能进行任何缩进
- 同一级别的代码,缩进必须一致
- 官方建议缩进用4个空格,当然你也可以用2个(如果你想被人笑话的话)
单分支
一、语法结构
if 条件:
满足条件时要执行的代码
注意:
1、冒号(:)是判断的语法格式必须写
2、在 if 下需要执行的代码必须要往后缩进4个空格或者一个 Tab(换挡键),如果没有以 if 为基础缩进将表示该代码和 if 并没有什么关系
二、代码示例
today_weather = "rain_day"#单分支
if today_weather == "rain_day":print("take your umbrella with you ")
双分支
一、语法结构
if 条件:
满足条件时要执行的代码
else:
不满足条件时要执行的代码
二、代码示例
age_of_jove = 58# 双分支
if age_of_jove > 50:print("Too old, time to retire..")print("hahah")
else:print("还能折腾几年!")
多分支
一、语法结构
if 条件1:
满足条件1时要执行的代码
elif 条件2:
满足条件2时要执行的代码
elif 条件3:
满足条件3时要执行的代码
else:
不满足上面所有条件时要执行的代码
注意:
1、代码从上往下进行匹配,若匹配中后将会执行该条件下的代码,执行完毕后将会退出
2、else 可以选择不写,非固定结构
二、代码示例
age = 35# 多分支
if age < 12:print("you are child")
elif age < 18:print("you are teenager")
elif age < 30:print("you are young man")
else:print("your are oil middle-age man")
练习
一、开发匹配成绩的小程序
题目:
成绩有ABCDE5个等级,与分数的对应关系如下
A 90-100
B 80-89
C 60-79
D 40-59
E 0-39程序启动,提示用户输入分数,根据分数打印等级
答案:
while True: # 本篇没有学到 while 循环,这里不使用 while 循环也能实现exam_score = int(input("输入你的成绩:"))if exam_score <= 100 and exam_score >= 0:if exam_score < 40:print("极差 E")elif exam_score < 60:print("不及格 D")elif exam_score < 80:print("及格 C")elif exam_score < 90:print("良好 B")else:print("优异 A")breakelse:print("输入成绩错误")
二、开发猜随机数的小程序
题目:
启动程序生成一个0-10的随机数,提示用户输入一个整数,用户有5次机会猜数,若输入没有中则提示大了还是小了,超出范围则提示用户超出了猜数的范围,成功则提示猜中了然后退出循环,若循环次数使用完了则提示游戏结束并显示正确的数字
答案:
import randomnumber = random.randint(0,10)
count = 5while count > 0:print("请输入你心目中的号码,你有", count, '次机会:')user_number = int(input())if user_number == number:print("恭喜你,猜对了")breakelif user_number < number:print("不好意思,猜小了")elif user_number > number and user_number <= 10:print("不好意思,猜大了")else:print("超出范围请重猜")count -= 1
if count == 0:print("游戏结束,正确数字为", number)