Python基础(四)


程序的控制结构

程序的分支结构

单分支结构

二分支结构

紧凑形式:<表达式1> if <条件> else <表达式2>

多分支结构

条件判断及组合

程序的异常处理

try:
    <语句块1>
except:
    <语句块2>
try:
    num=int(input("请输入一个整数:"))
    print(num**2)
except:
    print("输入的不是整数")
try:
    <语句块1>
except <异常类型>:#标注异常名称之后只响应此类异常、异常类型名字等同于变量名
    <语句块2>
try:
    num=int(input("请输入一个整数:"))
    print(num**2)
except NameError:
    print("输入的不是整数")
#异常处理的高级使用
try:
    <语句块1>
except:
    <语句块2>
else:	#else对应的语句块在不发生异常时执行
    <语句块3>
finally:	#finally对应的语句块一定执行
    <语句块4>

实例:身体质量指数BMI

程序的循环结构

遍历循环

range()函数产生数字序列

range(M,N,K) M起点,N-1终点,K步长

无限循环

循环控制保留字

循环的高级使用

for <变量> in <遍历结构> :
    <语句块1>
else:    
    <语句块2>
while <条件>:
    <语句块1>
else:
    <语句块2>
  • 当循环没有被break语句退出时,执行else语句块
  • else语句块作为”正常“完成循环的奖励
  • 这里else的用法和异常处理中else用法相似

实例:圆周率的计算

蒙特卡罗方法:

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=(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))

公式法:

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))

random库简介

  • 伪随机数:采用梅森旋转算法生成的(伪)随机序列中元素
  • random库主要用于生成随机数
    • 基本随机数函数:seed(), random()
    • 扩展随机数函数:randint(), getrandbits(), uniform(), randrange(), choice(), shuffle()
函数 描述
seed(a=None) 初始化给定的随机数种子,默认为当前系统时间
>>>random.seed(10)#产生种子10对应的序列
random() 生成一个[0.0, 1.0]之间的随机小数
>>>random.random()
randint(a,b) 生成一个[a,b]之间的整数
randrange(m,n[,k]) 生成一个[m,n)之间以k为步长的随机整数
>>>random.randrange(10,100,10)
80
getrandbits(k) 生成一个k比特长的随机整数
uniform(a,b) 生成一个[a,b]之间的随机小数
choice(seq) 从序列seq中随机选择一个元素
shuffle(seq) 将序列seq中元素随机排列,返回打乱后的序列

参考资料

https://www.icourse163.org/learn/BIT-268001?tid=1207014257#/learn/content?type=detail&id=1212094138&cid=1215248214

https://www.icourse163.org/learn/BIT-268001?tid=1207014257#/learn/content?type=detail&id=1212094138&cid=1215248215

https://www.icourse163.org/learn/BIT-268001?tid=1207014257#/learn/content?type=detail&id=1212094138&cid=1215248216

https://www.icourse163.org/learn/BIT-268001?tid=1207014257#/learn/content?type=detail&id=1212094138&cid=1215248217

https://www.icourse163.org/learn/BIT-268001?tid=1207014257#/learn/content?type=detail&id=1212094138&cid=1215248218

https://www.icourse163.org/learn/BIT-268001?tid=1207014257#/learn/content?type=detail&id=1212094138&cid=1215248219


文章作者: Amonologue
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Amonologue !
  目录