程序的控制流程

1、程序的描述方式

(1)自然语言:就是使用人类语言、直接描述程序

(2)流程图:用一系列图形、流程线和文字说明描述程序的基本操作和控制流程,主要适用于较短的算法

(3)伪代码:是介于自然语言与编程语言之间的一种算法描述语言,如果程序比较小,可以直接使用代码描述

2、程序的组织结构

顺序结构、选择结构(分支结构)、循环结构

3、顺序结构

        按程序语句的自然顺序,从上到下、依次执行每条语句的程序

# 赋值运算符的顺序 从右到左
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)

3、选择结构

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

(1)单分支结构

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

if number!=987654:
    print('您未中本期大奖')

print('------以上if判断的表达式,是通过比较运算符计算出来的,结果是布尔值类型------')
n=98 # 赋值操作
if n%2: # 98%2的余数是0,0的布尔值是False,非0的布尔值是True
    print(n,'是奇数') # 由于98%2的余数是0,所以该行代码不执行

if not n%2: # 98%2的余数是0,0的布尔值是False,not False的布尔值是True
    print(n,'是偶数') 

print('-------判断一个字符串是否是空字符串--------')
x=input('请输入一个字符串:')
if x: #python中一切皆对象,每个对象都有一个布尔值,非空字符串的布尔值为True,空字符串的布尔值为False
    print('x是一个非空字符串')

if not x: # 空字符串的布尔值为False,取反,not False的结果是True
    print('x是一个空字符串')

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

print('------使用if语句时,如果语句中只有一句代码,可以将语句块直接写在冒号的后面------')
a=10
b=5
if a>b:max=a # 语句块只有一句,赋最大值
print('a和b的最大值为:',max)

(2)双分支结构

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


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


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

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

(3)多分支结构

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

(4)嵌套if的使用

        单分支结构、双分支结构、多分支结构在实际开发过程中是可以互相嵌套使用的,内层的分支结构将作为外层分支结构的语句块使用

answer=input('请问您喝酒了吗?')
if answer=='y': # answer的值为y表示喝酒了
    proot=eval(input('请输入您的酒驾含量:'))
    if proot<20:
        print('构不成酒驾,祝您一路平安!')
    elif proot<80:
        print('已构成酒驾,请不要开车')
    else:
        print('已达到醉驾标准,请千万不要开车')
else:
    print('您走吧!')

(5)在使用and连接多个条件判断时,只有同时满足多个条件,才能执行if后面的语句块

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

 (6)在使用or连接多个条件判断时,只要满足多个条件中的一个,就能执行if后面的语句块

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

(7)新特性-模式匹配match…case…结构

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

4、循环结构

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

(1)遍历循环结构for

for i in 'hello':
    print(i)

# range()函数,Python中的内置函数,产生一个[n,m)的整数序列,包含n,但是不包含m
for i in range(1,19):
    if i%2==0:
        print(i,'是偶数')

# 计算1-10之间的累加和
s=0 # 用于存储累加和
for i in range(i,11):
    s+=i # 相当于 s=s+i
print('1-10之间的累加和为:',s)


print('----------100到999之间的水仙花数---')
'''
153=3*3*3+5*5*5+1*1*1
'''
for i in range(1,1000):
    sd=i%10          # 获取个位上的数字
    tens=i//10%10    # 获取十位上的数字
    hundred=i//100   # 获取百位上的数字
    if i==sd**3+tens**3+hundred**3:
        print(i)

        遍历循环的扩展形式

s=0
for i in range(1,11):
    s+=i
else:
    print(s)

 (2)无限循环结构while

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


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

        无限循环的扩展形式

# 1-100之间的累加和
s=0 # 存储累加和
i=1 # (1)初始化变量
while i<=100:
    s+=i  # (3)语句块
    # (4)改变变量
    i+=1
else:
    print('1-100之间的累加和:',s)

        例1:使用无限循环模拟用户登陆

# (1)初始化变量
i=0
while i<3: #判断条件
    #(3)语句块
    name=input('请输入您的用户名:')
    pwd=input('请输入您的密码:')
    if name=='qwer' and pwd=='1234':
        print('登录chengg')
        i=8 #(4)改变变量
    else:
        if i<2:
            print('用户名或密码不正确,您还有',2-i,'次机会')
        i+=1 #相当于i=i+1  # (4)改变变量
# 单分支的判断
if i==3: # 当用户名或密码输入三次不正确的时候,循环执行结束了,i的最大值为3
    print('对不起,三次均输入错误')

        例2:打印长方形和直角三角形

# 打印一个三行四列的长方形
for i in range(1,4):
    for j in range(1,5):
        print('*',end='')
    print() # 空的print语句,作用是换行

# 打印一个5x5的直角三角形
for i in range(1,6):
    for j in range(1,i+1):
        print('*',end='')
    print() # 空的print语句,作用是换行

        例3:打印倒三角形和等腰三角形

# 打印一个5x5的倒直角三角形
for i in range(1,6):
    for j in range(1,7-i):
        print('*',end='')
    print() # 内层循环执行完毕之后,空print()换行

# 打印一个5行的等腰三角形
for i in range(1,6):
    for j in range(1,6-i):
        print(end='')
    for

5、程序跳转语句

(1)break:用于跳(退)出循环,通常与if一起搭配使用

        例:跳转语句break在while循环中的使用

s=0 # 存储累加和
i=1   #(1)初始化变量
while i<11:  #(2)条件判断
    # (3)语句块
    s+=i
    if s>20:
        print('累加和大于20的当前数是:',i)
        break
    i+=1 # (4)改变变量

print('--------------------------')
i=0 # 统计登录的次数 (1)初始化变量
while i<3:  #(2)条件判断
    # (3)语句块
    user_name=input('请输入用户名:')
    pwd=input('请输入密码:')
    if user_name=='ysj' and pwd=='888888':
        print('系统正在登录,请稍后...')
        break
    else:
        if i<2:
            print('用户名或密码不正确,您还有',2-i,'次机会')
    # (4)改变变量
    i+=1
else: # while...else
    print('三次均输入错误!')

        例:跳转语句break在for循环中的使用

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

(2)continue:用于跳过本次循环的后续代码,而继续执行下一次循环操作

        例:跳转语句continue在while中的使用

s=0
i=1  #(1)初始化变量
while i <=100: #(2)条件判断
    # (3)语句块
    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==1:
        continue
    # 累加求和的代码
    s+=i
print('1-100之间的偶数和是:',s)

6、pass

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

        例:空语句pass

if True:
    pass

while True:
    pass

for i in range(10):
    pass

  • 16
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值