Python基础之程序设计结构
27 Oct 2017 程序设计基本结构包括:顺序结构、选择结构、循环结构,Python中任何算法都可以通过这3种基本结构的排列组合来实现。
在介绍Python程序设计结构之前,童鞋们需要储备程序流程图的相关知识如下:
据此,Python程序设计3种基本结构的流程图如下:
· 顺序结构实例
顺序结构其实贯穿于所有的Python程序之中,这里给出一个“Hello World”的小例子
#Input输入数据
str1 = "Hello"
str2 = "World"
#Process处理数据
str_add = str1+" "+str2
#Output输出数据
print(str_add)
· 选择结构实例
选择结构包含:多分支(if…elif…else…)和异常处理(try…except…),由于异常处理机制对于数分师来说并不是重点,因此这里不再赘述,有兴趣的童鞋请参阅:Python异常处理
接下来,举一个选取最大值的实例,以帮助童鞋理解Python选择结构中的多分支问题。实例需求:从x1,x2,x3三个数中,选取最大的数并输出。
# 共4种解决方法,代码由繁琐到简洁依次排列
x1=1
x2=2
x3=3
# ==== 通盘比较 ====
if x1>x2 and x1>x3:
max_n=x1
elif x2>x1 and x2>x3:
max_n=x2
else:
max_n=x3
# ==== 决策树 ====
if x1>x2:
if x1>x3:
max_n=x1
elif x2>x3:
max_n=x2
else:
max_n=x3
# ==== 顺序处理 ====
max_n = x1
if x2>max_n:
max_n=x2
if x3>max_n:
max_n=x3
print(max_n)
# ==== Python内置函数 ====
max_n=max(x1,x2,x3)
#输出结果
print(max_n)
3
· 循环结构实例
期望用Python编译循环结构实例,首先要了解循环类型和循环控制语句,循环类型包括for循环和while循环两种,其配套的循环控制语句也有break语句和continue语句两种,详情可参考: Python循环语句
循环类型 | 样例描述 |
---|---|
for循环 | for <变量> in <序列>: <执行语句>执行语句>序列>变量> |
while循环 | while <判断条件>: <执行语句>执行语句>判断条件> |
循环控制语句 | 样例描述 |
---|---|
break语句 | 循环执行过程中终止并且跳出整个循环 |
continue语句 | 循环执行过程中终止并且跳出该次循环,执行下次循环 |
这里给出计算平均值的实例,各位可以比较一下不同代码之间的优劣性,实例如下:
# ==== for循环 ====
n = eval(input("how many numbers?"))
sum = 0
for i in range(n):
x = eval(input("enter a number >>"))
sum += x
print("\nThe average is",sum/n)
# 输出结果
how many numbers?3
enter a number >>10
enter a number >>20
enter a number >>30
The average is 20.0
# 缺点:需要提前定义输入数据的个数
# ==== while循环 ====
sum = 0
count = 0
moredata = "yes"
while moredata[0] == "y": #moredata首字母为y,执行循环
x = eval(input("enter a number >>"))
sum += x
count += 1
moredata = input("do you have more numbers(yes or no)?")
print("\nThe average is",sum/count)
# 输出结果
enter a number >>10
do you have more numbers(yes or no)?y
enter a number >>20
do you have more numbers(yes or no)?y
enter a number >>30
do you have more numbers(yes or no)?n
The average is 20.0
# 缺点:虽无需计数,但又总被提示信息打扰
# ==== while哨兵循环 ====
sum = 0
count = 0
xStr = input("enter a number (<ENTER> to quit) >>") #while执行前需定义xStr
while xStr != "": #xStr为空时,退出循环
x = eval(xStr)
sum += x #若将x换成xStr,当xStr为空时,表达式不成立
count += 1
xStr = input("enter a number (<ENTER> to quit) >>")
print("\nThe average is",sum/count)
# 输出结果
enter a number (<ENTER> to quit) >>10
enter a number (<ENTER> to quit) >>20
enter a number (<ENTER> to quit) >>30
enter a number (<ENTER> to quit) >>
The average is 20.0
# 缺点:需用户手动输入数据,不能自动读取文件数据
# ==== 文件循环 ====
# average1.txt 文件内容如下
10
20
30
fileName = "D:\\average1.txt" #读取D盘中的txt文件
infile = open(fileName,'r')
sum = 0
count = 0
for line in infile:
sum = sum + eval(line)
count = count + 1
print("\nThe average is",sum/count)
# 输出结果
The average is 20.0
# ==== 嵌套循环 ====
# average2.txt 文件内容如下
10,20,30
fileName = "D:\\average2.txt"
infile = open(fileName,'r')
sum = 0
count = 0
line = infile.readline()
while line != "": #外循环:对每行循环一次
for xStr in line.split(","): #内循环:对一行中每个数字循环一次
sum = sum +eval(xStr)
count = count +1
line = infile.readline()
print("\nThe average is",sum/count)
# 输出结果
The average is 20.0
分类: Python技术