Python的for循环究竟是什么回事儿

Python中的闭包是怎么回事儿?五分钟看懂。 什么是闭包?。当函数返回另一个函数时,相关参数和变量都保存在返回的函数中,被称作“闭包”。由于闭包是调用的时候才执行,属于滞后执行,因此,思考下面的例子:大家先想一个普通求和的函数,可以利用可变参数来实现。调用这个函数可以马上获得求和的结果。这个函数很奇特,他把求和的过程(也就是sum函数)封装起来,并作为返回值返回。相当于封装了运算的算法。如何使用这个函数呢?此时,f就相当于sum。可以在任何需要的时候,调用f(),完成对1,3,5,7,9的求和。print(f()) 阅读详情

Python 是一个设计优美的解释型高级语言,它提供了很多能让程序员感到舒适的功能特性。但有的时候 Python 的一些输出结果对于初学者来说似乎并不是那么一目了然。

GitHub 有个仓库收集 Python 中那些难以理解和鲜为人知的功能特性,并尝试讨论这些现象背后真正的原理!

虽然有些例子并不一定会让你觉得“卧槽”(WTF),但它们依然有可能会告诉你一些你所不知道的 Python 有趣特性。我觉得这是一种学习编程语言内部原理的好办法,而且我相信你也会从中获得乐趣!

如果你是一位经验比较丰富的 Python 程序员,你可以尝试挑战看是否能一次就找到例子的正确答案。你可能对其中的一些例子已经比较熟悉了,那这也许能唤起你当年踩这些坑时的甜蜜回忆。

for 循环怎么会事儿?

some_string = "wtf"
some_dict = {}
for i, some_dict[i] in enumerate(some_string):
    pass

Output:

>>> some_dict # 创建了索引字典.
{0: 'w', 1: 't', 2: 'f'}

说明:
Python 语法[1] 中对 for 的定义是:

for_stmt: 'for' exprlist 'in' testlist ':' suite ['else' ':' suite]

其中 exprlist 指分配目标. 这意味着对可迭代对象中的每一项都会执行类似 {exprlist} = {next_value} 的操作.

一个有趣的例子说明了这一点:

for i in range(4):
    print(i)
    i = 10

Output:

0
1
2
3

你可曾觉得这个循环只会运行一次?

说明:

由于循环在Python中工作方式, 赋值语句 i = 10 并不会影响迭代循环, 在每次迭代开始之前, 迭代器(这里指 range(4)) 生成的下一个元素就被解包并赋值给目标列表的变量(这里指 i)了.
在每一次的迭代中, enumerate(some_string) 函数就生成一个新值 i (计数器增加) 并从 some_string 中获取一个字符. 然后将字典 some_dict 键 i (刚刚分配的) 的值设为该字符. 本例中循环的展开可以简化为:

>>> i, some_dict[i] = (0, 'w')
>>> i, some_dict[i] = (1, 't')
>>> i, some_dict[i] = (2, 'f')
>>> some_dict
利用Python结构化您的工程_python结构化项目 Python崛起并且风靡,因为优点多、应用领域广、被大牛们认可。学习 Python 门槛很低,但它的晋级路线很多,通过它你能进入机器学习、数据挖掘、大数据,CS等更加高级的领域。Python可以做网络应用,可以做科学计算,数据分析,可以做网络爬虫,可以做机器学习、自然语言处理、可以写游戏、可以做桌面应用…Python可以做的很多,你需要学好基础,再选择明确的方向。这里给大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助! 阅读详情

相关推荐

双硬盘下Ubuntu 16.04与Win10双系统的安装

之前写过一个双系统安装过程,今天再次整理的原因是想重点强调双硬盘的区别。标红的一定要注意看,那就是我自己一步一步踏出来的坑啊...   基础步骤就不再重复,重点讲区别,需要看详细步骤的童鞋(或者你只有一个硬盘)请看我上一篇博客https://blog.youkuaiyun.com/weixin_40308540/article/details/80157444   区别:双硬盘和单硬盘的区别是什么呢?...

不吃包子 1126

C语言学习入门——循环

循环

m0_64799315的博客 763

免费获取船舶轨迹数据?手把手教你用Python处理中国海洋卫星AIS数据

本文详细介绍了如何免费获取中国海洋卫星AIS数据,并使用Python进行船舶轨迹数据的处理与分析。从数据源评估到自动化处理流水线,再到高级分析与可视化技巧,手把手教你避开常见问题,实现高效数据处理。特别适合航运数据分析、物流优化和海上安全研究等领域的研究者和开发者。

weixin_42616115的博客 321

零基础学Python 之 4.4 字典

字典

JacksonzhouPC的博客 448

别再被SpringerLink虐了!手把手教你搞定LaTeX源文件提交(附正确文件顺序和类型选择)

本文详细解析了SpringerLink投稿系统中LaTeX源文件提交的常见问题与解决方案,包括文件打包、类型选择和顺序排列等关键步骤。通过实战经验,帮助科研人员避开隐形陷阱,一次性完成LaTeX提交,提升投稿效率。特别针对`.bst`和`.cls`文件的正确处理提供了专业指导。

weixin_42522964的博客 445

飞牛fnOS安装1Panel后Docker容器消失?三步教你恢复数据并避免踩坑

本文详细解析了飞牛fnOS安装1Panel后Docker容器消失的问题,指出这是由于daemon.json文件被覆盖导致。通过SSH连接、修复配置文件和系统重启三个步骤,用户可以轻松恢复数据。文章还提供了预防措施和最佳实践,帮助用户避免类似问题。

yellow的专栏 874

python基础篇-for循环

for循环

清微的博客 4万+

在 AS ABAP 7.40 SP05 里把 HANA 存储过程纳入 ABAP 生命周期:AMDP 实战示例与踩坑笔记

文章摘要:AMDP(ABAP Managed Database Procedures)是SAP推出的框架,用于在ABAP中管理数据库端的存储过程或函数,特别适用于HANA数据库。它通过将数据库语言(如SQLScript)嵌入ABAP方法,实现数据处理逻辑的"下推"(code pushdown),减少应用层与数据库间的数据传输。AMDP适用于需要数据库特有能力或大规模数据处理的场景,但应优先考虑Open SQL或ABAP CDS等更简单的方案。开发时需注意数据库类型检查、参数前缀(:)等语

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 226

Python dict的介绍、特性、作用、底层原理和使用

Python字典(dict)是一种可变的、无序的键值对集合。它是Python内置的一种数据类型,可以存储任意数量的键值对,其中每个键必须是唯一的。字典是Python编程中非常常用的数据结构,本文将介绍Python字典的特性、作用、底层原理和使用方法。 Python字典的特性如下: 1. 可变性:字典是一种可变的数据类型,可以在运行时添加、删除或修改键值对。 2. 无序性:字典中的键值对是无序的,即无法通过索引访问它们。 3. 唯一性:字典中的键必须是唯一的,如果插入重复的键,则后面的值将覆盖前面的

SteveRocket's-Blog 4573

Slow waitForAckedSeqno took 64873ms (threshold=30000ms). File being written

Slow waitForAckedSeqno took 64873ms (threshold=30000ms). File being written

zhengzaifeidelushang的博客 2011

深入理解JVM虚拟机第一篇:Java跨平台和字节码以及多语言混合编程

本位描述了Java的跨平台和JVM的跨平台的作用,Java语言的字节码的概念多语言混合编程应用到JVM虚拟机以及Java发展的重大事件。

七叔的博客 1万+

Python——字典及其特性

1.字典的定义 字典是一个无序的数据集合,使用print输出字典的侍候通常输出的顺序和定义的顺序是不一致的 字典:key - value 键值对 value可以是任意数据类型 工厂函数 字典的嵌套 所有的key和value值是一样的 2.字典的特性 字典不支持索引 字典不支持切片 字典的重复和连接无意义 成员操作符 for循环,默认遍历...

weixin_44224288的博客 304

C#使用OpenCvSharp+微信模型识别多个二维码

本文介绍了一个基于OpenCvSharp和微信开源二维码检测器的多二维码识别项目。该项目通过C# WinForm实现,主要功能包括:加载图片、识别图片中的多个二维码并显示识别结果。核心代码使用了OpenCvSharp.WeChatQRCode类,通过预训练的caffe模型(detect.prototxt/detect.caffemodel和sr.prototxt/sr.caffemodel)进行二维码检测和解码。识别结果包括每个二维码的编号、内容及位置信息。项目适用于批量二维码识别场景,部署简单,识别效果良

遇见--专栏 124

python里for循环定义_Python的for循环究竟是什么回事儿

Python 是一个设计优美的解释型高级语言,它提供了很多能让程序员感到舒适的功能特性。但有的时候 Python 的一些输出结果对于初学者来说似乎并不是那么一目了然。GitHub 有个仓库收集 Python 中那些难以理解和鲜为人知的功能特性,并尝试讨论这些现象背后真正的原理!虽然有些例子并不一定会让你觉得“卧槽”(WTF),但它们依然有可能会告诉你一些你所不知道的 Python 有趣特性。我觉得...

weixin_34529812的博客 562

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

语句中如何结束本循环进入下一循环_【信息技术学考】python循环结构

睡不着的铁老师在深夜翻看了一部2018年俗套的惊悚片,虽然剧情低能了一些(简单说就是讲女主在生日当天反复被杀,再无限次醒来返回到生日当天的早上blahblah,就不建议大家耽误时间观看了),但是引出了我们今天要说的内容:循环结构 先来说说什么是循环,生活中的例子其实很多,比如:水循环:四季循环: 简单说循环就是指以环形、回路或轨道运行,沿曲折的路线运...

weixin_39564755的博客 1459

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Python开发【第二章】从Hello World到变量与循环的实战入门

本文是Python编程的实战入门指南,从经典的Hello World程序开始,详细讲解了变量的定义、命名规则与使用,以及条件判断(if/elif/else)和循环(while/for)语句的核心语法与应用。通过猜数字游戏和用户登录系统两个实战案例,帮助初学者快速掌握Python基础,并理解如何将这些核心概念综合运用以解决实际问题。

weixin_29290259的博客 360

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

python 可迭代对象是什么_Python 可迭代对象,迭代器,生成器

楔子假如我现在有一个列表l=['a','b','c','d','e'],我想取列表中的内容,有几种方式?首先,我可以通过索引取值l[0],其次我们是不是还可以用for循环来取值呀?你有没有仔细思考过,用索引取值和for循环取值是有着微妙区别的。如果用索引取值,你可以取到任意位置的值,前提是你要知道这个值在什么位置。如果用for循环来取值,我们把每一个值都取到,不需要关心每一个值的位置,因为只能顺序...

weixin_29603829的博客 232

@insert 对象_Python 可迭代对象,迭代器,生成器

楔子假如我现在有一个列表l=['a','b','c','d','e'],我想取列表中的内容,有几种方式?首先,我可以通过索引取值l[0],其次我们是不是还可以用for循环来取值呀?你有没有仔细思考过,用索引取值和for循环取值是有着微妙区别的。如果用索引取值,你可以取到任意位置的值,前提是你要知道这个值在什么位置。如果用for循环来取值,我们把每一个值都取到,不需要关心每一个值的位置,因为只能顺序...

weixin_34945060的博客 110

python之路---迭代器和生成器

阅读目录   楔子   python中的for循环   可迭代协议   迭代器协议   为什么要有for循环   初识生成器   生成器函数   列表推导式和生成器表达式   本章小结   生成器相关的面试题 返回顶部 楔子 假如我现在有一个列表l=['a','b','c','d','e'],我想取列表中的内容,有几种方式? 首先,...

weixin_30497527的博客 99

zip的作用_闲话Python之分分合合是zip

看到zip,我就下意识的觉得这是一个类似windows系统压缩包之类的东西,最后探索了下发现好像还真是真么回事儿,zip在Python环境中起到的作用还真是“类压缩-解压”的作用,下面就让我们来看看这个zip是个什么东西首先我们看下这个zip的基本用法,请看以下代码:names可以看到zip将两个列表里的每个元素一一组合成了一个元组(tuple),从而把五个元组压缩在了一个列表里。既然是对象,那看...

weixin_39541869的博客 261

python神经网络分类_如何用 Python 和循环神经网络做中文文本分类?

image本文为你展示,如何使用 fasttext 词嵌入预训练模型和循环神经网络(RNN), 在 Keras 深度学习框架上对中文评论信息进行情感分类。疑问回顾一下,之前咱们讲了很多关于中文文本分类的内容。你现在应该已经知道如何对中文文本进行分词了。你也已经学习过,如何利用经典的机器学习方法,对分词后的中文文本,做分类。你还学习过,如何用词嵌入预训练模型,以向量,而不是一个简单的索引数值,来代表...

weixin_39686230的博客 271

微信抢红包代码 python_用 Python 实现一个简单的微信红包算法

今年过年各位一定在微信里抢了不少红包。那么当别人是手气王而你只抢到1分钱的时候,你有没有想过,如果你来实现红包的分配算法,会怎么写?这里我给一个简单的实现方案。基本思路就是,有多少个红包,就循环多少次,每一次,在剩下的钱里面随机出一个值作为这个红包的金额,然后把金额从总金额中扣除。这里要注意,需要保证每个人至少能拿得到 1 分钱。只剩最后一个人时,拿走剩下所有的金额。另外,为了保证计算时候方便,采...

weixin_39916360的博客 932

迭代器和生成器

楔子 假如我现在有一个列表l=['a','b','c','d','e'],我想取列表中的内容,有几种方式? 首先,我可以通过索引取值l[0],其次我们是不是还可以用for循环来取值呀? 你有没有仔细思考过,用索引取值和for循环取值是有着微妙区别的。 如果用索引取值,你可以取到任意位置的值,前提是你要知道这个值在什么位置。 如果用for循环来取值,我们把每一个值都取到,不需要关...

weixin_30538029的博客 74
上一篇: 抢茅台脚本居然用的Python,我们Python真是太强大了---图拉夫
下一篇: Python的招牌花旦
python阿喵
博客等级 码龄6年 169粉丝 127原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值