Python基础学习笔记(三)程序控制结构

Python基础学习笔记(三)程序控制结构

程序分支结构

根据条件选择不同向前的运行方式。

1、单分支结构

if <条件>:
	<语句>

2、二分支结构

if <条件>:
	<语句1>
else:
	<语句2>

#简单紧凑形式
<表达式1> if <条件> else <表达式2>

guess = eval(input())
print("猜{}了".format("对" if guess==99 else "错"))

3、多分支结构
注意多条件之间的包含关系
注意变量取值范围的覆盖关系

if <条件1>:
	<语句1>
elif <条件2>:
	<语句2>
else:
	<语句3>

4、条件判断

操作符描述
<小于
<=小于等于
>大于
>=大于等于
==等于
保留字描述
and逻辑与
or逻辑或
not逻辑非

5、异常处理

try:
	<希望运行的语句>
except<异常类型>:
	<出现异常执行的语句>

try:
	num = eval(input("请输入一个整数:"))
	print(num**2)
except:
	print("输入不是整数")

异常处理的高级使用
finally对应的语句一定执行;else对应的语句在不发生异常时执行。

try:
	<语句1>
except:
	<语句2>
else:
	<语句3>
finally:
	<语句4>

示例

#BMI计算以及判断
#分别获得国内国外标准
height, weight = eval(input("请输入身高(米)和体重(公斤)[逗号隔开]:"))
bmi = weight / pow(height, 2)
print("BMI指数为:{:.2f}".format(bmi))
who = ""
if bmi < 18.5:
	who = "偏瘦"
elif 18.5 <= bmi < 25:
	who = "正常"
elif 25 <= bmi < 30:
	who = "偏胖"
else:
	who = "肥胖"
print("BMI指标为国际'{0}'".format(who))

nat = ""
if bmi < 18.5:
	nat = "偏瘦"
elif 18.5 <= bmi < 24:
	nat = "正常"
elif 24 <= bmi < 28:
	nat = "偏胖"
else:
	nat = "肥胖"
print("BMI指标为国内'{0}'".format(nat))

#统一进行判断,将两个标准中覆盖的提取出来,不同的也区分出来
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))

程序循环结构

根据一定的条件重复进行语句。
1、遍历循环,遍历数字序列,字符串,类别,文件(每一行)等等。

for <遍历变量> in <遍历结构>:
	<语句>

2、无限循环
反复运行直到条件不满足。可用ctrl+c退出循环

while <条件>:
	<语句>

3、循环控制以及高级用法
break:跳出并结束当前整个循环,一个只能跳出一个循环,继续执行循环后的语句。
continue:结束当次循环,继续执行后续次数的循环。

高级用法:当循环没有被break语句退出时,执行else语句块。

for <遍历变量> in <遍历结构>:
	<语句1>
else:
	<语句2>

while <条件>:
	<语句1>
else:
	<语句2>

示例

#利用公式计算圆周率
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 += 1
pi = 4 * (hits/DARTS)
print("圆周率值是:{}".format(pi))
print("运行时间是:{:.5f}s".format(perf_counter()-start))

附-random库

使用随机数的python标准库,计算机产生的是伪随机数,采用梅森旋转算法生成的(伪)随机序列中的元素。
1、基本随机函数:
seed():初始化给定的随机数种子,默认为当前系统时间。需要再现过程就使用该函数设定种子。
random():生成一个[0.0,1.0]之间的随机小数。

2、扩展函数:
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中元素随机排列,返回打乱后的序列

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值