程序的组织结构分为:顺序结构、选择/分支结构、循环结构。
一、顺序结构
按程序语句的自然顺序,从上到下,依次执行每条语句的程序。
a=b=c=d=100 #链式赋值
a,b,c,d='hell' #分解赋值
print(a,b,c,d) # h e l l
二、选择结构
也称分支结构,是按照条件选择执行不同的代码段。
1)单分支结构if的语法结构:
if 表达式:
语句块
执行流程:如果表达式的值为True,就执行语句块,如果表达式的值为False,就跳过语句块,继续执行后面的代码。
num=eval(input("请输入一个数字:"))
if num==10:
print('bingo,答对了')
print('游戏结束')
2)双分支结构if...else...语法结构:
if 表达式:
语句1
else:
语句2
执行流程:如果表达式的值为True,就执行语句1,否则就执行语句2。
num=eval(input("请输入一个数字:"))
if num==10:
print('bingo,答对了')
else:
print('可惜,答错了')
print('game over')
3)多分支结构语法结构:
if 表达式1:
语句1
elif 表达式2:
语句2
elif 表达式n:
语句n
else:
语句块n+1
执行流程:如果表达式1结果为True,则执行语句1;否则按顺序执行后面的条件判断,直到表达式结果为True,执行对应的语句,都表达式结果都不是True,则执行else对应的语句。
score=eval(input("请输入成绩:"))
if score>90:
print('优秀')
elif score>80:
print('很好')
elif score>60:
print('一般')
elif score>30:
print('不及格')
else:
print('很差')
单分支结构,双分支结构和多分支结构在实际开发中是可以互相嵌套使用的,内层的分支结构将作为外层分层分支结构的语句块使用。
在使用and连接多个条件判断时,只有同时满足多个条件,才能执行if后面的语句块。
使用or连接多个判断条件时,只要满足多个条件中的一个,就可以执行if后面的语句块。
a=eval(input('输入第一个整数:'))
b=eval(input('输入第二个整数:'))
if a==10 and b==20:
print('两个都正确')
else:
print('至少有一个是错误的')
if a==10 or b==20:
print('有一个正确即可')
else:
print('都是错误的')
match语法
score=input("请输入成绩等级:")
match score:
case 'A':
print('优秀')
case 'B':
print('良好')
case 'C':
print('中等')
case 'D':
print('及格')
case 'E':
print('不及格')
三、循环结构
循环结构分为两类:一类是遍历循环结构for,一类是无限循环结构while。
1)遍历循环for的语句结构:
for 循环变量 in 遍历对象:
语句块
for...else...结构
for 循环变量 in 遍历对象:
语句块1
else:
语句块2
for i in 'hello':
print(i)
else: #循环正常结束时,执行else后的语句
print('for 循环正常结束时执行')
#range()内置函数,会产生(m,n)的参数序列,包含m,但不包含n
for i in range(1,11):
if i%2==0:
print(i,end='\t')
print()
# 求1至10之间的和
s=0
for i in range(1,11):
s=s+i
print(s)
print('*'*50)
# 求100至999之间的水仙花数,某个数等于其个位,十位,百位的三次方之和
for i in range(100,1000):
gw=i%10
sw=i//10%10
bw=i//100
if gw**3+sw**3+bw**3==i:
print(i)
2)无限循环while的语句结构:
while 表达式:
语句块
while...else...结构
while 表达式:
语句块1
else:
语句块2
while循环的四个步骤:
1,初始化变量
2,条件判断
3,执行语句块
4,改变变量
i=0
s=0
while i<=100:
s+=i
i+=1
else:
print('1到100之间的和',s)
循环结构也可以互相嵌套,在一个循环结构中嵌套另外一个完整的循环结构就称为嵌套循环。
'''
****
****
****
'''
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()
print()
'''
*****
****
***
**
*
'''
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 x in range(1,2*i):
print('*',end='')
print()
print()
'''
*
***
*****
*******
*****
***
*
'''
for i in range(1,5):
for j in range(1,5-i):
print(' ',end='')
for x in range(1,2*i):
print('*',end='')
print()
for m in range(1,4):
for n in range(1,m+1):
print(' ',end='')
for y in range(1,6-(m-1)*2):
print('*',end='')
print()
print()
'''
*
* *
* *
* *
* *
* *
*
'''
for i in range(1,5):
for j in range(1,5-i):
print(' ',end='')
for x in range(1,2*i):
if x==1 or x==2*i-1:
print('*',end='')
else:
print(' ',end='')
print()
for m in range(1,4):
for n in range(1,m+1):
print(' ',end='')
for y in range(1,6-(m-1)*2):
if y==1 or y==5-(m-1)*2:
print('*',end='')
else:
print(' ',end='')
print()
程序跳转语句break用于跳出循环结构,通常与if一起搭配使用。
语法结构:
while 表达式1:
执行代码
if 表达式2:
break
for i in range(1,6):
if i>3:
break
print(i)
for i in 'helle':
if i=='e':
break
print(i)
continue的作用是用于跳过本次循环的后续代码,而继续执行下一次循环操作。continue在循环中通常也是与if一起搭配使用。
语法结构:
while 表达式1:
if 表达式2:
continue
执行代码
for i in range(1,11):
if i%2==1:
continue
print(i)
s=0
for i in range(1,11):
if i%2==1:
continue
s+=i
print('10以内的偶数之和:',s)