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

你能发现这段 Python 代码中的 bug 吗?

原文链接:https://dwrodri.gitlab.io/can-you-spot-the-bug-in-this-python-code/ 本文已获作者授权,未经允许,禁止转载!...下面,我来详细解释一下这段代码,并深入剖析我究竟错在哪儿了。 代码详解 CSV文件是列表的列表 我简单地认为,CSV 数据就是列表的列表。因此,我可以将各个元素视为嵌入列表。...sublist in nested_lists for element in sublist] 以前我曾接触过 C 和 C++,之后才学习了 Python,因此在学习嵌套推导式时,我感觉 Python...这个嵌套列表会生成以下字节码: 然后,我一些自己的代码进行扩展,最终得到了以下代码: 错误 事实证明,Python 无法按照我的想象将可迭代的文本分解与推导式结合起来,你必须把 .split(",...这实际上是因为我对 Python解释器的理解有错,解释器本身没有问题。

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

你能发现这段 Python 代码中的 bug 吗?

原文链接:https://dwrodri.gitlab.io/can-you-spot-the-bug-in-this-python-code/本文已获作者授权,未经允许,禁止转载!...看似很简单,我可以使用 pandas DataFrame 编写几行代码就够了。下面是我编写的代码:你发现 bug 了吗?反正我没看出来。下面,我来详细解释一下这段代码,并深入剖析我究竟错在哪儿了。...in nested_lists for element in sublist]以前我曾接触过 C 和 C++,之后才学习了 Python,因此在学习嵌套推导式时,我感觉 Python 只是机器可以理解的伪代码...这个嵌套列表会生成以下字节码:然后,我一些自己的代码进行扩展,最终得到了以下代码:错误事实证明,Python 无法按照我的想象将可迭代的文本分解与推导式结合起来,你必须把 .split(",") 调用放在另一个列表中...这实际上是因为我对 Python解释器的理解有错,解释器本身没有问题。

18820

这段Python代码让程序员赚300W,公司已确认!网友:神操作!

Python到底还能给人多少惊喜? 笔者最近看到了这两天关于Python最热门的话题,关于《地产大佬潘石屹学Python的原因》,结果被这个回答惊到了: ?...没想到Pyhon这么强大,怪不得有人说Python“除了不会生孩子,Python什么都会。” 所以,Python到底还能征服多少人? Python到底还能“造福”多少程序员?...Python上位史 吃瓜群众:我永远爱它... @程序员,Python究竟凭啥上位?你有没有想过为什么Python为啥火的这么彻底?...关于这问题,著名房地产商、身价217亿,SOHO 中国董事长潘石屹给出了自己的看法: ? 潘石屹大佬都选择学习 Python,究竟为什么有这么大的魔力?...与其他一些编程语言相比,Python 语言又具备哪些显著的优势呢? 1. AI助力Python,成为超火语言!

68110

OpenCV-Python我刚写六行代码出了个惊天BUG

引子 最近一直在用PyQT跟python-opencv做开发,正好需要固定阈值二值化,于是我就随手写下了如下的代码片段: image[image > t] = maxval image[image <...= t] = 0 这波常规操作我给自己满分,后来别人跟我说可以根据阈值反向分割,就是大于阈值T赋值为0,小于阈值T赋值为maxval于是,我就给它加了个if else操作,代码如下: if bin_type...我测试了几张图像之后感觉有点怀疑人生了,逻辑这么好的代码,居然不正确执行! 真相让我崩溃 这个问题当时让好郁闷,感觉自己智商出问题了!...于是我就手动写下了如下代码: test = np.zeros((8, 8), dtype=np.uint8) for i in range(8): test[i, 0] = i * 32...后来我还想起了很久以前,我从github上面下载有个别人的项目,他的代码里面也有类似的写法,我记得我当时调试发现这段代码不工作,因为当时项目代码很长,我就保存图像发现不正确,就用opencv-python

61140

Python从入门到精通,这篇文章为你列出了25个关键技术点(附代码

Python 解释器一次读取一行代码,将其解释为低级机器语言 (如字节代码) 并执行它。 因此这种语言经常会引发运行错误。...为什么选择 Python (优势) Python 是当前最流行的语言,因为它更容易编码且具有很强的可解释性。 Python 是一种面向对象的编程语言,也可用于编写一些功能代码。...模块是一种将 python 程序中相似功能进行分组的组件。 任何 python 代码文件都可以打包为模块,然后再导入。 模块允许使用者在自己的代码解决方案中进行组件化设计。...Python 支持多线程。 此外,GIL 会增加代码执行的计算开销。因此,运行多线程时需谨慎。 23 装饰器 Decorators 装饰器可以为代码添加功能,其本质上是一种调用其他对象/函数的函数。...Python 和 R 语言能合并吗 R 语言中有着大量丰富的统计库,可以使用 Rpy2 python 包或在 Juputer 中使用 beaker 笔记本或 IR 内核,在 Python 中执行 R 代码

2.9K20

教育直播源码:在Python退出时强制运行代码的方法

这段逻辑本身非常简单: 31.png 但由于测试的代码比较复杂,你总是在调试的时候程序异常,导致每次clean()函数还没有来得及运行,程序就崩溃了。   ...你根本不知道是哪里出了问题,也不知道具体出了什么问题。为了找到问题,你必须让程序把错误爆出来。但这样一来,clean()又不能正常运行了。   ...这个时候,我们就可以使用Python自带的atexit这个模块了。它的使用方法非常简单: 33.png  这样一来,我们不需要显式调用clean函数了。...如果发生了严重的Python内部错误,你注册的函数无法正常执行。   如果你手动调用了os._exit(),你注册的函数无法正常执行。...以上就是在教育直播源码中,如果想要在Python退出时强制运行一段代码的方法,希望对您有所帮助。

1.5K10

Python在退出时强制运行一段代码

这段逻辑本身非常简单: setup() test() clean() 但由于测试的代码比较复杂,你总是在调试的时候程序异常,导致每次clean()函数还没有来得及运行,程序就崩溃了。...try: text() except Exception as e: print('运行异常:', e) clean() 似乎看起来,程序一定会运行到clean()函数,但是,如果你代码写的多...你根本不知道是哪里出了问题,也不知道具体出了什么问题。为了找到问题,你必须让程序把错误爆出来。但这样一来,clean()又不能正常运行了。...这个时候,我们就可以使用Python自带的atexit这个模块了。...如果发生了严重的Python内部错误,你注册的函数无法正常执行。 如果你手动调用了os._exit(),你注册的函数无法正常执行。

2.2K20

Python Weekly 420

大规模部署 Python 代码 https://instagram-engineering.com/python-at-scale-strict-modules-c0bb9245c834 这是我们发布的关于在...Instagram 大规模部署 Python 代码的第三篇文章!...正如我们第一篇文章中所提到的,Instagram 服务器是数百万行 Python 代码的集合:每天数百次提交,每隔几分钟部署到生产环境中。以这种规模和速度使用 Python 时,我们遇到了一些痛点。...Python if else 教程:控制代码流 https://www.dataquest.io/blog/python-if-else/ 在此 Python 教程中学习如何使用 if,else 和 elif...在数据分析时学习控制代码。 用 Python 实现基于技术分析的算法交易 https://t.co/d2Y8pzb47F 学习如何构建和改善基于技术分析的交易策略!

3.1K20

基于 Python 后端的聊天软件机器人开发

开放平台申请流程在 QQ 开放平台注册账号,可以选“个人主体入驻”创建应用 -> 创建机器人开发设置 -> 记录 APP ID、APP Secret沙箱配置 -> 将测试频道添加到沙箱环境部署后台使用 python...并记录下来配置权限:Bot -> 勾选 Message Content IntentOAuth2 -> OAuth2 URL Generator -> bot -> Administrator部署后台使用 python...SDK,discord.py - Quickstart安装pip install -U discord.py示例脚本如下import discordintents = discord.Intents.default...VerifyURL ret: " + str(ret)) return '' return echostr.decode('utf-8')其中解密模块见:Github - weworkapi_python...xml: {xml}") return '' logging.info(f'receive msg: {msg}') return ''消息解密后是 xml 格式,可以用以下代码解析

22710

重要更新|《Python程序设计开发宝典》例12-7代码有bug

下图是《Python程序设计开发宝典》第330页例12-7的代码,本意是使用多线程技术进行文件复制,重点演示嵌套函数定义、多线程编程技术以及队列在多线程同步时的用法。...在上面的代码中,add()函数在往q中逐个追加要复制的文件名和文件夹名时使用了递归,这本身并没有什么问题,问题在于最后往q中写入空值None的代码也在add()函数之内。...由于add函数是递归调用的,导致这段写入None的代码被执行多次,而队列q的大小有限,队列满了之后导致了线程阻塞。...在《Python程序设计开发宝典》283页“第10章 文件与文件夹操作”讲解遍历目录树时,给出了按深度优先遍历和按广度优先遍历两种方法。...参考按广度优先遍历目录树的思路,把例330页12-7代码中add()函数改写为下面的样子,就可以解决这个bug了。 ?

52430

无监督方法实现C++、Java、Python 代码转换,程序员:出了bug怎么办,两种语言都要看吗?

只需单语源代码,无需任何源语言或目标语言的专业知识。看起来很不错,不过也有人吐槽:出了 bug 怎么办?两种语言都要看吗?(瑟瑟发抖…… ?...transcompiler 系统,又称源到源编译器,可以将高级编程语言(如 C++ 或 Python)写成的源代码转换成另一种语言。...此类工具主要为了提升互操作性,将用过时或废弃语言(如 COBOL、Python 2)写成的代码库移植到现代语言。它们通常依赖于手动编写的重写规则,并应用于源代码抽象语法树。...如下图所示,TransCoder 将 Python 代码转换成了 C++ 代码: ? TransCoder 成功地将 Python 输入函数 SumOfKsubArray 转换成了 C++。...不过,也有程序员吐槽: 简直是 debug 的地狱,出了问题程序猿两种语言的代码都得看…… 参考内容: https://arxiv.org/abs/2006.03511

74920

SSD-pytorch踩坑及修正(StopIteration)

SSD-pytorch踩坑(StopIteration)ssd-pytorch代码链接bug解决方案ssd-pytorch代码链接github上的:https://github.com/amdegroot.../ssd.pytorchbug这篇博客写的基本上没什么问题,但是其实也有坑。...谢谢”我在运行python train.py的时候,发现确实loss降的异常的快。 运行python eval.py的时候mAP是一个很接近0的数。...经过思考,发现问题出在原来博客的第4个点: (下面这段是从原文中复制来的)4.train.py代码中,在迭代过程中,每次执行batch张图片,通过images, targets = next(batch_iterator...解决方案这个问题出现的原因是dataloader导入数据之后经过了一轮的迭代,再次导入的时候发现没有数据了,也就是iterable完成之后,触发了StopIteration,然后跳出了循环。

1.8K20

分享8点超级有用的Python编程建议

先睹为快 项目文件事先做好归档 永远不要手动修改源数据并且做好备份 做好路径的正确配置 代码必要的地方做好备注与说明 加速你的Python循环代码 可视化你的循环代码进度 使用高效的异常捕获工具 要多考虑代码健壮性...很多同学在写路径的时候都很喜欢直接用绝对路径,虽然一般情况下不会有什么问题,但如果代码共享给其他人学习或者运行的时候,问题就来了,很多情况下都不能直接跑通, 这里建议: 使用相对路径:脚本位于主目录下,...加速你的Python循环代码 ⚡️ 这里推荐 云哥(Python与算法之美)的一篇文章:24式加速你的python 收藏起来,多看多几次,养成好习惯呗,这样子你写代码才会越来越快~ 6....异常bug定位,以前的我经常也是一条print()函数走到底,虽然说也没什么问题,但效率上还是会比较慢,后来发现了一个叫PySnooper的装饰器,仿佛发现了新大陆。...RequestException as e: print(f'save failed: unable to get page content: {e}') return False # 这段正则操作本身就是不应该抛出异常的

44610

建议收藏 | Python大牛分享的8点超级有用的Python编程建议

先睹为快 项目文件事先做好归档 永远不要手动修改源数据并且做好备份 做好路径的正确配置 代码必要的地方做好备注与说明 加速你的Python循环代码 可视化你的循环代码进度 使用高效的异常捕获工具 要多考虑代码健壮性...很多同学在写路径的时候都很喜欢直接用绝对路径,虽然一般情况下不会有什么问题,但如果代码共享给其他人学习或者运行的时候,问题就来了,很多情况下都不能直接跑通, 这里建议: 使用相对路径:脚本位于主目录下,...加速你的Python循环代码 ⚡️ 这里推荐 云哥(Python与算法之美)的一篇文章:24式加速你的python 收藏起来,多看多几次,养成好习惯呗,这样子你写代码才会越来越快~ 6....可视化你的循环代码进度? 这里介绍一个Python库,tqdm,先安装一下:pip install tqdm 这个是一个可以显示循环进度的库,有了它就可以更加运筹帷幄了。 大家可以看下面的例子: ?...异常bug定位,以前的我经常也是一条print()函数走到底,虽然说也没什么问题,但效率上还是会比较慢,后来发现了一个叫PySnooper的装饰器,仿佛发现了新大陆。

67150

别再乱用 try except 了...

” 有不少人在写 Python 代码时,喜欢用 try...except Exception,更有甚者一层套一层,不管有没有用,先套了再说: def func(): try:...我们来看看下面这段报错: ? 你倒是给我说说,是哪个函数出了问题? 如果你饱受滥用try...except...之苦,下面三个方法可以让你脱离苦海。...让 Python 把问题暴露出来。通过 Python 的报错,你可以直接看到是哪一行代码有问题,具体是什么问题。 甚至有时候,不仅不需要捕获异常,你还应该主动抛出异常。...我们直接执行python3 xxx.py时,这些断言语句会正常工作。但我们可以通过python3 -O xxx.py来让所有assert xxx语句失效。...显然,这样写你需要平白无故多写很多代码。 总结 try...except...会让你的代码看起来没有问题,但也有可能会掩盖问题,让你无法发现哪里有问题。

1.1K20

13.程序编程进阶:函数

思考中....没事,我重新写一下这段代码! 这样,合适吗?! 合适,但是存在问题,什么问题呢…就是代码重复,工作重复,如果每天这样大量重复的工作出现,程序就不再是编程,而是搬砖了。...此时,我们python和其他编程语言一样,可以将这段程序封装成函数,通过一个定义的函数封装好这些代码,在某些需要的时候,通过函数的名称直接调用即可。 1.1....函数的定义 函数的定义非常简单,python中通过def关键字来定义函数 def 函数名称(参数列表): 函数中封装的代码块 [return 返回值] 代码块,就是多行代码作为一个整体...,在python中,通过缩进的方式来确定不同的代码块,临近的相同缩进的代码为一个整体代码块。...一个python程序中,所有出现缩进的空格数量必须一致。 函数中的封装的代码块必须是缩进一定部分的多行代码

35820

一日一技:亲眼所见,也非真实,如何明目张胆架设后门程序

案例文章的原始地址是:The Invisible JavaScript Backdoor[1]这篇文章给出了一段看起来非常安全的Node.js 的代码: const express = require(...这个功能简单得不能再简单了,能有什么问题呢?我现在就把代码放到你的面前让你来Review,你能说我的代码有问题?...但实际上,上面这段代码确实有一个后门,可以让我在部署了这个接口的机器上执行任意命令,包括但不限于下载木马或者rm -rf *。...这段代码的问题,就出现在图中我画箭头的这两个地方: 这两个地方的逗号后面,并不是空格,而是一个看不见的符号:\u3164。...现在,这段有后门的代码,其实会接收两个参数,分别是timeout和ㅤ,其中后者这个看起来像是空格的就是\u3164,也就是变量名。

59410
领券