文章目录
- CH4. 程序
- 程序的描述方式
- 自然语言
- 流程图
- 伪代码
- 程序的组织结构
- 顺序结构
- 选择/分支结构
- Python3.11新特性 —— 模式匹配
- 循环结构
- 遍历循环for的语句结构
- 无限循环结构while
- 循环结构输出图形
- 程序跳转语句
- break
- continue
- 空语句pass
CH4. 程序
程序的描述方式
自然语言
- 使用人类语言直接描述程序
流程图
- 流程图是用一系列图形、流程线和文字说明描述程序的基本操作和控制流程,主要适用于较短的算法
- 注释框、流向线
伪代码
- 是介于自然语言和编程语言之间的一种算法描述语言,如果程序比较小,可以直接使用代码描述
程序的组织结构
顺序结构
- 按程序语句的自然顺序,从上到下,依次执行
选择/分支结构
-
选择结构也称分支结构,是按照条件选择执行不同的代码段
-
单分支结构
if 表达式: 语句块
-
双分支结构
if-else
-
多分支结构
if-elif-else
-
分支结构可以互相嵌套
Python3.11新特性 —— 模式匹配
match-case
score=input('请输入成绩等级:')
match score:
case 'A':
print("优秀")
case 'B':
print("良好")
case 'C':
print("中等")
case 'D':
print("及格")
case 'E':
print("不及格")
循环结构
遍历循环for的语句结构
for value in nums:
pass
# for...else...结构
for value in nums:
pass
else:
pass
# range(m,n)函数,Python内置函数,产生一个[m,n)的整数序列
for i in range(1,11):
if i%2==0:
print(i, "是偶数")
# test_for_circle.py
# _*_ coding=UTF-8 _*_
'''
判断100到999之间的水仙花数
一个三位数A的个位数为x,十位数为y,百位数为z
如果A == x^3 + y^3 + z^3,那么这个三位数A为水仙花数
'''
for i in range(100, 1000):
sd = i%10 # 个位数
tens = i//10%10 # 十位数
huns = i//100 # 百位数
# 判断是否为水仙花数
if sd**3+tens**3+huns**3 == i:
print(i)
'''
153
370
371
407
'''
无限循环结构while
-
while
或者while...else...
结构 -
while
循环的四个步骤:
-
初始化变量
-
条件判断
-
语句块
-
改变变量
- 循环结构可以相互嵌套
循环结构输出图形
# coding=utf-8
# 打印长方形
print('-'*20)
for i in range(1,4):
for j in range(1,5):
print('*', end='')
print()
# 打印一个直角三角形
print('-'*20)
for i in range(1, 6):
for j in range(1,i+1):
print('*', end='')
print()
# 打印一个倒三角
print('-'*20)
for i in range(1, 6):
for j in range(1,7-i):
print('*', end='')
print()
# 打印一个等边三角形
print('-'*20)
row = 5
col = 2 * row - 1
for i in range(1, row+1):
for j in range(1,row+1-i):
print(' ',end='')
for k in range(1,2*i):
print('*',end='')
print()
# 打印一个菱形
print('-'*20)
#row = eval(input('请输入菱形的行数:'))
row = 9
while row%2 == 0:
row = eval(input('请输入菱形的行数(奇数行):'))
top_row = row//2 + 1
for i in range(1, top_row+1):
for j in range(1,top_row+1-i):
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+1-i)):
print('*',end='')
print()
# 打印一个空心菱形
print('-'*20)
# row = eval(input('请输入菱形的行数:'))
row = 9
while row%2 == 0:
row = eval(input('请输入菱形的行数(奇数行):'))
top_row = row//2 + 1
for i in range(1, top_row+1):
for j in range(1,top_row+1-i):
print(' ',end='')
for k in range(1,2*i):
if k > 1 and k < 2*i - 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+1-i)):
if k > 1 and k < 2*(bottom_row+1-i)-1:
print(' ',end='')
else:
print('*',end='')
print()
'''
--------------------
****
****
****
--------------------
*
**
***
****
*****
--------------------
*****
****
***
**
*
--------------------
*
***
*****
*******
*********
--------------------
*
***
*****
*******
*********
*******
*****
***
*
--------------------
*
* *
* *
* *
* *
* *
* *
* *
*
'''
程序跳转语句
break
- 用于跳出本次循环结构
continue
- 用于跳过本次循环的后续代码,而继续执行下一次循环操作
空语句pass
pass
是Python中的保留字- 在语法结构中只起到占位符的作用,使语法结构完整,不报错
- 一般可用在
if
、for
、while
、函数的定义、类的定义中
if True:
pass
while 1:
pass