分支结构
单分支结构
if <条件>:
<语句块>
判断条件是否执行,条件true则执行语句块。
二分支结构
if <条件>:
<语句块1>
else:
<语句块2>
如果条件成立执行语句块1,否则执行语句块2。
多分支结构
if <条件1>:
<语句块1>
elif<条件2>:
<语句块2>
……
else:
<语句块n>
判断不同的条件,对应执行不同的语句块。
分支实例
用国内国际不同标准测量身体BMI指数
h,w = eval(input("请输入身高(米)体重(公斤),用逗号隔开:"))
bmi = w/pow(h,2)
print("bmi指数为:{:.2f}".format(bmi))
gn,gw="",""
if bmi<18.5:
gn,gw = "偏瘦","偏瘦"
elif 18.5<=bmi<24:
gn,gw = "正常", "正常"
elif 24<=bmi<25:
gn,gw = "偏胖", "正常"
elif 25<=bmi<28:
gn,gw = "偏胖", "偏胖"
elif 28<=bmi<30:
gn,gw = "肥胖", "偏胖"
else:
gn,gw = "肥胖", "肥胖"
print("bmi指标为国内{0},国际{1}".format(gn,gw))
循环结构
遍历循环 for
一般结构:
for <循环变量> in <遍历结构>:
<语句块>
计数循环(N次):
从M开始到N-1次结束,步长为K。
for i in range(M,N,K):
<语句块>
字符串遍历循环:
s为字符串。
for c in s:
<语句块>
列表遍历循环:
ls为列表。
for item in ls:
<语句块>
无限循环 while
一般结构:
while <条件>:
<语句块>
循环控制保留字
break 和 continue
break:跳出并结束当前循环,执行循环后的语句。
continue:结束当次循环,继续执行后续次数循环。
下面有两个例子感受一下:
for c in "python":
if c == "t":
continue
print(c,end="")
跳过当次的循环,继续执行之后的循环。
for c in "python":
if c == "t":
break
print(c,end="")
当层的整个循环都结束。
random库
import random
函数 | 描述 |
---|---|
seed(a=None) | 初始化给定的随机种子,默认为当前的系统时间 |
random() | 生成一个[0.0,1.0]之间的随机小数 |
randint(a,b) | 生成一个[a,b]之间的随机整数 |
randrange(m,n,k) | 生成一个[m,n)之间以k为步长的随机整数 |
getrandbits(k) | 生成一个k比特长的随机整数 |
uniform(a,b) | 生成一个[a,b]之间的随机小数 |
choice(seq) | 从序列seq中随机选择一个元素 |
shuffle(seq) | 将序列seq中元素随机排列,返回打乱后的序列 |
圆周率计算实例
蒙特卡罗方法:
import random
import time
DARTS = 1000*1000
hits = 0.0
start = time.perf_counter()
for i in range(1,DARTS+1):
x,y = random.random(),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(time.perf_counter()-start))