Fork me on GitHub

流程控制

一、概要

  • 顺序控制
  • 分支控制
  • 循环控制

二、顺序控制

顺序控制时最简单的一种流程控制,强调代码从上到下依次执行,中间没有任何顺序和跳转。

a = 10
b = 20
print(a)
print(b)

三、分支控制

(一)单分支

  • 基本语法
if <condition> :
	pass
  • 实例
a = 10
if a > 5:
    print("a=", a)

(二)双分支

  • 基本语法
if <condition>:
    pass
else:
	pass
  • 实例
a = 3
if a > 5:
    print("a=", a)
else:
    print("a < 5")

(三)多分支

  • 基本语法
if <condition>:
    pass
elif <condition>:
	pass
else:
    pass
  • 实例
a = 7
if a > 3 and a < 7:
    print("a大于3并且小于7")
elif a > 7:
    print("a大于7")
else:
    print("a等于7")

(四)嵌套分支

在一个分支结构中完整的嵌套另一个完整的分支结构,里面的分支结构被称为内层分支,外面的分支结构被称为外层分支。

  • 基本语法
if <condition>:
    if <condition>:
        pass
    else:
        pass
  • 实例
a = 10
b = 5

if a <= 10:
    if b < 5:
        print("b小于5")
    else:
        print("b大于等于5")

(五)条件变量

类型 例子 备注
数字 0表示False,1表示True
字符串 空字符串(“”)表示False
对象 None表示空对象
布尔 True或者False

用的比较多的是对象和布尔进行判断,尽量以bool显式判断。

(六)案列

1、 计算器

从输入控制中接收2个数字以及运算符,计算结果,如:

variable = input("请输入两个数字以及一个运算符:") # 1 + 2
num1, operator, num2 = variable.split()
num1 = int(num1)
num2 = int(num2)
if operator == "+":
    res = num1 + num2
elif operator == "-":
    res = num1 - num2
elif operator == "*":
    res = num1 * num2
else:
    res = num1 / num2
print(res)

2、出票系统

根据淡、旺季的月份和年龄,打印票价:

4-10月旺季:

成人(18-60):60

儿童(<18):半价

老人(>60):1/3

淡季:

成人:40

其他:20

思路:

  • month age两个变量
  • 嵌套分支
price = 60

month = int(input("请输入月份:"))
age = int(input("请输入年龄:"))

if month > 4 and month < 10:
    if age > 60:
        print("%s月份 %s票价 %s年龄" % (month, price / 3, age))
    elif age >= 18:
        print("%s月份 %s票价 %s年龄" % (month, price, age))
    else:
        print("%s月份 %s票价 %s年龄" % (month, price / 2, age))
else:
    if age >= 10 and age < 60:
        print("淡季成人票", 40)
    else:
        print("淡季儿童和老人票", 20)

四、循环控制

  • while循环
  • for循环

python中没有do...while循环

流程控制图:

image-20211219214029194

(一)while循环

  • 基本语法
while <condition>:
    循环体
    循环变量迭代
  • 实例

实现1-100求和

i = 1
sum = 0
while i < 101:
    sum += i
    i += 1
print(sum)

(二)for循环

  • 基本语法
for 可迭代变量 in 序列:# 
	循环体

序列,指的是一块可存放多个值的连续内存空间,这些值按一定顺序排列,可通过每个值所在位置的编号(称为索引)访问它们。

  • 实例
for i in [1, 2, 3]:
    print(i)
for index, value in enumerate([1, 2, 3]):
    print(index, value)

(三)嵌套循环

​ 将一个循环放入到另一个循环内,这样就形成了嵌套循环。外边的循环被称为外层循环,里面的循环被称为内层循环;实际上嵌套循环的循环体就是内存循环

​ 外层循环次数m次,内存循环n次,则内存循环体需要执行m*n次

for i in [1,2]:
    for j in [5,6]:
        print(i, j)

(四)break/continue

1 break

break语句用于终止代码块的执行,可以跳出循环语句。

  • while跳出循环
i = 10

while True:
    print(i)
    if i < 5:
        break
    i -= 1

输出:

10
9
8
7
6
5
4
  • for跳出循环
for i in range(10):
    if i == 5:
        break
    print(i)

输出:

0
1
2
3
4

2 continue

for i in range(10):
    if i < 5:
        continue
    print(i)

输出:

5
6
7
8
9

(五)案例

1、求1-100被3整除的和

res = 0
for i in range(1,101):
    if i % 3 == 0:
        res += i
print(res)

2、打印乘法口诀

for i in range(1, 10):
    for j in range(1, i+1):
        print("{}*{}={}".format(j, i, j * i),end=" ") # 打印每一行
    print() # 换行,默认为换行
posted @ 2023-01-19 16:59  iveBoy  阅读(3)  评论(0)    收藏  举报
TOP