python 学习第四天

程序的分值结构

  1.单分值结构

    if <条件>:

     <语句块>

  2.二分支结构

    if <条件>:

     <语句块>

    else:

     <语句块>

    二分支结构的紧凑形式:

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

      注意这里是表达式而不是语句块


  3.多分支结构

    

    if <条件>:

     <语句块>

    elif<条件>:

     <语句块>

    ...

    else:

     <语句块>

  4.条件判断及其组合

    

 

 

    

 

  5.程序的异常处理

    try:

      <语句块1>

    except <异常类型1>:            #可以不写异常类型,异常类型python预定义,不需要用单引号或者双引号

      <语句块2>

    else:                   #else可选

      <语句块3>               #当语句块2不执行的时候执行语句块3

    finally:                  #finally可选

      <语句块4>              #语句块4一定执行

    当语句块1中的代码执行时发生异常类型1时则执行语句块2中的内容,否则不执行语句块2

 

身体质量指数BMI  BMI=体重(kg)/身高^2(m^2)

#CalBMI.py
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

    for <循环变量> in <遍历结构>:    #从遍历结构中逐一提取元素,放到循环变量里

      <语句块>

    常见应用:

      计数循环for i in range(n):  #执行n次  range(n)函数产生一个数字序列,从0~n-1  

          in range(m,n,k)    #从m开始,n结束(不包含n),步长为k

          in range(m,n)     #步长默认为1

      字符遍历for c in s:   #s是一个字符串,遍历字符串中的每个字符c

      对列表遍历for item in ls:   #ls是一个列表

      对文件进行遍历 for line in fi:  #fi是文件标识符,遍历其每行,产生循环

  2.无限循环,关键字while

     while <条件>:    #反复执行语句块,直到条件不满足,对于无限循环,可以用crtl+c退出执行

      <语句块>

  3.循环控制保留字break,continue,都可以和while,for搭配使用

  4.循环的高级用法

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

      <语句块1>

    else:          #当循环没有被break语句退出时,执行语句块2

      <语句块2>

 

    while <条件>:

      <语句块>

    else:          #当循环没有被break语句退出时,执行语句块2

      <语句块2>

random函数库

  random函数库与turtle库、time库一样都是标准库

  1.基本随机函数: seed()  random()

    seed(s)  初始化给定的随机数种子为s,默认为当前系统时间,相同种子可以得到相同随机数,可用于复现程序运行的结果

    random()  生成一个0~1之间的随机小数

  2.扩展随机函数:  randint()  getrandbits()  uniform()  randrange()  choice()  shuffle()

  randint(a,b)  随机生成一个[a,b]之间的整数

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

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

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

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

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

 

 

圆周率的计算

  蒙特卡罗方法

#CalPi.py
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))

  

posted @ 2020-05-25 14:29  9761滴  阅读(198)  评论(0)    收藏  举报