《Python语言程序设计基础》第四章笔记

4.1 程序的分支结构

4.1.1 单分支结构

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

    if True:
     print(“条件正确”)

4.1.2 二分支结构

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

    if True:
     print(“语句块1”)
    else :
      print(“语句块2”)

  • <表达式1> if <条件> else <表达式2>
    guess = eval(input())
    print(“猜{}了”.format(“对” if guess==99 else “错”))

4.1.3 多分支语句

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

4.1.4 程序的异常处理

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

异常处理示例1

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

示例2

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

注:标注异常类型后,仅响应该异常, 异常类型名字等同于变量

异常处理的高级使用
try :
 <语句块1>
except :
 <语句块2>
else :
 <语句块3>
finally :
 <语句块4>

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

4.2 "身体质量指数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}', 国内'{1}'".format(who, nat))

重点在于同时输出国际和国内对应的分类

4.3 程序的循环结构

4.3.1 遍历循环
遍历某个结构形成的循环运行方式

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

由保留字for和in组成,完整遍历所有元素后结束
每次循环,所获得元素放入循环变量,并执行一次语句块

  • 计数循环(N次)
    从0开始

    for i in range(N) :
     <语句块>

  • 计数循环(特定次)
    遍历由range()函数产生的数字序列,产生循环
    从M开始到N结束,步长为K,大于N则不执行

    for i in range(M,N,K) :
      <语句块>

  • 字符串遍历循环
    s是字符串,遍历字符串每个字符,产生循环

    for c in s :
      <语句块>

例:

	>>> for c in "Python123": 
			print(c, end=",")
	
P,y,t,h,o,n,1,2,3,
  • 列表遍历循环
    ls是一个列表,遍历其每个元素,产生循环

for item in ls :
  <语句块>

例:

	>>> for item in [123, "PY", 456] : 
			print(item, end=",")
	
123,PY,456,

4.3.2 无限循环

while <条件> :
  <语句块>

反复执行语句块,直到条件不满足时结束

4.3.3 循环控制保留字

  • break 和 continue

break跳出并结束当前整个循环,执行循环后的语句
break仅跳出当前最内层循环
continue结束当次循环,继续执行后续次数循环
break和continue可以与for和while循环搭配使用

例1:

	>>> for c in "PYTHON" : 
			if c == "T" : 
				break 
			print(c, end="")
	
输出结果:PY

例2:

	>>> s = "PYTHON" 
	>>> while s != "" : 
			for c in s : 
				if c == "T" : 
					break 
				print(c, end="") 
			s = s[:-1]
	
输出结果:PYPYPYPYPYP

4.3.4 循环的高级用法

  • 循环与else
    for <变量> in <遍历结构> :
      <语句块1>
    else :
      <语句块2>

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

当循环没有被break语句退出时,执行else语句块
else语句块作为"正常"完成循环的奖励
这里else的用法与异常处理中else用法相似

例1:

>>> for c in "PYTHON" : 
		if c == "T" : 
			continue 
		print(c, end="") 
	else:
		print("正常退出") 

PYHON正常退出

例2:

>>> for c in "PYTHON" : 
		if c == "T" : 
			break
		print(c, end="") 
	else:
		print("正常退出") 

PY

4.4 random库基本介绍

  • random库是使用随机数的Python标准库
  • random库包括两类函数,常用共8个
    基本随机数函数: seed(), random()
    扩展随机数函数: randint(), getrandbits(), uniform(), randrange(), choice(), shuffle()

4.4.1 随机数函数

函数描述
基本随机数函数
seed(a=None)初始化给定的随机数种子,默认为当前系统时间     >>>random.seed(10) #产生种子10对应的序列
random()生成一个[0.0, 1.0)之间的随机小数
扩展随机数函数
getrandbits(k)生成一个k比特长的随机整数
uniform(a, b)生成一个[a, b]之间的随机小数
choice(seq)从序列seq中随机选择一个元素
shuffle(seq)将序列seq中元素随机排列,返回打乱后的序列

4.5 "圆周率的计算"实例讲解

  • 1、近似公式法
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))
  • 2、蒙特卡罗方法
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))

			—————本文整理自《Python语言程序设计》
						嵩天
					北京理工大学
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值