1.程序的分支结构
1.1.单分支结构
如果判断成立,则执行
语法:
if <条件>: <语句块>
示例:
guess = evel(input()) if guess == 99: print("猜对了")
如果guess等于99,那么输入”猜对了“
1.2.二分支结构
根据判断条件结果而选择不同向前路径的运行方式
语法:
if <条件>: <语句块1> else : <语句块2>
示例:
guess = eval(input()) if guess == 99: print("猜对了") else: print("猜错了")
如果输入的数字等于99,则输出猜对了,否则输出猜错了
紧凑形式:适用于简单的表达式的二分支结构
语法:
<表达式1> if <条件> else <表达式2>
示例:
guess = eval(input()) print("猜{}了".format("对" if guess==99 else "错"))
1.3.多分支结构
根据多个条件来选择不同语句块运行的一种分支结构
语法:
if <条件>: <语句块1> elif: <语句块2> ... ... else: <语句块3>
示例:
score = eval(input()) if score >= 90: grade = "A" elif score >= 80: grade = "B" elif score >= 70: grade = "C" elif score >= 60: grade = "D" else: grade = "不及格" print("请输入成绩属于级别{}".format(grade))
- else:在不发生异常时执行
- finally:一定执行
1.4.条件判断与组合
操作符:
- “>”:大于
- “<”:小于
- “==”:等于
- “>=”:大于等于
- “<=”:小于等于
- “!=”:不等于
与数学符号类似
条件组合:
- “and”:与
- “or”:或
- “not”:非
1.5.异常处理
语法:
try : <语句1> except : <语句2>
2.实例:身体质量指数BMI
BMI是国际常用的衡量人体肥胖与健康程度的重要标准
公式:BMI = 体重kg / 身高m²
代码:
height = float(input("请输入您的身高(单位:米):")) weight = float(input("请输入您的体重(单位:千克):")) bmi = weight / (height ** 2) print("您的BMI指数为:{:.2f}".format(bmi)) who = "" if bmi < 18.5: who = "偏瘦" elif 18.5 <= bmi < 24: who = "正常" elif 24 <= bmi < 28: who = "偏胖" elif 28 <= bmi < 30: who = "肥胖" else: who = "输入错误" print("BMI指数为:{0}".format(who))
结果:
请输入您的身高(单位:米):1.7 请输入您的体重(单位:千克):67 您的BMI指数为:23.18 BMI指数为:正常
3.程序的循环结构
程序循环内容分为:
- 遍历循环
- 无限循环
- 循环控制保留字
- 循环的高级用法
3.1.遍历循环
语法:
for <循环变量> in <遍历结构>: <语句块>
- 从遍历结构中逐一提取元素,放在循环变量中
- 由保留字for和in组成,完整遍历所有元素后结束
- 每次循环,所获得元素放入循环变量,并执行一次语句块
计数循环:
for i in range(N): <语句块>
把语句块内容执行N次
for i in range(M,N,K): <语句块>
特定次:
示例:
for i in range(1,5): print(i) 1 2 3 4 for i in range(1,6,2): print(i) 1 3 5
列表遍历循环:
for item in ls: <语句块>
ls是一个列表,遍历其每个元素,产生循环
示例:
for item in [123, "python", 456]: print(item, end=",") 123,python,456,
文件遍历循环:
for line in fi: <语句块>
fi是一个文件,会循环文件中的每一行
3.2.无限循环
由条件控制的循环运行方式
语法:
while <条件>: <语句块>
- 反复执行语句块,直到条件不满足为止
3.3.循环控制保留字
break和continue
- break:跳出并结束当前整个循环,执行循环后语句
- continue:结束当次循环,继续执行后续次数循环
示例:continue
for i in "python": if i == "t": continue print(i, end="") # 结果没有t pyhon
示例:break
for i in "python": if i == "t": break print(i, end="") # 遇到t结束 py
示例:while
s = "python" while s != "": for c in s: print(c, end="") s = s[:-1] # 结果依次少1位 pythonpythopythpytpyp # 加上break s = "python" while s != "": for c in s: if c == "t": break print(c, end="") s = s[:-1] # 结果 pypypypypypypypypy
3.4.循环高级用法
循环与else结合
语法:
for <循环变量> in <遍历结构>: <语句块1> else: <语句块2>
示例:
for c in "python": if c == "t": break print(c, end="") else: print("正常退出") # 结果 py
4.random库基本使用
random是使用随机数的python标准库
伪随机数:采用梅森旋转算法生成的伪随机序列中元素
random用于生成随机数
使用import random
导入
random包括两类函数:
- 基本随机数函数:seed(),random()
- 扩展随机数函数:randint(),getrandbits(),uniform(),randrange(),choice(),shuffle()
4.1.基本随机数函数
- seed:初始化给定的随机数种子
- random:生成一个0.0-1.0之间的随机小数
示例:
import random random.seed(10) print(random.random()) # 结果 0.5714025946899135
4.2.扩展随机数函数
- randint(a, b):生成一个[a,b]之间的整数
- randrange(m, n[, k]):生成一个从[m, n]之间以k为步长的随机整数
- getrandbits(k):生成一个以k比特长的随机整数
- uniform(a, b):生成一个随机小数
- choice(seq):从序列seq中随机选择一个元素
- shuffle(seq):将序列seq中元素打乱排序,输出排序后结果
5.实例:圆周率计算
代码:公式法
pi = 0 N = 100 for k in range(N): pi += 1/pow(16,k)*( \ 4/(8*k+1) - 2/(8*k+4) - \ 1/(8*k+5) - 1/(8*k+6) ) print("圆周率值是: {}".format(pi))
代码:蒙特卡罗方法
from random import random from time import perf_counter DARTS = 1000*1000 hits = 0.0 start = perf_counter() for i in range(1, DARTS+1): x, y = random(), random() dist = pow(x ** 2 + y ** 2, 0.5) if dist <= 1.0: hits = hits + 1 pi = 4 * (hits/DARTS) print("圆周率值是: {}".format(pi)) print("运行时间是: {:.5f}s".format(perf_counter() - start))