Python学习 第4章-程序的流程控制

本文详细介绍了Python编程中的基本结构,包括顺序、选择(单分支、双分支、多分支)、循环(遍历循环、无限循环)以及Python3.11新增的模式匹配。通过实例演示如何使用if、else、while、for等语句以及break、continue和pass的作用。

本章内容

  • 程序的描述方式有三种:自然语言、流程图和伪代码(代码)
  • 程序的组织结构有三种:顺序结构、选择结构(分支结构)、循环结构
  • 选择结构分单分支结构(if)、双分支结构(if....else....)和多分支结构(if...elif....else....)
  • Python3.11新特征模式匹配match...Case..结构
  • 循环结构有两种:遍历循环for和无限循环while
  • if结构可以互相嵌套,循环结构也可以互相嵌套,建议最多不超过三层
  • break和continue只能用在循环结构中,break用于退出整个循环结构,continue用于结束本次循环而进入下一次循环。
  • 空语句pass起到占位符的作用,使用语法结构完整、不报错。

本章示例

示例4-1顺序结构的语句

name='张三'
age=20
a=b=c=d=100
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)

示例4-2单分支结构if

number=eval(input('请输入您的6位中奖号码:'))
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')

示例4-3双分支结构if-else

number=eval(input('请输入您的6位中奖号码:'))
if number==987654:
    print('恭喜您中奖了!')
else:
    print('您未中本期大奖!')

print('------以上代码可以使用条件表达式进行简化------')

result='恭喜您中奖了!' if number==987654 else '您未中本期大奖!'
print(result)
print('恭喜您中奖了!' if number==987654 else '您未中本期大奖!')

示例4-4多分支结构的使用

score=eval(input('请输入您的成绩:'))
if score<0 or score>100:
    print('成绩有误!')
elif 0<=score<60:
    print('E')
elif 60<=score<70:
    print('D')
elif 70<=score<80:
    print('C')
elif 80<=score<90:
    print('B')
else:
    print('A')

示例4-5嵌套if的使用

answer=input('请问,您喝酒了吗?')
if answer=='y':
    proof=eval(input('请输入酒精含量:'))
    if proof<20:
        print('构不成酒驾,祝您一kkht平安')
    elif proof<80:
        print('已构成酒驾,请不要开车')
    else:
        print('已达到了醉驾标准,请千万不要开车')
else:
    print('你走吧,没你啥事儿!')

示例4-6使用and连接多个选择条件

user_name=input('请输入您的用户名:')
pwd=input('请输入您的密码:')
if user_name=='ysj' and pwd=='888888':
    print('登录成功')
else:
    print('用户名或密码不正确')

示例4-7使用or连接多个选择条件

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

示例4-8Python3.11新特性-模式匹配

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

示例4-9遍历for循环的使用

#遍历字符串
for i in 'hello':
    print(i)
#range()函数,Python中的内置函数,产生一个[n,m)的整数序列,包含n,但是不包含m
for i in range(1,11):
    if i%2==0:
        print(i,'是偶数')
#计算1-10之间的累加和
s=0
for i in range(1,11):
    s+=i
print('1-10之间的累加和为:',s)
print('------100到999之间的水仙花数------')
'''
153=3*3*3+5*5*5+1*1*1   
'''
for i in range(100,1000):
    sd=i%10
    tens=i//10%10
    hunderd=i//100
    if sd**3+tens**3+hunderd**3==i:
        print(i)

示例4-10遍历循环的扩展形式

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

示例4-11无限循环while的使用

#(1)初始化变量
answer=input('今天要上课吗?y/n')
while answer=='y': #(2)条件判断
    print('好好学习,天天向上') #(3)语句块
    answer=input('今天要上课吗?y/n')

#1-100之间的累加和
s=0
i=1
while i<=100:
    s+=i
    i+=1
print('1-100之间的累加和:',s)

示例4-12无限循环while的扩展形式

s=0
i=1
while i<=100:
    s+=i
    i+=1
else:
    print('1-100之间的累加和:',s)

示例4-13使用无限循环模拟用户登录

i=0
while i<3:
    user_name=input('请输入用户名:')
    pwd=input('请输入密码:')
    if user_name=='ysj' and pwd=='888888':
        print('系统正在登录,请稍后')
        i=8
    else:
        if i<2:
            print('用户名或密码不正常,您还有',2-i,'次机会')
        i+=1
if i==3:
    print('对不起,3次均输入错误')

示例4-14长方形和直角三角形的输出

for i in range(1,4):
    for j in range(1,5):
        print('*',end='')
    print()
print('----------------')
for i in range(1,6):
    for j in range(1,i+1):
        print('*',end='')
    print()

示例4-15倒三角形和等腰三角形

for i in range(1,6):
    for j in range(1,7-i):
        print('*',end='')
    print()
print('------------------------')
'''
&&&&*
&&&***
&&*****
&*******
*********
'''
for i in range(1,6):
    for j in range(1,6-i):
        print(' ',end='')
    for k in range(1,2*i):
        print('*',end='')
    print()

示例4-16菱形

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-i+1):
        print(' ',end='')
    for k in range(1,2*i):
        print('*',end='')
    print()
'''
&&&*
&&***
&*****
*******
&*****
&&***
&&&*
'''

bottom_row=row//2
for i in range(1,bottom_row+1):
    for j in range(1,i+1):
        print(' ',end='')
    for k in range(1,2*bottom_row-2*i+2):
        print('*',end='')
    print()

示例4-17空心菱形

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-i+1):
        print(' ',end='')
    for k in range(1,2*i):
        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,i+1):
        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()

示例4-18跳转语句break在while循环中的使用

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

示例4-19break在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 == 'ysj' and pwd == '888888':
        print('系统正在登录,请稍后...')
        break
    else:
        if i < 2:
            print('用户名或密码不正确,您还有', 2-i, '次机会')
else:
    print('三次均输入错误!')

示例4-20跳转语句continue在while中的使用

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

示例4-21continue在for循环中的使用

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

示例4-22空语句

if True:
    pass
while True:
    pass

for i in range(10):
    pass

注:文中内容及示例均出自@Python_子木的视频。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值