第三章 程序流程控制
1. 顺序结构
例3.1 顺序结构
import math
a = float(input("请输入三角形边长a:"))
b = float(input("请输入三角形边长b:"))
c = float(input("请输入三角形边长c:"))
h = (a+b+c)/2
area = math.sqrt(h*(h-a)*(h-b)*(h-c));\
print(str.format("三角形三边分别为:a={0},b={1},c={2}",a,b,c))
print(str.format("三角形的面积={0}",area))
2. 选择结构
- if语句
条件表达式最后被评价为bool值:
False—数值类型(0)、空字符串(“”)、空列表([ ])、空字典({ })、空元组(( ))
True—其他情况
例3.2 单分支结构
a = int(input("请输入第一个整数:"))
b = int(input("请输入第二个整数:"))
print(str.format("输入值:{0},{1}",a,b))
if(a<b):
t = a
a = b
b = t
print(str.format("降序值:{0},{1}",a,b))
例3.3 双分支结构
if (x >= 0)
y=math.sin(x)+2*math.sqrt(x+math.exp(4))-(x+1)**3 #x的立方根克表示为math.pow(x,3)
else:
y=math.log(-5*x)-math.fabs(x*x-8*x)/(7*x)+math.e
条件运算语句
y = (math.sin(x)+2*math.sqrt(x+math.exp(4))-(x+1)**3) if((x>=0)) else \
(math.log(-5*x)-math.fabs(x*x-8*x)/(7*x)+math.e)
例3.4 多分支结构
x = int(input("请输入x坐标:"))
y = int(input("请输入y坐标:"))
if(x==0 and y==0): print("位于原点")
elif(x==0): print("位于y轴")
elif(y==0): print("位于x轴")
elif(x>0 and y>0): print("位于第一象限")
elif(x<0 and y>0): print("位于第二象限")
elif(x<0 and y<0): print("位于第三象限")
else: print("位于第四象限")
例3.5 if语句的嵌套
if(x>=0):
if(x>0): y=1
else: y=0
else:y=-1
3. 循环结构
- 可迭代对象(iterable):一次返回一个元素,因此适用于循环。
包括:序列(sequence)—字符串,列表,元组等;字典;文件对象;迭代器对象;生成器函数。
迭代器是一个对象,表示可迭代的数据集合,可以实现迭代功能,包括方法–iter–()和–next–()。
生成器是一个函数,使用yield语句,每次产生一个值,也可以用于循环迭代。 - range对象(迭代器对象)
range(start , stop[ , step])
例3.6
for i in range(1,11): print(i,end= ' ')
#输出: 1 2 3 4 5 6 7 8 9 10
for i in range(1,11,3): print(i,end= ' ')
- for 循环
for 变量 in 对象集合:
循环体语句/语句块
例3.7
for i in (1,2,3):
print(i,i**2,i**3)
#输出
1 1 1
2 4 8
3 9 27
- while循环
while (条件表达式):
循环体语句/语句块
例3.8
import math
i=1; e=1; t=1
while(1/t >= math.pow(-10,6)):
t *= i
e += 1/t
i += 1
print("e =", e)
- 循环的嵌套:多层循环结构中两种循环语句(for、while)可以相互嵌套,多重循环的循环次数等于没每一重循环次数的乘积。
# 打印九九乘法表1
for i in range(1, 10):
s = “”
for j in range(1,10):
s += str.format("{0:1}*{1:1} = {2:<2}", i, j ,i*j)
print(s)
# 打印九九乘法表2
for i in range(1, 10):
s = “”
for j in range(1,10):
if(i>=j):
s += str.format("{0:1}*{1:1} = {2:<2}", i, j ,i*j)
print(s)
# 打印九九乘法表3
for i in range(1, 10):
s = “”
for j in range(1,10):
if(i<=j):
s += str.format("{0:1}*{1:1} = {2:<2}", i, j ,i*j)
print(s)
- break语句:提前结束循环,跳出最近的一层循环。
- continue语句:结束本次循环,跳过循环体内continue下面尚未执行的语句,返回到循环的起始处。
- else语句:若for、while语句没有被break终止,则执行else子句
for 变量 in 对象集合:
循环体语句/语句块
else:
语句(块)
while (条件表达式):
循环体语句/语句块
else:
语句(块)
- 补充P50:
enumerate()函数可在for循环中使用索引下标访问集合元素
zip( )函数可并行遍历多个可迭代对象zip(x,y)
map( )函数可遍历多个迭代对象并使用指定函数处理对应的元素map(func,seq1[,seq2,...])
补充记录用法
- format()
print(str.format("{0:6}{1:6}", f1, f2),end = " ") #每次输出两个数,每个数占6位,以空格分隔
print("第{0}季节:{1}".format(i,s))
print(str.format("{0:<5}", end=" ")) #每个数占5个位置,不足的后面加空格,并且不换行
- print() 可用来换行
本文详细介绍了Python的程序流程控制结构,包括顺序结构、选择结构(if语句及其单分支、双分支、多分支形式)、循环结构(for、while循环及循环嵌套),并展示了各种结构的实例代码。此外,还提到了break、continue和else在循环中的用法,以及enumerate、zip和map等函数的使用。
7761

被折叠的 条评论
为什么被折叠?



