当前位置:   article > 正文

程序的控制流程_程序的描述方式

程序的描述方式

1、程序的描述方式

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

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

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

2、程序的组织结构

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

3、顺序结构

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

  1. # 赋值运算符的顺序 从右到左
  2. name='张三'
  3. age=20
  4. a=b=c=d=100 # 链式赋值
  5. a,b,c,d='room' # 字符串分解赋值
  6. print(a)
  7. print(b)
  8. print(c)
  9. print(d)
  10. print('----------输入/输出语句也是典型的顺序结构---------')
  11. name=input('请输入您的姓名')
  12. age=eval(input('请输入您的年龄'))
  13. luck_number=eval(input('请输入您的幸运数字'))
  14. print('姓名:',name)
  15. print('年龄:',age)
  16. print('幸运数字:',luck_number)

3、选择结构

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

(1)单分支结构

  1. number=eval(input('请输入您的6位中奖号码:'))
  2. # 使用if语句
  3. if number==987654: # 等值判断
  4. print('恭喜您,中奖了!')
  5. if number!=987654:
  6. print('您未中本期大奖')
  7. print('------以上if判断的表达式,是通过比较运算符计算出来的,结果是布尔值类型------')
  8. n=98 # 赋值操作
  9. if n%2: # 98%2的余数是0,0的布尔值是False,非0的布尔值是True
  10. print(n,'是奇数') # 由于98%2的余数是0,所以该行代码不执行
  11. if not n%2: # 98%2的余数是0,0的布尔值是False,not False的布尔值是True
  12. print(n,'是偶数')
  13. print('-------判断一个字符串是否是空字符串--------')
  14. x=input('请输入一个字符串:')
  15. if x: #python中一切皆对象,每个对象都有一个布尔值,非空字符串的布尔值为True,空字符串的布尔值为False
  16. print('x是一个非空字符串')
  17. if not x: # 空字符串的布尔值为False,取反,not False的结果是True
  18. print('x是一个空字符串')
  19. print('------表达式也可以是一个单纯的布尔型变量------')
  20. flag=eval(input('请输入一个布尔类型的值:True或False'))
  21. if flag:
  22. print('flag的值为True')
  23. if not flag:
  24. print('flag的值为False')
  25. print('------使用if语句时,如果语句中只有一句代码,可以将语句块直接写在冒号的后面------')
  26. a=10
  27. b=5
  28. if a>b:max=a # 语句块只有一句,赋最大值
  29. print('a和b的最大值为:',max)

(2)双分支结构

  1. number=eval(input('请输入您的6位中奖号码:'))
  2. # if...else
  3. if number==987654:
  4. print('恭喜您中奖了!')
  5. else:
  6. print('您未中本期大奖')
  7. print('------以上代码可以使用条件表达式进行简化------')
  8. result='恭喜您中奖了!' if number==987654 else '您未中本期大奖!'
  9. print(result)
  10. print('恭喜您中奖了!' if number==987654 else '您未中本期大奖!')
'
运行

(3)多分支结构

  1. score=eval(input('请输入您的成绩:'))
  2. # 多分支结构
  3. if score<0 or score>100:
  4. print('您输入的成绩有误')
  5. if 90<score<=100:
  6. print('A')
  7. elif 80<score<=90:
  8. print('B')
  9. elif 70<score<=80:
  10. print('C')
  11. elif 60<score<=70:
  12. print('D')
  13. else:
  14. print('E')
'
运行

(4)嵌套if的使用

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

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

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

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

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

  1. score=eval(input('请输入您的成绩:'))
  2. if score<0 or score>100:
  3. print('您输入的成绩有误,请重新输入')
  4. else:
  5. print('您的成绩为:',score)
'
运行

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

  1. score=input('请输入您的成绩等级:')
  2. match score:
  3. case 'A':
  4. print('优秀')
  5. case 'B':
  6. print('良好')
  7. case 'C':
  8. print('中等')
  9. case 'D':
  10. print('及格')
  11. case 'E':
  12. print('不及格')
'
运行

4、循环结构

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

(1)遍历循环结构for

  1. for i in 'hello':
  2. print(i)
  3. # range()函数,Python中的内置函数,产生一个[n,m)的整数序列,包含n,但是不包含m
  4. for i in range(1,19):
  5. if i%2==0:
  6. print(i,'是偶数')
  7. # 计算1-10之间的累加和
  8. s=0 # 用于存储累加和
  9. for i in range(i,11):
  10. s+=i # 相当于 s=s+i
  11. print('1-10之间的累加和为:',s)
  12. print('----------100到999之间的水仙花数---')
  13. '''
  14. 153=3*3*3+5*5*5+1*1*1
  15. '''
  16. for i in range(1,1000):
  17. sd=i%10 # 获取个位上的数字
  18. tens=i//10%10 # 获取十位上的数字
  19. hundred=i//100 # 获取百位上的数字
  20. if i==sd**3+tens**3+hundred**3:
  21. print(i)
'
运行

        遍历循环的扩展形式

  1. s=0
  2. for i in range(1,11):
  3. s+=i
  4. else:
  5. print(s)
'
运行

 (2)无限循环结构while

  1. # (1)初始化变量
  2. answer=input('今天要上课吗?y/n')
  3. while answer=='y': #(2)条件判断
  4. print('好好学习,天天向上') # (3)语句块
  5. # (4)改变变量
  6. answer=input('今天要上课吗?y/n')
  7. # 1-100之间的累加和
  8. s=0 # 存储累加和
  9. i=1 # (1)初始化变量
  10. while i<=100: #(2)条件判断
  11. # (3)语句块
  12. s+=i
  13. # (4)改变变量
  14. i+=1
  15. print('1-100之间的累加和:',s)
'
运行

        无限循环的扩展形式

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

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

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

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

  1. # 打印一个三行四列的长方形
  2. for i in range(1,4):
  3. for j in range(1,5):
  4. print('*',end='')
  5. print() # 空的print语句,作用是换行
  6. # 打印一个5x5的直角三角形
  7. for i in range(1,6):
  8. for j in range(1,i+1):
  9. print('*',end='')
  10. print() # 空的print语句,作用是换行
'
运行

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

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

5、程序跳转语句

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

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

  1. s=0 # 存储累加和
  2. i=1 #(1)初始化变量
  3. while i<11: #(2)条件判断
  4. # (3)语句块
  5. s+=i
  6. if s>20:
  7. print('累加和大于20的当前数是:',i)
  8. break
  9. i+=1 # (4)改变变量
  10. print('--------------------------')
  11. i=0 # 统计登录的次数 (1)初始化变量
  12. while i<3: #(2)条件判断
  13. # (3)语句块
  14. user_name=input('请输入用户名:')
  15. pwd=input('请输入密码:')
  16. if user_name=='ysj' and pwd=='888888':
  17. print('系统正在登录,请稍后...')
  18. break
  19. else:
  20. if i<2:
  21. print('用户名或密码不正确,您还有',2-i,'次机会')
  22. # (4)改变变量
  23. i+=1
  24. else: # while...else
  25. print('三次均输入错误!')

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

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

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

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

  1. s=0
  2. i=1 #(1)初始化变量
  3. while i <=100: #(2)条件判断
  4. # (3)语句块
  5. if i%2==1: # 奇数
  6. i+=1
  7. continue # 不再执行后面的代码了
  8. # 累加求和的代码
  9. s+=i
  10. i+=1
  11. print('1-100之间的偶数和:',s)
'
运行

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

  1. s=0
  2. for i in range(1,101):
  3. if i%2==1:
  4. continue
  5. # 累加求和的代码
  6. s+=i
  7. print('1-100之间的偶数和是:',s)
'
运行

6、pass

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

        例:空语句pass

  1. if True:
  2. pass
  3. while True:
  4. pass
  5. for i in range(10):
  6. pass

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/黑客灵魂/article/detail/826712
推荐阅读
相关标签
  

闽ICP备14008679号