首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

发现这段 Python 代码 bug

任务是分析文本文件一些以逗号分隔数据,如下所示: 这个文本文件包含若干宽度可变十六进制值,每行至少三个字段。我只关心第一个和第三字个段。...下面,我来详细解释一下这段代码,并深入剖析我究竟错在哪儿了。 代码详解 CSV文件是列表列表 我简单地认为,CSV 数据就是列表列表。因此,我可以将各个元素视为嵌入列表。...这个嵌套列表会生成以下字节码: 然后,我一些自己代码进行扩展,最终得到了以下代码错误 事实证明,Python 无法按照我想象将可迭代文本分解与推导式结合起来,你必须把 .split(",...下图展示了正确生成器表达式与我编写代码之间差异: 你看出问题所在了吗?代码问题在于,在分解文本之前,.split() 返回值是迭代器。...最后,我在 CPython 贡献者 Crowthebird 帮助下解决了这个问题,他演示了在不使用推导式情况下重写代码问题。 错误写法: 正确写法: 这个问题可以得到解决

12630

发现这段 Python 代码 bug

任务是分析文本文件一些以逗号分隔数据,如下所示:这个文本文件包含若干宽度可变十六进制值,每行至少三个字段。我只关心第一个和第三字个段。...看似很简单,我可以使用 pandas DataFrame 编写几行代码就够了。下面是我编写代码:你发现 bug 了吗?反正我没看出来。下面,我来详细解释一下这段代码,并深入剖析我究竟错在哪儿了。...这个嵌套列表会生成以下字节码:然后,我一些自己代码进行扩展,最终得到了以下代码错误事实证明,Python 无法按照我想象将可迭代文本分解与推导式结合起来,你必须把 .split(",") 调用放在另一个列表...下图展示了正确生成器表达式与我编写代码之间差异:你看出问题所在了吗?代码问题在于,在分解文本之前,.split() 返回值是迭代器。...错误写法:正确写法:这个问题可以得到解决?这实际上是因为我对 Python解释器理解有错,解释器本身没有问题。

20320
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    开学第一课:拜托,一定不要这样问Python问题

    7.我代码可以运行,但是结果不对,如下,我该怎么办? ? 8. ? 9. ? 10.群里有人吗,谁能告诉我这个怎么办? ?...老师,我有个代码总是调试不出来,你感觉有多大把握?要是把握大的话我去你办公室一下,把握不大的话我就不去了。 12.从完整程序截图几行代码片段,然后问有什么错误。 13. ? 14....(发一个程序文件)老师,这程序里有个错误,你帮我找出来修改一下吧。 15.老师,你书写特别好,视频讲也很好,但是我没有时间去看,你直接告诉我这个问题怎么解决吧。 16. ? 17....(发一段代码截图,且需要放大很多倍才能勉强看清)大家帮忙看看这段代码哪里有问题啊? 18. ? 19.我有个特别特别简单问题,但在网上就是查不到解决办法,你告诉我该怎么办?...23.我自己老师说我程序至少有3处错误,又不告诉我哪里有错误,我找不出来,你帮我找出来改一下? 24.老师,如果要在窗口上显示图片,应该怎么做?需要注意什么?

    56310

    如何提问问题?

    首先明确自己出现这个问题之前做了哪些操作,把做过操作记录下来 排除基本故障(防火墙、Selinux、权限等) 查看相关报错信息,出现error关键词或者其他错误信息关键词,找出报错信息核心,复制进百度先大体看下是啥问题...不要@管理员,有事说事,只要不是发广告,你问问题不会有人踢走你,别动不动就@ 别上来就说一句:有人会docker,然后没下文了,没人说自己会 问题发了之后,多盯着点你发群,别你发了,别人给你回了,你第二天才想起来给个回复...一个有工作经验的人之所以比你定位更准确,是因为他有自己知识体系,以及拥有自己错误库,这个错误库就是他快速找到问题原因根本。...如果现在遇到问题在错误,他可以直接调用解决,如果不在错误,说明可以直接排除百度出来错误内容,缩小解决问题范围。...人与人之间差别只在于是否灵活应用工具 动物跟人区别是是否能够使用工具,而人与人差别是是否灵活应用工具。哪些是你工作之后工具?

    43520

    为什么说Kotlin可读性比Java好?

    如果在小红书有个同事非要执意这样写代码,理由是“你多读个两三遍不就好了嘛?”我想我只能把他开除了。 其实,如果一段代码需要你多读个两三遍才能很好理解,这本身不就说明,这段代码可读性不高?...这是一个很多人都会错误观点。 但是,在真正工作代码可读性,恐怕不至这一个方面。为了考察所谓代码可读性涉及到哪些方面,我们来假设两个 case: 你去到一家新公司,接手一个新项目。...我们看一个简单例子: 在这段 Java 代码例子,这 7 行代码事情很简单,就是从 personList 找出 id 值等于 somePersonId 这个变量那个 Person,然后赋值给...因为在这行代码,find 这个单词就已经表达出了这里做事情是“找出一些东西”,而大括号里面,就是找出条件。也就是说,Kotlin 写法直接就帮我们表达出了“What”。...在 Google 声明 Kotlin 成为安卓开发官方支持语言那一天,我建了一个微信群。目前偶尔还是有人在群里面问,Kotlin 值得学习?有风险?看到现在还在问这样问题,我是觉得有点遗憾

    1.9K50

    什么叫代码可读性?为什么说Kotlin可读性比Java好?

    这是一个很多人都会错误观点。 但是,在真正工作代码可读性,恐怕不至这一个方面。为了考察所谓代码可读性涉及到哪些方面,我们来假设两个case:1. 你去到一家新公司,接手一个新项目。...我们看一个简单例子: 在这段Java代码例子,这7行代码事情很简单,就是从personList找出id值等于这个变量那个Person,然后赋值给这个变量。...因为在这行代码,这个单词就已经表达出了这里做事情是“找出一些东西”,而大括号里面,就是找出条件。也就是说,Kotlin写法直接就帮我们表达出了“What”。...看到上面这段,最后你发现,原来是这个成员变量值不对。那么,你怎么知道是哪里改变了这个变量值,导致它被赋给了一个错误值呢?...在Google声明Kotlin成为安卓开发官方支持语言那一天,我建了一个微信群。目前偶尔还是有人在群里面问,Kotlin值得学习?有风险?看到现在还在问这样问题,我是觉得有点遗憾

    1.2K70

    提问也是一门学问

    小明:哪位大哥帮忙看下这个问题?为什么数据还是不能插入? 小明:[一张图] 小白:有大佬在么?关于xx有人会么? 小明:[一张图] 或者 [一小段代码] 小明:这个为啥报错啊?...运用某些策略,比如用谷歌(Google)搜索你遇到各种错误提示, 这样很可能直接就找到了解决问题线索。...我这段代码运行不了,谁能帮我看看啊! 明智提问: 各位,我下面这段代码是这样写,理论上运行结果应该是xx,可是现在却运行不了。...我通过Debug调试也没有发现啥异常,有人帮我看看或者给个思路么? 2.2 清楚表达你问题 清楚、良好地表达你问题非常重要。花点额外精力斟酌一下提问字句,确保别人能够看得懂。...2.4 关于代码提问 别要求他人直接帮你写代码。 张贴几百行代码,然后说一声“它不能运行”,这只能让人反感,没人愿意理会你。

    60920

    编程,到底有没有捷径可以走

    A:那你帮我破解一下某某 QQ 号? A:你帮我重装一下系统? A:你来帮我制作一个 PPT 吧...... ?...因为有人求快贪多,网络上不少快速入门、高效入门、N 天掌握等等诸如此类书、专栏、培训卖火热,学过了真的掌握?你相信培训机构打出“包教包会包分配”宣传语?...编码如果有捷径的话,对敲了几十万行代码成长起来大牛很不公平,对头发稀少高手也不公平,如果有的话,他们也无需这样费时费力。...给半路出家小伙伴一些话:经过短短几个月快速培训,虽然应付工作,往往也会比较吃力,很多时候只掌握了形,而不得其神,思维还有惯性,需要加强训练。训是软件思想学习,练是代码编写,二者不可偏废一个。...(其实这段话对所有软件从业人员都适用) ----

    59610

    教妹学 Java 第 41 讲:异常处理机制

    class Demo { public static void main(String[] args) { System.out.println(10/0); } } 这段代码在运行时候抛出异常信息如下所示...下一个问题,我经常看到一些文章里提到 Exception 和 Error,二哥你帮我解释一下它们之间区别?”三妹问。 “这是一个好问题呀,三妹!”...它们都是由于系统运行时找不到要加载类导致,但是触发原因不一样。...NoClassDefFoundError:程序在编译时可以找到所依赖类,但是在运行时找不到指定类文件,导致抛出该错误原因可能是 jar 包缺失或者调用了初始化失败类。...“二哥,针对 checked 异常,我在知乎上看到一个帖子,说 Java checked 很没有必要,这种异常在编译期要么 try-catch,要么 throws,但又不一定会出现异常,你觉得这样设计有意义

    31330

    12个很好玩C语言面试题,不来测试下嘛?

    1.gets()函数 问:请找出下面代码问题: ? 答:上面代码问题在于函数gets()使用, 这个函数从stdin接收一个字符串而不检查它所复制缓存容积, 这可能会导致缓存溢出。...在我gcc里默认就是这样,所以我不得不使用编译命令‘-fno-stack-protector’来实现上述方案。 3.main()返回类型 问:下面的代码 编译通过?...如果,它有什么潜在问题? ? 答:因为main()方法返回类型,这段代码错误在大多数编译器里会被当作警告。main()返回类型应该是“int”而不是“void”。...这点非常重要,特别当程序是作为依赖于程序成功运行脚本一部分运行时。 4.内存泄露 问:下面的代码会导致内存泄漏? ?...这个操作是无效,因此会造成seg-fault或者崩溃。 10.会改变自己名字进程 问:你能写出一个在运行时改变自己进程名程序? 答:参见下面这段代码: ?

    1.1K3130

    基于人工智能代码分析与 Bug 检测实战

    这种会执行报错代码,copilot 可以很容易帮我们定位到其中问题。...输入错误代码: a = [1, 2, 3, 4] print(a[5])给到提示词:请找出以上代码bug,先说明错误在哪并修复。根据 copilot 智能提示展示后面的代码内容。...以下为 copilot 返回信息,精准定位到了问题。# 请找出以上代码bug,先说明错误在哪并修复# 1....# bubble_sort()是一段实现了冒泡排序算法函数请找出缺陷,先提示在问题是什么,然后再给出修改后代码# 问题:冒泡排序是从小到大排序,但是这段代码是从大到小排序# 修改后代码:def bubble_sort...但是 copilot 偶尔也发现这种命名不规范问题:输入不规范代码:def getAge(): pass给到提示词:请指出以上代码不符合规范地方,并予以修改根据 copilot 智能提示展示后面的代码内容

    10310

    代码洁癖系列(一):什么是整洁代码

    这是一个宏大愿望,但我会一直努力净化我所看到每一行代码,并且希望影响更多的人,让大家都写出整洁代码。 在阅读本文之前,想先提两个问题: 你是程序员? 你想成为更好程序员?...什么是整洁代码 相信有过一定工作经验程序员都读过别人代码,也一定看到过槽糕代码,看到那些糟糕代码时你是不是在想:这写什么垃圾东西,读懂这段代码所花费时间我都能把这个功能再实现一遍了。...有意义命名 什么是无意义命名?如果代码中所有的变量名,函数名都是abcd之类,相信你在看到这样一段代码第一眼就已经失去了读下去欲望了。也许有人觉得这太极端了,认为不会有人这样写代码。...如何排版 这个属于外在美,第一印象很重要,第一眼看上去很好,才会继续看下去不是错误处理 代码运行时错误如何处理?全部抛出去,交个用户处理?全部catch住,隐藏起来不处理?...迭代 胖子从来都不是一口吃成,怎么才能让你代码越来越饱满,系统越来越稳定呢?唯有不断迭代。 结语 上面这些问题,我将在后面的文章挨个解读。希望你读完之后,也化身为整洁代码守护者。

    94330

    怎样处理InterruptedException

    我们从这段代码开始: ? 它做了什么?什么都没做,只是无止境消耗 CPU。我们终止它?在 Java 是不行。只有当你按下 Ctrl-C 来终止整个 JVM 时这段程序才会停止。...因此,我从来没有在线程内调用 Thread.interrupted() 方法,因此标识变量为 true 时线程不会退出,没有人停止这个线程。...如果代码不检测标识变量,也不调用 Thread.interrupted(),那么终止线程方式就只能按下 Ctrl-C 了。 现在你听明白这个逻辑了吗?我希望是。...理由如下(如果我说错了,请修正我错误):为了让代码变快或是中断准备,没有其他理由。 如果你代码足够快,你从来不会检测中断标识变量,因为你不想处理任何中断。...这是我们应该做: ? 我们需要将标识变量重新设置为 true。 现在,没有人会谴责我们以不负责态度来处理标识变量。我们发现其状态为 true,将其清理,重新设置为 true,最后抛出运行时异常。

    3.2K30

    突破:社区AI助手上线,自此无惧伸手党!

    帮我这段Python翻译成Go语言”,“我想知道怎么导出docker镜像,压缩导出”,“帮我分析下这些日志耗时”,“MP4格式封装opus”,“这个WebRTC错误是怎么回事”,“Nginx...我们在一场直播,尝试了这个文档AI助手,大家在直播间一共问了大概20个问题,除了一个问题有点含糊其辞,其他问题都回答正确。而且比我回答还好!...文档和代码一样重要,先有文档,然后是活不断更新文档,最后是面向AI文档。 公司售后工程师要大量失业了,应该不是全部失业,几个资深售后+AI,可以顶一个很多人售后团队。...AI会影响所有行业,当然也影响了开源,而且最先受到影响就是开源。有几个原因: 1....开源社区有人反过来促进AI文档发展,推荐大家都用用glimelab.ai,希望它不要倒闭了,不然我们又要对接其他系统。

    26921

    一道华为C语言面试题,很多人都栽了!

    周末一天,我从零开始学逆向学习群里有人抛出了一个C语言相关问题: 先想一想,这段代码运行后会输出什么? 这道题我几年前在华为面试题中也遇到过。...这里所谓free,仅仅是告诉C语言运行时库,这块内存我不用了,你回收回去统一管理吧。 所以,当调用strcpy时候,是能够正常复制。 但要注意,这块内存能写,不代表你乱写。...但如果你把printf换成MessageBox函数,还是正常弹窗: 这是因为MessageBox是Win32API函数,它调用不涉及到C语言运行时操作,C语言堆被搞坏了,跟它没有关系。...2、确实破坏了,但后面C语言运行时库工作时候没有触发这个问题。 至于具体是哪一种原因,还得要深入研究C语言运行时堆内存管理算法,结合调试分析才能下结论了。...另外,这段代码在Linux上默认编译后,也是能够运行: 所以总结来看,这段代码能不能正常工作,没有一个确定说法,与不同平台、不同编译模式都有关系,它运行结果是不确定

    13210

    为什么你在群里提技术问题没人回答?

    作为一个程序员,把代码写好是本分,但仅仅是写好代码是不够,工作过程总免不了要与别人打交道。几乎隔一段时间,我就会发现有些人身上出现下面的这两个问题。...这么简单问题。指的是专业方面的问题,作为程序员来讲,那就是关于开发、部署等方面的问题了。 我先来举几个糟糕提问例子: 有的同学在群里提问,上来就是: 1、接口返回404错误,是什么原因?...2、dubbo 服务启动不了,可能是什么原因呢? 3、昨天还好好,今天突然数据库就连不上了,有没有人知道怎么回事?...这种情况多发生在刚刚入门同学身上,但也不全是,有些工作了好几年同学也好不到哪里去。问题都提不好,我也不认为代码好到哪里去。...禁忌 1、如果有问题,直接按照上面说方法把你问题发出来就好,不要上来说一些无关痛痒的话,比如: 有人帮我解决一个问题? ==> 对不起,没有 有大佬在吗?

    37220

    FW:提问智慧(How To Ask Questions The Smart Way) 大众硬件Linux大众软件软件测试搜索引擎

    因此,问“我想更好理解X,能给点提示?”通常比问“你能解释一下X?”更好。如果你代码不能工作,问问它有什么地方不对,比要求别人替你修改要明智得多。...你可以要求给点提示,但别要求得到完整解决方案。 ---------------- 去除无意义疑问 ---------------- 别用无意义的话结束提问,例如“有人帮我吗?”...问题:我程序/配置/SQL申明没有用 问题:我Windows有问题,你帮我吗? 问题:我在安装Linux(或者X)时有问题,你帮我吗?...在看到这类问题时候,我反应通常不外如下三种: 1. 你还有什么要补充? 2. 真糟糕,希望你搞定。 3. 这跟我有什么鸟相关? 提问:我Windows有问题,你帮我吗?...请注意当我尝试C时奇怪现象。显然边带传输中出现了收缩,但结果出人意料。在多处理器主板上引起边带泄漏通常原因是什么?谁有好主意接下来我该做些什么测试才能找出问题?

    63520

    一行代码价值百万美元:从工程技术角度看云成本优化

    一个架构良好系统是一个具有成本效益系统。一行代码就能决定你所工作公司是否盈利。 我们面临着一个共同挑战,必须找出衡量成本效率最佳方法。为此,我想深入代码层面。...在这个示例,仅用于写入日志数据年度总成本就达到了 110 万美元。造成这种情况原因是什么?这里有两个导致因素。一些本不应该被发布代码,却也是曾经非常重要代码。...为什么在运行过程调用 S3 API?实际上,我们可以把所有这些内容抽离出来,并快速缓存或捕获这些信息。问题是这段代码正常运行。 在部署好后,它运行得很好。...在这段代码,有一个出于好意更新函数,可能是很久以前一个实习生写。它原本每天被调用一次,用来下载和比较一个大文件,这看起来像是一个糟糕主意,所以有人决定改为下载元数据,认为这会更高效。...有多少人发现这段代码 Bug? 只是一个字符,这个字符拼写错误这段代码执行切换到了成本更高路径。同时,他们将调用频率从每天一次提高到每小时一次。

    10810

    有轻功:用3行代码让Python数据处理脚本获得4倍提速

    我们再运行一遍程序,看看程序运行时活动监视器情况: 电脑有75%处理资源处于闲置状态!这是什么情况? 这个问题原因就是我电脑有4个CPU,但Python只使用了一个。...这个函数帮我完成所有麻烦工作,包括将列表分为多个子列表、将子列表发送到每个子进程、运行子进程以及合并结果等。干得漂亮! 这也能为我们返回每个函数调用结果。...这里是经过这三步改动后程序代码: 我们来运行一下这段脚本,看看它是否以更快速度完成数据处理: 脚本在2.2秒就处理完了数据!比原来版本提速4倍!...如果你要处理非常大数据集,这里有篇设置将数据集切分成多少小块文章,可以读读,会对你帮助甚大. 这种方法总能帮我数据处理脚本提速?...这样我们获得是真正并行处理Python代码! 不要害怕并行处理! 有了concurrent.futures库,Python就能让你简简单单地修改一下脚本后,立刻让你电脑上所有CPU投入到工作

    1K30
    领券