python:4.程序的控制结构

4.1程序的分支结构
4.2实例:身体质量指数BIM
4.3程序的循环结构:for;while;
4.4 random()
4.5 实例: 圆周率的计算

4.1

单分支 if 二分支 if-else 多分支 if-elif-else
条件判断:
	<;<=;>=;>;==;!=
条件组合:
	x and y  逻辑与
	x or  y  逻辑或
	  not x	 逻辑取非
		EG: if guess >9 or guess <9:
			print("错了")
    		     else:
			print("对了")
异常处理:
	try:
		<语句块1>
	except [,<异常类型>]:
		<语句块2>
	else:
		<语句块3>   ---else在不发生异常时执行
	finally:
		<语句块4>   ---finally一定执行
		EG:     try:
				num=eval(input("输入一个整数")
				print(num**2)
			except:
				print("输入不是整数")

4.2

身体质量指数 BMI  衡量人体肥胖和健康的重要标准
	BMI=体重(kg)/身高^2(m^2)
输入体重和身高
输出国际和国内标准

#TextProBarV13.py
height,weight=eval(input(“请输入身高(米)和体重(公斤)【逗号隔开】:”))
bmi=weight/pow(height,2)
print(“BMI{:.2f}”.format(bmi))
who,nat="",""
if bmi<18.5:
who,nat=“偏瘦”,“偏瘦”
elif 18.5<=bmi<24:
who,nat=“正常”,“正常”
elif 24<=bmi<25:
who,nat=“正常”,“偏胖”
elif 25<=bmi<28:
who,nat=“偏胖”,“偏胖”
elif 28<=bmi<30:
who,nat=“偏胖”,“肥胖”
else:
who,nat=“肥胖”,“肥胖”
print(“BMI指标为:国际’{0}’,国内’{1}’”.format(who,nat))

4.3

-----------------遍历循环for---------------------------------------(条件循环)无限循环while
for <循环变量> in <遍历结构>:
<语句块>
for i in range(M,N,K):
<语句块> 从M开始 不到N 间隔K k可省略
1.字符串遍历循环
for c in s: s----字符串 c ----每个字符
EG: for c in “Python123”:
print(c,end=",")
2.列表遍历循环
for item in ls:
<语句块> ls是一个列表,遍历其每个元素,产生循环
EG: for item in [123,“PY”,456]
print(item,end=",")
3.文件遍历循环
for line in fi:
<语句块> fi是一个文件标识符,遍历其每行,产生循环
EG: for line in

while <条件>:
	<语句块>
						EG:	s="PYTHON"
							while s!="":
								for c in s:
									print(c,end="")
								s=s[:-1]   #去掉最后一个字符
循环与else
	循环:
	else:
		<语句块>
当循环没有被break语句退出时,执行else语句块  else作为“正常”完成循环的奖励  与异常处理中的else相似

4.4

random库   随机数的Python标准库
random.<b>
基本随机函数:  seed()  				random()
		默认种子为系统时间 种子相同 随机数相同				
扩展随机数函数:randint(a,b)				,randrange(m,n[,k])		
		a-b之间的整数				生成[m,n)之间以k为间隔的随机整数
		,getrandbits(k) 			,uniform(a,b)
		k比特长的随机整数			[a,b]之间的随机小数
		,choice(seq)				,shuffle(seq)
		从序列seq中随机选择一个元素		将序列seq中随机排列,返还打乱后的序列
						s=[1,2,3,4,5,6];random.shuffle(s);print(s)  #一行时要加分号

4.5

1.公式计算

#CalPiv1.py
pi=0
N=100
for k in range(N):
pi+=1/pow(16,k)(
4/(8
k+1) - 2/(8k+4) -
1/(8
k+5) - 1/(8*k+6))
print(“圆周率值是:{}”.format(pi))

2.蒙特卡罗方法  (撒点过程)

#CalpiV2.py
from random import random
from time import perf_counter
DARTS=10001000
hits=0.0
start=perf_counter()
for i in range(1,DARTS+1):
x,y=random(),random()
dist=pow(x2+y2,0.5)
if dist<=1.0:
hits=hits+1
pi=4
(hits/DARTS)
print(“圆周率为:{}”.format(pi))
print(“运行时间为:{}”.format(perf_counter()-start))

错题:
条件循环也叫无限循环
使用while能够实现循环计数
for循环必须知道循环的次数,而while循环循环的次数可以是不确定的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值