目录
程序流程
顺序结构
分支结构
单分支
双分支
多分支
if 嵌套
循环结构
while循环
for 循环
退出循环
循环与分支嵌套
附录
程序流程
程序是由语句构成,而流程控制语句 是用来控制程序中每条语句执行顺序的语句。可以通过控制语句实现更丰富的逻辑以及更强大的功能。几乎所有编程语言都有流程控制语句,功能也都基本相似。
其流程控制方式有
-
顺序结构
-
分支结构
-
循环结构
顺序结构
这里最简单最常用的就是顺序结构,即语句从上至下一一执行。
print("程序开始了")
print("程序进行中") # 从上到下依次执行
print("程序结束了") # 从上到下依次执行
分支结构
顺序结构的程序虽然能解决计算、输出等问题,但不能做判断再选择。对于要先做判断再选择的问题就要使用分支结构。
单分支
语法:
'''
if 表达式:
代码块
'''
user = input("用户名>>")
pwd = input("密码>>")
if user == "root" and pwd == "123": # 返回一个布尔值
print("登录成功") # 强烈建议使用四个缩进
print("程序结束")
说明:
1、“表达式”可以是一个单一的值或者复杂语句,形式不限,但解释器最后会通过bool
获取一个true
或者false
的布尔值
2、“代码块”由:与具由相同缩进标识的若干条语句组成(一般是四个缩进)。
双分支
双分支语句顾名思义,二条分支二选一执行!
语法格式:
'''
if 表达式:
代码块 1
else:
代码块 2
'''
user = input("用户名>>")
pwd = input("密码>>")
if user == "root" and pwd == "123": # 返回一个布尔值
print("登录成功") # 强烈建议使用四个缩进
print("祝贺你")
else:
print("登录失败")
print("不好意思")
多分支
多分支即从比双分支更多的分支选择一支执行。
语法格式:
'''
if 表达式 1:
代码块 1
elif 表达式 2:
代码块 2
elif 表达式 3:
代码块 3
...# 其它elif语句
else:
代码块 n
'''
score = input("请输入您的成绩>>") # "100"
# 当成绩大于90的时候显示优秀,否则显示一般
# 将数字字符串,比如"100",转换成一个整型数字的时候,需要int转换
score = int(score) # 100
if score > 100 or score < 0:
print("您的输入有误!")
elif score > 90:
print("成绩优秀")
elif score > 70: # else if
print("成绩良好")
elif score > 60:
print("成绩及格")
else:
print("成绩不及格")
if 嵌套
score = input("请输入您的成绩>>") # "100"
if score.isdigit():
score = int(score) # 100
if score > 100 or score < 0:
print("您的输入有误!")
elif score > 90:
print("成绩优秀")
elif score > 70: # else if
print("成绩良好")
elif score > 60:
print("成绩及格")
else:
print("成绩不及格")
else:
print("请输入一个数字")
循环结构
在不少实际问题中有许多具有规律性的重复操作,因此在程序中就需要重复执行某些语句。一组被重复执行的语句称之为循环体,能否继续重复,决定循环的终止条件。
Python语言中的循环语句支持 while循环(条件循环)和for循环(遍历循环)。
while循环
语法:
'''
while 表达式:
循环体
'''
无限循环
# 案例1
while 1:
print("OK") # 无限循环打印OK,这样使用没有什么意义
限定次数循环,循环打印十遍"hello world"
count = 0 # 初始化语句
while count < 10: # 条件判断
print("hello world")
count+=1 # 步进语句
print("end")
for 循环
for 循环的语法格式如下:
'''
for 迭代变量 in 字符串|列表|元组|字典|集合:
代码块
'''
格式中,迭代变量用于存放从序列类型变量中读取出来的元素,所以一般不会在循环中对迭代变量手动赋值;代码块指的是具有相同缩进格式的多行代码(和 while 一样),由于和循环结构联用,因此代码块又称为循环体。
for i in "hello world":
print(i)
for name in ["张三",'李四',"王五"]:
print(name)
for i in range(10): # [1,2,3,4,5,6,7,8,9] range函数: range(start,end,step)
print(i)
退出循环
如果想提前结束循环(在不满足结束条件的情况下结束循环),可以使用break或continue关键字。
-
break
当 break 关键字用于 for 循环时,会终止循环而执行整个循环语句后面的代码。break 关键字通常和 if 语句一起使用,即满足某个条件时便跳出循环,继续执行循环语句下面的代码。
-
continue
不同于break退出整个循环,continue指的是退出当次循环。
while 1:
num = int(input("num>>"))
for i in range(1, num + 1):
# if i > 100:
if i == 6:
# break
continue
print(i)
循环与分支嵌套
# 案例2
while 1:
score = input("请输入您的成绩>>") # "100"
if score.isdigit():
score = int(score) # 100
if score > 100 or score < 0:
print("您的输入有误!")
elif score > 90:
print("成绩优秀")
elif score > 70: # else if
print("成绩良好")
elif score > 60:
print("成绩及格")
else:
print("成绩不及格")
else:
print("请输入一个数字")
附录
分支结构.py
# 流程控制语句
# 1. 顺序语句:从上至下每条语句有且执行一次
# 2. 分支语句:通过判断一个表达式真与假来决定执行哪一部分代码块
# 3. 循环语句
# 顺序
print("OK1")
print("OK2")
print("OK3")
name = "alex"
age = 23
pwd = "123"
# 单分支语句
if name == "rain" and pwd == "123":
print("登录成功")
双分支
if age > 18:
print("亚洲电影")
print("欧美电影")
print("国产电影")
else:
print("天线宝宝")
print("阿童木")
print("猫眼三姐妹")
# 分支嵌套
name = input("用户名:")
pwd = input("密码:")
if name == "rain" and pwd == "123":
print("登录成功")
age = int(input("年龄:"))
print("-------")
if age > 18:
print("亚洲电影")
print("欧美电影")
print("国产电影")
else:
print("亚洲电影")
print("欧美电影")
print("国产电影")
else:
print("登录失败")
# 多分支语句 if-elif-else
score = 97
if score > 90:
print("优秀")
elif score > 80:
print("良好")
elif score > 60:
print("及格")
else:
print("不及格")
循环结构.py
# 程序员底线:1. 避免重复 2. 结偶
'''
while循环:条件循环
while 表达式:
循环语句、
'''
# 无限循环
while 1:
name = input("用户名:")
pwd = input("密码:")
if name == "rain" and pwd == "123":
print("登录成功!")
else:
print("登录失败")
# 有数循环
# 案例1:打印100次OK或者1-100
count = 0 # 初始语句
while count < 100: # 判断条件
count += 1 # 步进语句:count = count+1
print(count)
# 案例2: 打印100-1
count = 0 # 初始语句
while count < 100: # 判断条件
print(100 - count)
count += 1 # 步进语句:count = count+1
count = 100 # 初始语句
while count > 0: # 判断条件
print(count)
count -= 1 # 步进语句:count = count-1
# while 循环的应用
# 计算 1+2+3+...+100 的和
count = 0 # 初始语句
s = 0
while count < 100: # 判断条件
count += 1 # 步进语句:count = count+1
print(count)
s += count # s = s +count
print(s)
退出循环.py
count = 0
while count < 100: # 判断条件
count += 1 # 步进语句:count = count+1
if count == 66:
# break # 退出整个循环
continue # 退出当次循环
print(count)
# 案例1:
while 1:
name = input("用户名:")
pwd = input("密码:")
if name == "rain" and pwd == "123":
print("登录成功!")
break
else:
print("登录失败")
print("程序继续!")
# 案例2:
# 计算 1+2+3+... +65+67+...+100
count = 0 # 初始语句
s = 0
while count < 100: # 判断条件
count += 1 # 步进语句:count = count+1
if count == 66:
continue
print(count)
s += count # s = s +count
print(s)
for循环.py
# for循环:遍历循环
# 列表 字典
names = ["rain", "yuan", "alex", "alvin"]
print(names[0])
print(names[0:2])
count = 0
while count < len(names):
print(names[count])
count += 1
for i in names:
print(i)
# break
# continue