一、程序的分支结构
1、单分支结构
根据判断条件结果而选择不同向前路径的运行方式
if <条件>:
<语句块>
单分支示例:
guess=eval(input())
if guess == 99: if Ture:
print("猜对了") print("条件正确")
2、二分支结构
根据判断条件结果而选择不同向前路径的运行方式
if <条件>:
<语句块1>
else :
<语句块2>
二分支示例:
guess = eval(input())
if guess == 99: if Ture:
print("猜对了") print("语句块1")
else: else:
print("猜错了") print("语句块2")
紧凑形式:适用于简单表达式的二分支结构
<表达式1> if <条件> else <表达式2>
guess = eval(input())
print("猜{}了".format("对"if guess==99 else "错"))
其中的对和错不是赋值而是表达式的一部分
注:if、else输出的不是语句而是表达式,语句为赋值形式的,有等号的,if、else不支持带等号的赋值形式。
3、多分支结构
根据多个判断条件来选择不同语句块运行的一种分支结构
if <条件>:
<语句块1>
elif :
<语句块2>
······
else :
<语句块2>
对不同分数分级的问题
score = eval(input())
if score >= 60:
grade = "D"
elif score >= 70: -注意多条件之间的包含关系
grade = "C" -注意变量取值范围的覆盖
elif score >= 80:
grade = "B"
elif score >= 90:
grade = "A"
print("输入成绩属于级别{}“.format(grade))
4、条件判断及组合
操作符
用于条件组合的三个保留字
操作符及使用 描述
x and y 两个条件x和y的逻辑 与
x or y 两个条件x和y的逻辑 或
not x 条件x的逻辑 非
5、程序的异常处理
try:
<语句1>
except:
<语句2>
实例:
try:
num=eval(input())
print(num**2)
expect NaneError:
print("输入的数字非整数")
高级异常处理:
try:
<语句1>
except:
<语句2>
else:
<语句3>
finally:
<语句4>
else为不发生异常时执行,finally为一定执行
二、程序的循环结构
1、遍历循环
定义:遍历某个结构形成的循环运行方式
for<循环变量>in<遍历结构>:
<语句块>
计数循环
基本:
for i in range(N)
print(i)
for i in range(5):
print(i)
for i in range(5):
print("hello",i)
变形:
for i in range(M,N,K):
print(i)
for i in range(1,6):
print(i)
for i in range(1,6,2)
print("hello",i)
字符串遍历循环
for c in s:
<语句块>
for c in "PYTHON123":
print(c,end=",")
列表遍历循环
for item in Is:
<语句块>
for item in[123,"PY",456]:
print(item,end=",")
文件遍历循环
for line in fi:
<语句块>
2、无限循环
定义:由条件控制的循环运行方式
有限:
a=3
while a >0:
a=a-1
print(a)
无限:
a=3
while a >0:
a=a+1
print(a)
3、循环控制保留字
常用:break continue
break:跳出并结束当前整个循环,执行循环后的内容
continue:结束档次循环,继续执行后续循环
break实例:
for c in “PYTHON123”:
if c=="T":
break
print(c,end="")
continue实例:
for c in "PYTHON123":
if c==“T”
continue
print(c,end="")
实例:
s="PYTHON"
while s!="":
for c in s:
print(c,end="")
s=s[:-1]
s="PYTHON"
while s!=""
for c in s:
if c=="T":
break
print(c,end="")
s=s[:-1]
4、循环的高级用法
可与else搭配
for c in "PYTHON123"
if c=="T"
continue
print(c,end="")
else:
print("正常退出")
for c in "PYTHON123"
if c=="T"
break
print(c,end="")
else:
print("正常退出")
三、random库的使用
定义:random库是使用随机数的标准库
分类:
随机函数
用法
seed(a=None)
初始化给定的随机数种子,默认为当前系统时间。
random.seed(10),产生种子10对应序列
random()
生成一个(0.0,1.0)之间的小数
random.random()
random(a,b)
生成a,b之间的整数
random.randint(10,100)
randrange(m,n,k)
生成(M,N)之间以K为步长的整数
random.randrange(10,100,10)
getrandbits(k)
生成 一个K比特长的随机整数
random.getrandbits(16)
uniform(a,b)
生成一个(a,b)之间的随机小数
random.uniform(10,100)
choice(seq)
从数列seq中随机选取一个元素
random.choice([1,2,3,4,5,6,7,8])
shuffle(seq)
将seq中元素随机排列,返回后打乱顺序
s=[1,2,3,4,5,6,7,8,9];random.shuffle(s);print(s)
实例:
import random
random.seed(10)
random.random()
四、圆周率的计算
公式法:
#CalPiV1.py
pi=0
N=100
for k in range(N):
pi+=1/pow(16,k)*(4/(8*k+1)-2/(8*k+5)-1/(8*k+6))
print("圆周率的值是:{}".format(pi))
蒙特卡罗法实例:
#CalPiV2.py
import random import random
form 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=1+hits
pi=4*(hits/DARTS)
print("圆周率的值是:{}".format(pi))
print("运行时间为:{:.5f}s".format(perf_counter()-start))