本文分享Python的程序结构的知识,供大家学习交流。
目录
一、Pyhton的程序结构
1、程序的组织结构
2、顺序结构
3、选择(分支)结构
3.1 单分支if结构
3.2 双分支if...else 结构
3.3 多分支if...elif...else 结构
3.4 if语句的嵌套
3.5 条件表达式
4、循环结构
4.1 range()函数的使用
三种创建方式:
range的优点:
4.2 while循环
语法结构:
选择结构if与循环结构while的区别:
while循环的执行流程:
4.3 for-in循环
语法结构:
4.4 break、continue与else语句
流程控制语句break
流程控制语句continue
else语句
if (条件不成立时执行else)
while(循环结束,没有遇到break时执行else)
for(循环结束,没有遇到break时执行else)
4.5 嵌套循环
5、对象的布尔值
6、pass空语句
一、Pyhton的程序结构
1、程序的组织结构
1996年,计算机科学家证明了这样的事实:任何简单或复杂的算法都可以由顺序结构、选择结构和循环结构这三种基本结构组合而成。
2、顺序结构
程序从上到下顺序地执行代码,中间没有任何的判断和跳转,直到程序结束。
3、选择(分支)结构
程序根据判断条件的布尔值选择性地执行部分代码。
3.1 单分支if结构
money=1000
s=int(input('请输入取款金额:'))
if money>=s:
money-=s
print('取款成功,余额为:',money)
3.2 双分支if...else 结构
二选一
num=int(input('请输入一个整数:'))
if num%2==0:
print(num,'为偶数')
else:
print(num,'为奇数')
3.3 多分支if...elif...else 结构
执行业务流程
score=int(input('请输入考试成绩: '))
if score>=90 and score<=100:
print('成绩等级为:A')
elif score>=80 and score<90:
print('成绩等级为:B')
elif score>=70 and score<80:
print('成绩等级为:C')
elif score>=60 and score<70:
print('成绩等级为:D')
else:
print('成绩不及格')
注意:在python中允许90<=score<=100
3.4 if语句的嵌套
money=float(input('请输入您的消费金额: '))
answer=input('请问您是会员吗(y/n)')
if answer=='y':
print('会员')
if money>=200:
print('打8折')
elif money>=100:
print('打9折')
else:
print('不打折')
else :
print('非会员')
if money>=200:
print('打9.5折')
else:
print('不打折')
3.5 条件表达式
if.... else的缩写。
语法结构:x if 判断条件 else y
运算规则:如果判断条件的布尔值为True,条件表达式的返回值为x,否则条件表达式返回值为y
#if else代码
a=int(input('请输入一个整数: '))
b=int(input('请输入另一个整数: '))
if a>=b:
print(a,'大于等于', b)
else:
print(a,'小于',b)
#条件表达式代码
print( (a,'大于等于', b) if a>=b else (a,'小于',b) )
print( str(a)+'大于等于'+ str(b) if a>=b else str(a)+'小于'+str(b) )
4、循环结构
4.1 range()函数的使用
用于生成一个整数序列,返回值是一个迭代。
三种创建方式:
range(stop)
- 创建一个(0,stop)之间的整数序列
- 默认从0开始,步长为1
range(start,stop)
- 创建一个(start,stop)之间的整数序列
- 从start开始,到stop结束,默认步长为1
range(start,stop,step)
- 创建一个(start,stop)之间的整数序列
- 从start开始,到stop结束,步长为step
r=range(10)
print(list(r))
print(10 in r)
print(10 not in r)
in判断指定整数在序列中是否存在
not in判断指定整数在序列中是否不存在
range的优点:
- 不论range表示的整数序列有多长,所有range对象占有的内存空间都是相同的,因为只需要存储start, stop ,step
- 只有用到range对象时,才会去计算序列中的相关元素
4.2 while循环
语法结构:
- while 条件表达式 :
- 条件执行体(循环体)
a=1
while a<10:
print(a)
a+=1
选择结构if与循环结构while的区别:
- if是判断一次,条件为True执行一行
- while是判断N+1次,条件为True执行N次
while循环的执行流程:
- 初始化变量
- 条件判断
- 条件执行体(循环体)
- 改变变量
- (初始化的变量与条件判断的变量与改变的变量为同一个)
print('计算1到100之间的偶数和')
#初始化变量
a=2
sum=0
#条件判断
while a<=100:
#条件执行体
if a%2==0:
#或 if not bool(a%2):
sum+=a
#改变变量
a+=1
print('1到100之间的偶数和为:',sum)
4.3 for-in循环
in表达从(字符串、序列等)中依次取值,又称为遍历
for-in 遍历的对象必须是可迭代对象
语法结构:
- for 自定义的变量 in 可迭代对象 :
- 循环体
如果在循环体中不需要用到自定义变量,可将自定义变量定义为_
#代码示例1
for item in 'python':
print(item)
#代码示例2
for k in range(10):
print(k)
#代码示例3
for _ in range(5):
print('人生苦短,我用python')
#代码示例4 用for in 计算1到100之间的偶数和
print('用for in 计算1到100之间的偶数和')
sum=0
for j in range(1,101):
if j%2==0:
sum+=j
print('1到100之间的偶数和为:',sum)
#练习 要求输出100到999之间的水仙花数
print('输出100到999之间的水仙花数')
for i in range(100,1000,1):
a=i%10 #取个位数
b=i//10%10 #取十位数
c=i//100 #取百位数
if a**3+b**3+c**3==i:
print(i)
4.4 break、continue与else语句
流程控制语句break
用于结束循环结构,通常与分支机构if一起使用。
#代码示例1
for item in range(3):
pwd=input('请输入密码: ')
if pwd=='888':
print('密码正确!')
break
else:
print('密码错误,请再次输入!')
#代码示例2
a=0
while a<3:
pwd=input('请输入密码: ')
if pwd=='888':
print('密码正确!')
break
else:
print('密码错误,请重新输入!')
a+=1
流程控制语句continue
用于结束当前循环,进入下一次循环,通常与分支结构中的if一起使用。
#代码示例 输出1到50之间所有5的倍数
print('输出1到50之间所有5的倍数')
for item in range(1,51):
if item%5:
continue
else:
print(item)
else语句
三种情况
if (条件不成立时执行else)
while(循环结束,没有遇到break时执行else)
a=0
while a<3:
pwd=input('请输入密码: ')
if pwd=='888':
print('密码正确!')
break
else:
print('密码错误!')
a+=1
else:
print('对不起,三次密码均输入错误!')
for(循环结束,没有遇到break时执行else)
for item in range(3):
pwd=input('请输入密码: ')
if pwd=='888':
print('密码正确!')
break
else:
print('密码错误!')
else:
print('对不起,三次密码均输入错误!')
4.5 嵌套循环
循环结构中又嵌套了另外的完整循环结构,其中内层循环作为外层循环的循环体执行。
#代码示例1
print('输出一个三行四列的矩形')
for i1 in range(3):
for j1 in range(4):
print('*',end='')
print()
#代码示例2
print('打印一个直角三角形')
for i2 in range(9):
for j2 in range(i2):
print('*',end='')
print()
#代码示例3
print('打印九九乘法表')
for i3 in range(1,10):
for j3 in range(1,i3+1):
print(i3,'*',j3,'=',i3*j3,end='\\t')
print()
二重循环中的break和continue用于控制本层循环。
5、对象的布尔值
python一切皆对象,所有对象都bool()有一个布尔值。
获取对象的布尔值函数。
以下对象的布尔值为False,其他对象的布尔值为True:
#False
print(bool(False))
#数值0
print(bool(0))
print(bool(0,0))
#None
print(bool(None))
#空字符串
print(bool('')
print(bool("")
#空列表
print(bool([]))
print(bool(list()))
#空元组
print(bool(()))
print(bool(tuple()))
#空字典
print(bool(dirct()))
#空集合
print(bool(set()))
#布尔值为True
print(bool(18))
print(bool(True))
print(bool('helloworld'))
6、pass空语句
语句什么都不做,只是一个占位符,用在语法上需要语句的地方。
适用情况:先搭建语法结构,还没想好代码怎么写时
常与以下语句一起使用:
- if语句的条件执行体
- for-in 语句的循环体
- 定义函数时的函数体