Datawhale Notebook #Chap5循环

本文详细讲解了Python中的for循环、range函数、while循环、break和continue语句,以及如何通过剪枝优化算法效率。还提到在判断回文素数和carrylessAdd问题上的优化策略,主要来源于Datawhale课程。
摘要由CSDN通过智能技术生成

CiaraZHAO用户 - CiaraZHAO - HydroOJ

Chap5 循环

for循环和循环范围

特点:基于提供的范围,重复执行特定次数的操作

range():

-本质是一个生成器,生成一个数字范围,默认的起始范围是0

-range(x, y)是左闭右开区间,包含x,不包含y

-range(n+1)=range(0, n+1)

-range(x, y, k)   #k为步长step

 -也可以通过修改循环内部代码来改变步长

-生成反向数字序列:

range(10, -1, -1)(不建议使用)

建议用反转函数reversed(range(0, 10 ,1))

for循环嵌套:

python原生的for循环语法非常慢,如果要求效率,尽量不要用for循环,考虑python和c++的混合编程

如果想依次控制循环内容,就需要用外层循环的变量值当作内层循环的范围

while循环:

与for循环的区别:在知道循环范围的情况下使用for,反之使用while

breakcontinue语句:

运行:0 % 3 = 0 →跳过/结束这次循环,立刻跳到下一个循环(即不print 0)

continue-跳过当次循环

break-跳过整个循环

_:黑洞,什么都能装进去,但不会变成任何一个变量

假·死循环:

与环境交互后,在特定条件下终止的循环

while True:

提升算法的操作:剪枝

-eg.在判断质数时将所有偶数直接排除

合理的剪枝,缩小搜索范围/循环范围,可以大幅提高程序运行效率

end=””:为末尾end传递一个空字符串,这样print函数不会在字符串末尾添加一个换行符,而是添加一个空字符串

print()默认是打印一行,结尾加换行。end=””意思是末尾不换行,加空格。

判断质数:

后半部分需要理解一下(之后补上)

作业题

最后两道找第n个回文素数和carrylessAdd的提高题写了比较长的时间

回文素数:写判断回文数时花了一段时间,后来问题主要出现在运行超时。一开始的想法是定义两个函数分别判断素数和回文数,然后再逐个判断是否两个条件都满足,但这样运行太复杂,需要优化。将判断回文数改成先生成回文数,然后再判断回文数是否是质数,但这样容易漏掉情况,还需要再思考一下

carrylessAdd:这题主要是感受到做python题目的思路和平时做数学题的思路相差挺大的

课程资料来源:Datawhale课程简介 - 聪明办法学 Python 第二版 (datawhalechina.github.io)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值