第4章 程序的控制结构

第4章 程序的控制结构

顺序结构、分支结构、循环结构

程序的分支结构

单分支结构

if <条件>:
<语句块>

二分支结构

if <条件>:
<语句块>
else:
<语句块>

guess = eval(input()) 
if guess == 99:
	print("true")
else:
	print("false")
紧凑型二分支结构

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

多分支结构

if <条件>:
<语句块>
elif <条件2>:
<语句块2>
……
else:
<语句块>

条件判断及组合


程序的异常处理

try:
<语句块1>
except:
<语句块2>

try:
<语句块1>
except <异常类型>:
<语句块2>

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

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

  • finally对应语句块4一定执行
  • else对应语句块3在不发生异常时执行

BMI

BMI=体重(Kg)/身高2(m2)

try:
	height=eval(input("请输入身高:"))
	weight=eval(input("请输入体重:"))
except:
	print("请输入有效数值!")
else:
	bmi=weight/(height**2)
	print("bmi值为{:.2f}".format(bmi))
who=""
dom=""
if bmi<18.5:
  who="偏瘦"
  dom="偏瘦"
elif bmi>=18.5 and bmi<24:
  who="正常"
  dom="正常"
elif bmi>=24 and bmi<25:
  who="正常"
  dom="偏胖"
elif bmi>=25 and bmi<28:
  who="偏胖"
  dom="偏胖"
elif bmi>=28 and bmi<30:
  who="偏胖"
  dom="肥胖"
else:
  who="肥胖"
  dom="肥胖"
print("BMI指标为:国际:{0},国内:{1}".format(who,dom))

程序的循环结构

遍历循环

数字遍历

for <循环变量> in <遍历结构>:
<语句块>
range(N):产生数字序列,产生循环

字符串遍历

for c in s:
<语句块>
c是字符,s是字符串

列表遍历

for item in ls:
<语句块>
ls是列表,item是列表元素

文件遍历

for line in fi:
<语句块>
line是文件中的一行,fi是一个文件标示符,遍历其每行,产生循环

无限循环

while <条件>:
<语句块>

a=3
while a>0:
	a=a-1
	print(a)

control+C退出循环

循环控制保留字

break

跳出当前循环,跳出当前最内层循环

continue

跳出本次循环,跳出当次循环

循环的高级用法

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

random库

基本随机函数

seed(<种子>)
random()

根据程序需求确定是否需要种子,如果需要复刻值,一般都需要

拓展随机数函数



圆周率的计算

from random import random
from math import sqrt
from time import perf_counter
DARTS=10000*10000
hits=0.0
start=perf_counter()
for i in range(1,DARTS+1):
  x,y=random(),random()
  dist=sqrt(x**2+y**2,0.5)
  if dist<=1.0:
    hits+=1
pi=4*(hits/DARTS)
print("pi的值为:{:.10f}".(pi))
print("运行时间为:{:.5f}s".format(perf_counter()-start))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

liangpi_hero

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值