Python学习笔记(四):程序的控制结构

目录

1.程序的分支结构

1.1 单分支结构 (if)

1.2 二分支结构

1.3 多分支结构

1.4 条件判断及组合

1.5 实例:身体质量指数 BMI

2. 程序的循环结构

2.1 遍历循环

2.2 无限循环

2.3 循环控制保留字

2.4 循环的扩展

 3. Random库

4. 蒙特卡罗法计算圆周率


1.程序的分支结构

1.1 单分支结构 (if)

guess=eval(input())
if guess== 99:
    print("猜对了")

1.2 二分支结构

guess=eval(input())
if guess== 99:
    print("猜对了")
else:
    print("猜错了")

紧凑形式:适用于简单表达式的二分支结构(仅支持表达式形式,不支持赋值语句)

<表达式1> if <条件> else <表达式2>

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

1.3 多分支结构

score=eval(input())
if score >= 90:
    grade = "A"
elif score>=80:
    grade = "B"
elif score>=70:
    grade = "C"
elif score>=60:
    grade = "D"
print("输入成绩属于级别{}".format(grade))

1.4 条件判断及组合

操作符

 条件组合

1.5 实例:身体质量指数 BMI

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}',国内‘{0}’".format(who,nat))

2. 程序的循环结构

2.1 遍历循环

for <循环变量> in <遍历结构>:

        <语句块>

每次循环,所获得元素放入循环变量,并执行依次语句块

应用:

计数循环 for i in rang(N):

for i in range(M,N,K): 从M开始到N之前的整数,以K为步长

for i in range(1,6): i取值1,2,3,4,5

for i in range(1,6,2): i取值1,3,5

字符串遍历循环

for c in s:

s是字符串,遍历每个字符串

列表遍历循环

for item in ls:

ls为列表

文件遍历循环

for line in fi:

fi是一个文件标识符,遍历其每行,产生循环

2.2 无限循环

由条件控制的循环方式:反复执行语句块,直到条件不满足时结束

while <条件>:

        <语句块>

2.3 循环控制保留字

break 跳出并结束当前整个循环,执行循环后的语句

continue 结束当次循环,继续执行后续次数循环

二者都可以 for 和 while 搭配使用

break 仅跳出当前最内层循环,示例:

2.4 循环的扩展

for <循环变量> in <遍历结构>:

        <语句块1>

else:

        <语句块2>

while <条件>:

        <语句块1>

else:

        <语句块2>

当循环没有被break语句退出时,执行else语句块,else语句作为“正常”完成循环的奖励;

可以由此判断程序是否被break结束

 3. Random库

随机数的python标准库,生成随机数 import random

随机种子确定了随机序列的产生,下次程序运行,只要种子相同,产生的随机数也相同

基本随机数函数:

seed(a=None)

初始化给定的随机数种子,默认为当前的系统时间

random.seed(10) #产生种子10对应的序列

random()

生成一个[0.0,1.0)之间的随机小数

random.random()

扩展随机数函数:

randint(a,b)

生成一个[a,b]之间的整数

random.randint(10,100)

randrange(m,n,[,k])

生成一个[m,n)之间以k为步长的随机整数

random.randrange(10,100,10)结果为 随机数80

getrandbits(k)

生成一个k比特长的随机整数

random.getrandbits(16) 结果为 37885

uniform(a,b)

生成一个[a,b]之间的随机小数(小数点后16位)

random.uniform(10,100) 

choice(seq)

从序列seq中随机选择一个元素

random.choice([1,2,3,4,5,6,7,8,9])

shuffle(seq)

将序列seq中元素随机排列,返回打乱后的序列

s=[1,2,3,4,5,6]; random.shuffle(s);print(s)

输出打乱后的s

在python中需要将几行代码放在一行,需要用分号来分隔

4. 蒙特卡罗法计算圆周率

#蒙特卡罗法计算圆周率
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))
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值