2021-07-26 Python嵩天MOOC学习笔记 第四周

第四周

一、程序的分支结构

单分支结构

if <>:
	<>
if True:
	<>(永远都会执行)

二分支结构:两种表达方式

if <>:
	<>
else:
	<>

<表达式1> if <条件> else <表达式2>
#表达式1为True的执行结果 2为False
例子:
guess = eval(input())
print("猜{}了".format("对"if guess == 99 else"错"))
#此种紧凑形式的表达式1和表达式2不是语句,而只能是语句的一部分!!即不能有赋值等

多分支结构

if <>:
	<>
elif:
	<>
...
else:
	<>

对条件进行组合的保留字

操作符描述
x and y
x or y
not x

程序的异常处理
eval作用于含字母的字符串后程序会认为是一个变量,如:

num = eval(input())
a = num + 1
#输入abc12, eval后会报错,因为从未定义一个变量叫abc12

三种方法:

  1. try excpet①
try :
	num = eval(input("请输入一个整数:"))
	print(num**2)
excpet :#一旦程序运行异常则运行except下面的语句
	print("您的输入不是整数")
  1. try except②
 try :
	num = eval(input("请输入一个整数:"))
	print(num**2)
excpet NameError :
	print("您的输入不是整数")
#只能响应NameError的异常类型
  1. try except else finally
try :
	<>
except :
	<>
else:
	<>
finally :
	<>
#finally一定执行 else在try不发生异常时执行

二、实例:BMI

难点:两个同时输入,两个标准

height, weight = eval(input("请输入身高(m)和体重(kg),并用逗号隔开:"))
#eval将输入变成两个用逗号隔开的数字,这样就可以同时赋值给左边

#同样可以用于赋值字符串
who, nat = '偏胖''正常'

三、程序的循环结构

遍历循环

for <循环变量> in <遍历结构> :
	<语句块>
功能:从遍历结构中逐一提取元素放到循环变量里,并执行一次语句块
  1. 计数循环 range(N),range(M开头,N结尾不含,K步长)
  2. 字符串遍历循环
for c in "python":
	print(c,end=',')
  1. 列表遍历循环 类似2
  2. 文件遍历循环
for line in fi:
	print line
#遍历其每行

无限循环

while <条件>:
	<>
#出错无限循环不停时可以Ctrl+c强制退出

循环控制保留字
break(循环立刻结束) & continue(当次循环马上结束)

扩展用法

for in循环 & while循环后都可以加上
else :
	<>
当循环没有被break(!!!continue不会)语句退出时,执行else语句块,作为“正常完成循环”的奖励

三、random库

**一定要播种子啊
基本随机函数

函数名描述
seed()初始化给定的随机数种子,可以自己定义如random.seed(10),即产生种子为10对应的序列(序列是固定的);也可以不定义,则系统默认使用系统时间为种子
random()生成一个[0,1)之间的随机小数 random.random()
import random
random.seed(10) #这句可以省略
random.random()
#->result
random.random()
#->result
#即种子只需要给一次,之后每次调用就产生新的随机数
#如果不给种子,则使用系统时间,后面再次调用也是基于第一次使用的时间种子
#自定义种子的好处在于后续可以复现程序结果

扩展随机数函数

函数名描述
randint(a,b)生成一个[a,b]之间的整数
randrange(m,n[,k])生成一个[m,n)之间以k为步长的随机整数,如randrange(10,100,10)只能生成10,20…
getrandbits(k)生成一个k比特长的随机整数
uniform(a,b)生成一个[a,b]之间的随机小数,小数点后16位
choice()从()内序列中随机选取一个元素
shuffle()将()中的元素随机排列,返回随机排列后的序列

**python中如果代码要放在同一行要用’;'来分隔
**python中如果代码要换行可以在末尾加\

四、实例:圆周率的计算

注:range(5)等价于range(0, 5)
目的:掌握用perf_counter测定程序性能的方法,特别是循环结构,可以单独用来测定循环结构的用时

五、练习与测试

水仙花数:注意如何处理‘数字之间用逗号分隔’

strsum = ''
for i in range (100,1000):
    sum = 0 ; a = i 
    while a!= 0:
        sum += pow(a%10,3)
        a//=10
    if sum == i:
        strsum += str(i) + ','
print(strsum[:-1])
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值