程序的流程控制

了解程序的描述方式

自然语言就是使用人类语言、直接描述程序
在这里插入图片描述

程序的描述方式

流程图
用一系列图形、流程线和文字说明描述程序的基本操作和控制流程
在这里插入图片描述
在这里插入图片描述
伪代码
介于自然语言和编程语言之间的一种算法描述语言,如果程序比较小,可以直接使用代码描述
在这里插入图片描述

了解程序的组织结构

在这里插入图片描述

掌握顺序结构

顺序结构
按程序语句的自然顺序,从上到下,依次执行每条语句的程序
在这里插入图片描述

示例:顺序结果的使用

#赋值运算符的顺序 从右往左
name='张三'
age=20
a=b=c=20#链式赋值
a,b,c,d='room'# 字符串分解赋值
print(a)
print(b)
print(c)
print(d)
print('-------输入输出语句也是典型的顺序结构------------')
name=input('请输入你的姓名')
age=eval(input('请输入你的年龄'))
luck_number=eval(input('请输入你的幸运数字'))
print('姓名',name)
print('年龄',age)
print('幸运数字',luck_number)

运行结果
在这里插入图片描述

掌握选择/分支结构

选择结构也称分支结构,是按照条件选择执行不同的代码段

单分支结构if的语法结构

在这里插入图片描述

示例:单分支if的使用

number=eval(input('请输入您的6位中奖号码'))
#使用if语句
if number==987654:
    print('恭喜您,中奖了')
if number!=987654:
    print('恭喜您,没中奖')
print('-----------以上if判断的表达式,是通过比较运算符计算出来的,结果是布尔类型')
n=98
if n%2:
    print(n,'为奇数')

if not n%2:
    print(n,'为偶数')

print('------判断一个字符串是否是空字符串-------')
x=input('请输入一个字符串')
if x:
    print('x是一个非空字符串')

if not x:
    print('x是一个空字符串')
print('------表达式也可以是一个单纯的布尔型变量------')
flag=eval(input('请输入一个布尔类型的值:True或False'))
if flag:
    print('flag的值为True')
if not flag:
    print('flag的值为False')

运行结果
在这里插入图片描述

双分支结构if…else语法结构

在这里插入图片描述

双分支结构的使用

number=eval(input('请输入您的6位中奖号码'))
#使用if语句
if number==987654:
    print('恭喜您,中奖了')
else:
    print('恭喜您,没中奖')

运行结果
在这里插入图片描述

多分支结构语法结构

在这里插入图片描述

示例:多分支结构的使用

score=eval(input('请输入你的成绩'))
if score<60:
    print('D')
elif score>60 and score<70:
    print('C')
elif score>70 and score<80:
    print('B')
else:
    print('A')

运行结果
在这里插入图片描述

嵌套调用

单分支结构、双分支结构和多分支结构在实际开发中是可以互相嵌套使用的,内层的分支结构将作为外层分支结构的语句块使用。
在这里插入图片描述

嵌套调用的使用

answer=input('请问您喝酒了吗')
if answer=='y': #您喝酒了
    proof=eval(input('请输入您的酒精含量'))
    if proof>20:
        print('不构成酒驾,祝你平安')
    elif proof<80:
        print('已构成酒驾,请您停止驾车')
else:
    print('没事了,你走吧')

运行结果
在这里插入图片描述

使用and连接多个使用条件

在使用and连接多个条件判断时,只有同时满足多个条件,才能执行if后面的语句块。
在这里插入图片描述

示例:使用and连接多个条件

user_name=input('请输入用户名')
pwm=input('请输入用户密码')
if user_name=='yiyi' and pwm=='8888':
    print('登录成功')
else:
    print('用户名或密码不正确')

运行结果
在这里插入图片描述

使用or连接多个条件

示例:使用or连接多个条件

score=eval(input('请输入您的成绩'))
if score<0 or score>100:
    print('成绩无效')
else:
    print('您的成绩为',score)

运行结果
在这里插入图片描述

Python3.11模式新特性——模式匹配

示例:模式匹配

score=input('请输入你的成绩')
match score:
    case 'A':
        print('优秀')
    case 'B':
        print('良好')
    case 'C':
        print('及格')
    case 'D':
        print('不及格')

运行结果
在这里插入图片描述

掌握循环结构for和while

在Python中循环结构分两类,一类是遍历循环结构for,一类是无限循环结构while

for

在这里插入图片描述

示例:for的使用

#遍历字符串
for i in 'hello':
    print(i)
#range()Python的内置函数,产生一个[n,m)的整数序列,包含n,不包含m
for i in range(1,11):
    if i%2==0:
        print('是偶数')
    else:
        print('是奇数')

# 计算1-10的累加和
s=0;
for i in range(1,11):
    s+=i
print('1-10之间的累加数是:',s)

# 计算100-999之间的水仙花数
for i in range(100,1000):
    sd=i%10
    tens=i//10%10
    hundred=i//100
    if sd**3+tens**3+hundred**3==i:
        print(i,'是水仙花数')

运行结果
在这里插入图片描述

示例:遍历循环的扩展形式

s=0
for i in range(1,11):
    s+=i
else:
    print('1-10之间的累加和为:',s)

运行结果
在这里插入图片描述

while

在这里插入图片描述
在这里插入图片描述

示例:while的使用

answer=input('今天要上课吗? y/n')#(1)初始化变量
while answer=='y':#(2)条件判断
    print('好好学习天天向上')#(3)语句块
    #(4)改变变量
    answer=input('今天要上课吗?y/n')
#1-100的累加和
s=0
i=1#(1)初始化变量
while i<=100:#(2)条件判断
    s+=i#(3)语句块
    i+=1#(4)改变变量
print(s,'是累加和')

运行结果
在这里插入图片描述

示例:while的扩展形式

#1-100的累加和
s=0
i=1#(1)初始化变量
while i<=100:#(2)条件判断
    s+=i#(3)语句块
    i+=1#(4)改变变量
else:
    print(s,'是累加和')

运行结果
在这里插入图片描述

使用无限循环模拟用户登录

#(1)初始化变量
i=0
while i<3:#(2)条件判断i=0,1,2
    #(3)语句块
    user_namer=input('请输入用户名')
    psw=input('请输入用户密码')
    if user_namer=='yiyi' and psw=='666':
        print('用户正在登录,请稍后')
        #需要改变循环变量,目的 退出循环
        i=8#与第三行想驳,退出循环(4)改变变量
    else:
        if i<2:
            print('用户名或密码不正确,您还有',2-1,'次机会')
        i+=1#(4)改变变量
# 单分支的循环
if i==3:
    print('三次输入均错误,账号绑定')

运行结果
在这里插入图片描述

嵌套循环

循环结构也可以互相嵌套,在一个循环结构中嵌套另外一个完整的循环结构就称为嵌套循环
在这里插入图片描述

示例:长方形和直角三角形

# 三行四列
for i in range(1,4): #外层循环行
    for j in range(1,5):#内层循环列
        print(i,end='')
    print()#空的print语句,作用是换行
print('--------------')
for i in range(1,6):
    for j in range(1,i+1):
        print('*',end='')
    print()

运行结果
在这里插入图片描述

示例:长方形和直角三角形

// A code block
var foo = 'bar';

运行结果

示例:倒三角形

#倒三角形
for i in range(1,6):
    for j in range(1,7-i):
        print('*',end='')
    print()

运行结果
在这里插入图片描述

示例:菱形

row=eval(input('请输入菱形的行数:'))
while row%2==0:#判断行数的奇偶性,行数是偶数,重新输入行数
    print('请输入菱形的行数:')
    row=eval(input('请输入菱形的行数'))
#输出菱形的
top_row=(row+1)//2
# 上半部分
for i in range(1,top_row):
    for j in range(1,top_row+1-i):
        print(' ',end='')
    for k in range(1,i*2):
        print('*',end='')
    print()
print('*'*row)
#下半部分
bottom_row=row//2
for i in range(1,bottom_row+1):
    for j in range(1,1+i):
        print(' ',end='')
    for k in range(1,2*bottom_row-2*i+2):
        print('*',end='')
    print()

运行结果
在这里插入图片描述

空心菱形

row=eval(input('请输入菱形的行数:'))
while row%2==0:#判断行数的奇偶性,行数是偶数,重新输入行数
    print('请输入菱形的行数:')
    row=eval(input('请输入菱形的行数'))
#输出菱形的
top_row=(row+1)//2
# 上半部分
for i in range(1,top_row+1):
    for j in range(1,top_row+1-i):
        print(' ',end='')
    for k in range(1,i*2):
        if k==1 or k==i*2-1:
            print('*',end='')
        else:
            print(' ',end='')
    print()



#下半部分
bottom_row=row//2
for i in range(1,bottom_row+1):
    for j in range(1,1+i):
        print(' ',end='')
    for k in range(1,2*bottom_row-2*i+2):
        if(k==1 or k==2*bottom_row-2*i+2-1):
            print('*',end='')
        else:
            print(' ',end='')
    print()

运行结果
在这里插入图片描述

掌握程序跳转语句break和continue

break

程序跳转语句break用于跳(退)出循环结构,通常与if一起搭配使用。
在这里插入图片描述

break在while中的使用

s=0
i=1
while i<11:
    s+=i
    if s>20:
        print('累加和大于20的当前数是:',i)
        break
    i+=1
print('-'*40)
i=0
while i<3:
    user_name=input('请输入用户名:')
    pwd=input('请输入密码:')
    if user_name=='yiyi' and pwd=='1111':
        print('系统正在登录,请稍后...')
    else:
        if i<2:
            print('用户名或密码不正确,您还有',2-i,'次机会')
    i+=1
else:
    print('三次输入错误')

运行结果
在这里插入图片描述

break在for中的使用

for i in 'hello':
    if i=='e':
        break
    print(i)
    print('------')
for i in range(3):
    user_name=input('请输入用户名:')
    pwd=input('请输入密码')
    if user_name=='yiyi' and pwd=='1111':
        print('系统正在登录,请稍后...')
        break
    else:
        if i<2:
            print('用户名或密码不正确,您还有',2-i,'次机会')
else:
    print('三次输入错误')

运行结果
在这里插入图片描述

continue

continue的作用是用于跳过本次循环的后续代码,而继续执行下一次循环操作,continue在循环中通常也是与if一起搭配使用。
在这里插入图片描述
在这里插入图片描述

continue在while中的使用

s=0
i=1
while i<=100:
    if i%2==1:
        i+=1
        continue
    s+=i
    i+=1
print('1-100之间的偶数和:',s)

运行结果
在这里插入图片描述

continue在for中的使用

s=0
for i in range(1,101):
    if i%2==0:
        continue
    s+=i
print('1-100之间的偶数和是',s)

运行结果
在这里插入图片描述

掌握pass空语句

pass是Python中的保留字。

在语法结构中只起到占位符作用,使语法结构完整,不报错,一般可用在if、for、while、函数的定义、类的定义中。

示例:空语句的运用

if True:
    pass
while True:
    pass
for i in range(10):
    pass

运行结果
在这里插入图片描述

本章总结

程序的描述方式有三种:自然语言、流程图和伪代码(代码)

程序的组织结构有三种:顺序结构、选择结构(分支结构)、循环结构

选择结构分单分支结构(if)、双分支结构(if…else. .)和多分支结构(if. .elif. else…)

Python3.11新特征模式匹配match…case…结构

循环结构有两种:遍历循环for和无限循环while

if结构可以互相嵌套,循环结构也可以互相嵌套,建议最多不超过三层

break和continue只能用在循环结构中,break用于退出整个循环结构,continue用于结束本次循环而进入下一次循环。

空语句pass起到占位符的作用,使用语法结构完整、不报错

  • 20
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值