目录
0. 谁是主角
- 分支是主角
- 我前面几篇随笔提到 if 不下2次,是时候说一说 if 了
1. 从三大结构说起
(1) 顺序
- 顾名思义,就是自上而下,顺序执行
(2) 分支
1) 分支的基本语法
if 条件表达式:
语句1
语句2
语句3
...
- 条件表达式就是计算结果(或本身)必须为布尔值的表达式;布尔值:非真即假
- 表达式后面的冒号不能少
- if 下面的语句,如果属于 if 语句块,则必须使用同一缩进;当然语句中也可以有自己的缩进层级
- 条件表达式结果为 True 执行 if 下面属于 if 缩进的语句块
少废话,上例子
# 例1
age = 17
if age < 18:
print("孩子,来这里的都是成年人!")
print("等你成年了再来!")
print("再等一年吧!")
- 运行结果
孩子,来这里的都是成年人!
等你成年了再来!
再等一年吧!
# 例2
age = 19
if age < 18:
print("孩子,来这里的都是成年人!")
print("等你成年了再来!")
print("再等一年吧!")
print("孩子,两年了,又见面了。等什么呢?赶紧上车吧!")
- 运行结果
孩子,两年了,又见面了。等什么呢?赶紧上车吧!
# 例3
age = 19
if age < 18:
print("孩子,来这里的都是成年人!")
print("等你成年了再来!")
print("再等一年吧!") # 缩进很重要
print("孩子,两年了,又见面了。等什么呢?赶紧上车吧!")
- 运行结果
再等一年吧!
孩子,两年了,又见面了。等什么呢?赶紧上车吧!
2) 双向分支
if - else 语句
if 条件表达式: 语句1 语句2 ... else: 语句1' 语句2' ...
双向分支有两个分支,当程序执行到 if - else 语句的时候,一定会执行 if 或 else 中的一个
if 和 else 在缩进上是一个层级
补充:input()
- 括号中可以写入字符串,运行时执行到这一句,会在屏幕上显示该字符串
- 括号内的字符串常用于“友情提醒”
- input() 能接受用户输入的内容并返回到程序
- input() 返回的内容一定是字符串类型
# 例4
name = input("What's your name?")
print("Welcome," + name + "!")
- 运行时的截图:
按快捷键运行后出现下图
输入回答后显示为下图
- 运行结果
What's your name?YorkFish
Welcome,YorkFish!
补充完毕,上例子
# 例5
gender = input('Please enter your gender.(just enter "male" or "female")')
print("Your gender is: {0}".format(gender))
if gender == "male": # == 表示判断是否相等,相等为真,否则为假
print("OK, next.")
else:
print("Welcome!")
- 运行时的截图:
按快捷键运行后出现下图
输入回答后显示为下图
- 运行结果
Please enter your gender.(just enter "male" or "female")male
Your gender is: male
OK, next.
# 例6
score = input("Please enter your score: ")
score = int(score) # 需要把 input() 返回的 str 强制转换成 int
if score>=90:
print("A")
if score>= 80 and score<90:
print("B")
if score >= 70 and score<80:
print("C")
if score >=60 and score<70:
print("D")
if score < 60:
print("I’m sorry!")
- 运行时的截图:
按快捷键运行后出现下图
输入回答后显示为下图
- 运行结果
Please enter your score: 90
A
3) 多路分支
超过两路分支的情况,简称多路分支
if 条件表达式1: 语句1 ... elif 条件表达式2: 语句1' ... elif 条件表达式3: 语句1'' ... ... else: 语句1''' ...
elif 可以有多个
else 可选
与双向分支一样,多路分支只会选一个分支执行
注意缩进层级
少废话,上例子
# 例7
#score = input("Please enter your score: ")
#score = int(score)
score = 90 # 方便起见,直接赋个值
if score>=90:
print("A")
elif score>= 80:
print("B")
elif score >= 70:
print("C")
elif score >=60 :
print("D")
else:
print("I'm sorry!")
- 运行结果
A
注意
- if 可以嵌套使用,但不推荐
- python 没有 switch-case 语句(我知识有限,只知道 C/C++、C#、Java 这些 C-Like 阵营的语言都有 switch-case)
(3) 循环
- 关于循环,可以移步:[Python3] 007 列表的遍历,你是 for 联盟还是 while 部落