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

你能体会那种写 Python 时不用 import 的幸福吗?

在写 Python 程序的时候,我们需要依赖一些库,所以一开始我们总是: import xxx as xxx from xxx import xxx 我们有时候写着写着发现需要引入新的库,就又得回到前面...,这样我们在使用 IPython 或者 Jupyter 的时候,可以直接使用它的功能,你在写代码时连它本身都不需要 import: import pyforest 比如当你安装完之后,你可以直接打开 IPython...,在不用写 import 语句的情况下,直接使用相关的库: ?...你可以看到,我这里的操作是直接使用库的简称,这是因为人家在写 LazyImport 的时候,已经按我们写代码的习惯安排好了: ? 怎么样? ?...很简单,进入到你安装的 pyforest 中,在 user_imports.py 中添加即可,一般路径如下: ~/.pyforest/user_imports.py 比如,我在这里添加一个 import

55320

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

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

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

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

    在深入探讨之前,让我先来介绍一下背景故事。我的任务是分析文本文件中的一些以逗号分隔的数据,如下所示:这个文本文件包含若干宽度可变的十六进制值,每行至少三个字段。我只关心第一个和第三字个段。...这个嵌套列表会生成以下字节码:然后,我一些自己的代码进行扩展,最终得到了以下代码:错误事实证明,Python 无法按照我的想象将可迭代的文本分解与推导式结合起来,你必须把 .split(",") 调用放在另一个列表中...下图展示了正确的生成器表达式与我编写的代码之间的差异:你看出问题所在了吗?代码中的问题在于,在分解文本之前,.split() 的返回值是迭代器。...我不确定,但我相信这关系到最初提出列表推导式的建议时确立的实现细节。最后,我在 CPython 的贡献者 Crowthebird 的帮助下解决了这个问题,他演示了在不使用推导式的情况下重写代码的问题。...错误的写法:正确的写法:这个问题可以得到解决吗?这实际上是因为我对 Python解释器的理解有错,解释器本身没有问题。

    20620

    你写的Python代码规范吗?

    2.1缩进 我们知道在写 if条件、for循环、while循环、函数等语句时都是需要缩进的,正常来说缩进只要有缩进空格就行,具体缩进几个都行,所谓的无规矩不成方圆,想象一下,你习惯缩进3个,我习惯缩进5...2.2最长字符 Python中一行的字符数限制为79个,但是有的时候会超过79,这个时候我们就需要进行换行,在换行的时候优先使用小括号,中括号以及大括号中的隐式续行方式,而不是使用反斜杠进行续行。...在 Python 代码中亦是如此。但是空格不可滥用。 建议在二元运算符两边加一个空格:如赋值(=),增量赋值(+=,-=),比较(==,,!...3.在Jupyter_notebook使用 上面讲了几种规范,我们可以严格按照上面的规范去写代码,按照规范去做,总觉得会有种束缚,不太舒服,可是不按照规范去写,写出来的代码确实不太美观有不易读,那可怎么办呢...这个时候就可以在 Jupyter_notebook 中使用 PEP8 规范了。 ? 那具体该怎么用呢?选中你要规范化的代码,然后点击菜单栏中的「小锤子」,即可完成代码规范,就是这么简单。 ?

    1.6K30

    你真的会用python写mongodb的URI吗?

    python好的地方就是容易上手,这也是为什么现在那么多人都会点python的原因。但是你要把这个python写好吧,还真得花点功夫,比如今天咱要说的这个URI吧?...大家都知道,模仿官方文档给的,copy一份,改几个参数就好了。但是你有没有想过,如果是这样的话,岂不是hard code了?那又有人会说了,写成配置文件不就好了么?这也是一个方法。...P[_\w]+)$' # python的正则表达式,预编译,加速字符串匹配 regex = re.compile(r) # 通过在centos(或者ubuntu)中设置的系统变量来控制...mongolab_url = os.environ['MONGOLAB_URI'] match = regex.search(mongolab_url) # groupdict可以将正则表达式中的命名捕获的关键字和捕获来的值变成...聪明的你不妨试试,说不定同事们对你惊呼一声:“哎哟~还不错哦~” 如果你对今天的内容还感兴趣的话,何不点个赞再走呢?如果感兴趣到想赞赏我,就不要犹豫啦~ ----

    72030

    学 Python ,能提升你的竞争力吗?

    你可能会疑惑:老师,你这不是前后矛盾吗? 不是。 Python 要学,但这项技能,真的不是这么应用的。 连接 Python 无门槛,这么简单,学会了也毫不稀奇,那学它还有什么用? 用处大了。...其他基于 Python 的机器学习课程,也像雨后春笋一般遍地开花。 例如在 fast.ai 的课程里,实现同样的协同过滤功能,你再也不用写那一堆 Matlab 文件和函数了。...那是因为这个巨大协作网络中开发框架的人,“刚巧”也是用 Python 来封装细节。你们在说同样的语言,因此你可以把他们的研究成果,“拿来”使用。...要是说你对 Python 的知识全面系统获取到了,那简直是在骗人。 就像你学龄前的时候,基本上也算能用中文对话了,对吧? 但是,你知道“回”字有四种写法吗?...资源 学习 Python 的资源,我在《如何高效学Python?》一文中已经为你详细做过介绍和推荐,这里就不再赘述了。 此处只介绍我最近发现的2个新资源,都是免费的。 一个是 IBM 提供的系列课程。

    80330

    Steganographer:能帮助在图片中隐藏数据的Python隐写工具

    Steganographer Steganographer是一款功能强大的隐写工具,该工具基于Python编程语言开发,能够帮助广大研究人员在一张图片中实现数据或文件的隐写。...这个Python模块可以将文件隐藏在一张图片之中(当前版本仅支持PNG文件),并将包含了隐写数据的文件导出至磁盘中存储。可隐写的最大文件大小取决于图片的尺寸。...导出完成之后,你可以看一看这两张图片在修改前后的区别。...工具效果展示 原始图片: 修改后的图片: 没错,我们的文件已经成功隐藏在了这张图片里面,大家能看得出区别吗工作机制 该工具的实现原理非常简单,如果我们改变每一个像素的LSB(最低有效位算法),那么这个修改变化在图片上是不会产生很大区别的...像素的最大变化单位可以是4个单位,并且在PNG图像中值得变化范围是(0, 255),所以这种变化在图片上并不显著。 在PNG图像中,每个像素有3个通道,即红、绿、蓝。

    1.7K10

    这些用 Python 写的牛逼程序脚本,你玩过吗?

    编译:Python开发者 - Jake_on 英文:Quora http://python.jobbole.com/85986/ 有网友在 Quora 上提问,「你用 Python 写过最牛逼的程序/...这个表格中包含了 (所有电影)在 IMDb URL, 年份,情节,分类,获奖信息,演员信息,以及其他的你可能在 IMBb找到的信息。下面是脚本执行后,生成的表格范例: ?...;) Source on GitHub: imdb 你也可以有一个个人 IMDb 数据库!一个电影爱好者还能够要求更多吗?...伴随着每次你标记的照片,Recognizer 会被更新,并且还会包含上一次的训练素材。在训练过程中,你可以增加新的名字。我使用 python 库 tkinter 做了一个 GUI。...板球比分通知器 我猜想这个功能已经在别的地方提到过了。一个窗口通知器。(在右下角的通知区域,它会告诉你实时比分以及评论信息)。如果你愿意的化,在某些时间段,你也可以关掉它。

    1.5K40

    你知道在终端执行 Python 代码的方式吗?

    1、通过标准输入和管道因为如何用管道传东西给一个进程是属于 shell 的内容,我不打算深入解释。毋庸置疑,你可以将代码传递到 Python 中。...2、通过 -c 指定的字符串如果你只需要快速地检查某些内容,则可以在命令行中将代码作为字符串传递。...我知道有些人喜欢在一个包里写一个main子模块,然后将其__main__.py写成: from . import mainif __name__ == “__main__”: main.main() 就我个人而言...我上篇文章 [6]比作者的观点激进,认为连那句 if 语句都不该写。)...5、执行一个压缩文件如果你确实有多个文件和/或依赖模块,并且希望将所有代码作为一个单元发布,你可以用一个__main__.py,放置在一个压缩文件中,并把压缩文件所在目录放在 sys.path 里,Python

    2.4K20

    在python中读取和写入CSV文件(你真的会吗?)「建议收藏」

    作者简介:苏凉(专注于网络爬虫,数据分析) 博客主页:苏凉.py的博客 系列专栏:Python基础语法专栏 名言警句:海阔凭鱼跃,天高任鸟飞。...无论你是学生党还是上班族都可以使用,这里涵盖了面试题库,在线刷题,各个大厂的面试/笔试真题等。如果你还是学生,最重要的一点就是模拟面试功能,智能AI1v1面试,帮助你早日拿到大厂offer!...如果CSV中有中文,应以utf-8编码读写. 1.导入CSV库 python中对csv文件有自带的库可以使用,当我们要对csv文件进行读写的时候直接导入即可。...r:以读方式打开文件,可读取文件信息 w: 已写方式打开文件,可向文件写入信息。...a+:以读写方式打开文件,文件指针移至末尾 b:以二进制打开文件 结语 csv的读写就介绍到这里啦,希望能对你有所帮助。

    5.2K30

    C++中inline深入解析:你写的inline真的有用吗?

    C++中inline深入解析:你写的inline真的有用吗?在C++编程中,inline关键字常常被提及,但它的真正含义和作用却常常被误解。...编译器在调用add时,可能会将其替换为a + b的表达式。inline的优缺点优点减少函数调用开销:内联函数消除了函数调用的开销,尤其是在小型函数中,这种优化效果尤为明显。...因此,过度依赖inline并不总是必要的。总结在C++中,inline关键字可以在特定情况下提高性能,但并不是万能的。...以下是一些默认被视为内联的函数类型:1. 类的成员函数在类定义内部定义的成员函数默认是内联的。这意味着如果你在类的定义中直接实现了一个成员函数,编译器会将其视为内联函数。...内联命名空间中的函数在C++11及以后的版本中,内联命名空间中的函数也会被视为内联。这种方式常用于版本控制,确保在使用时不会引入不必要的符号冲突。

    27010

    【Python进阶】你真的明白NumPy中的ndarray吗?

    这也就是在NumPy 中数据存储的方式。...2 NumPy高维数组索引与转置 2.1 索引 当提到索引时,你可能觉得很简单,不就是通过索引获取某个元素吗?道理的确是这样的。但是在面对高维数组时,通过索引来获取某个元素还是比较麻烦的。...2.2 高维数组转置 高维数组的转置一直是学习NumPy的一个难点,尽管在NumPy中只需要调用numpy.transpose就可以完成转置操作,但是你真的能分析清楚为什么结果是这样的吗?...相信你已经看出了具体的差别了,那就是轴的索引顺序的互换。因为在代码中我们要求0轴和1轴互换,因此转置后的结果实际上就是a[1,0]会变成原数组a[0,1];a[0,1]会变成原数组a[1,0]。...【TensorFlow2.0】TensorFlow2.0专栏上线,你来吗?

    2K10

    在Python中实现你自己的推荐系统

    在本教程中,你将使用奇异值分解(SVD)实现基于模型的CF和通过计算余弦相似实现基于内存的CF。 我们将使用MovieLens数据集,它是在实现和测试推荐引擎时所使用的最常见的数据集之一。...用户-产品矩阵的例子: blog8 在构建了用户-产品矩阵后,计算相似性并创建一个相似性矩阵。 在产品-产品协同过滤中的产品之间的相似性值是通过观察所有对两个产品之间的打分的用户来度量的。 ?...标准的协同过滤方法在这样的设置下表现不佳。在接下来的教程中,你将深入研究这一问题。...-2 译文链接:https://github.com/ictar/pythondocument/blob/master/Science%20and%20Data%20Analysis/在Python...中实现你自己的推荐系统.md

    2.9K100

    大数据能消除在招聘和相关商业行为中的偏见吗?

    翻译|佳灵 校对|孙强 在招聘和相关日常商业行为中,企业正更多地转向大数据。这已经引发了关于偏见是否会被根除的讨论。大数据真的能消除偏见?...基本类型的信息,如支付记录、负债、信用类型、新增信贷和信用记录被考虑在内。这是数据驱动的主要部分,仅仅以信用为基础。同样的方法能用于人力资源吗?...一、衡量人价值的大数据 除了贷款业,在很多地方已经做了对人的评估。...它触及到由大学领导的研究,表明计算机算法能够反映出创建它们的人的偏见。特别是关于性别和种族的歧视。 二、如何让大数据成为你的优势 在谈到招募应聘者时,大数据能帮上忙,但是还有很多要做。...整合社交媒体 如今有无数的工具可以用来从社交媒体配置文件中收集信息,找到有才华的应聘者。求职者通常上网分享他们的个人信息和求职经历。

    69960

    Java中Interface天天都在写,你知道其背后的原理是什么吗?

    来源:网络技术联盟站 链接:https://www.wljslmz.cn/19657.html 接口是java中的核心概念之一,Java 接口是 Java 编程语言的核心部分,不仅在 JDK 中而且在...在 Java 中,接口是一种抽象类型,包含方法和常量变量的集合,它是Java中的核心概念之一,用于实现抽象、多态和多重继承。...如果我们需要在接口中添加一个新方法,可以在接口中添加方法而无需实现,但是这个不太现实,因为你一旦在接口中定义了一个新的方法,那么所有实现这个接口的实现类必须要重写这个新的方法,这肯定不是我们想要的结果...与 Interface 中的其他方法不同,这些静态方法包含函数的完整定义,并且由于定义完整且方法是静态的,因此这些方法在实现类中不能被覆盖或更改。...接口中的静态方法可以在接口中定义,但不需要在实现类中重写。

    40440

    你的数据科学python编程能力过关吗?看看这40道题你能得几分

    它为整个生态系统带来了一种通用的编程语言。通过Python,人们在一个生态系统中不仅可以转换和操作数据,还可以建立强大的管道模型和机器学习的工作流。...在Analytics Vidhya(一家著名的国外大数据博客,也是本文出处),我们都爱Python。我们中的大多数人使用Python作为机器学习的首选工具。...,能填充表中的空值?...D) None of these 答案:B 选项B是正确的 21 21)在许多数据科学工程中,你需要将数据框架转换成字典。...None of the above 答案:(B) 选项B是正确的 结语 如果你正在学习Python,请确保自己通过上面的测试。这不仅会帮你评估技能,也可以帮你看清自己在整个学习群体中的位置。

    1.1K30

    Python中的这几种报错你遇到过吗?

    总第139篇/叶枫 我新开了一个系列,叫做『读者分享系列』,这个系列主要用来发布一些我书的读者写的一些读书笔记和学习笔记的。 今天是第一篇,这一篇来自我们的学习委员叶枫同学。...3.代码缩进错误(IndentationError): python的缩进非常严格,行首多个空格,少个空格都会报错。 ? 4.输入法半角全角: 特别是传入中文字符串时,引号、逗号。 ?...6.总结和记录这次遇到问题解决的思路,如有可能可以写一篇文章做分享 也可以看下我的git代码库,书本上的案例我都做过一次 https://github.com/xmaniu/Excel-Python...11.题外话: 特别是初学者,尽量跟着书本的代码案例走一遍,然后再根据自己的实际情况修改代码,不要好高骛远,觉得太简单了,就随着自己的性子来,然后出了问题,一脸懵逼了,然后到处问,因为书本的知识点是循序渐进的...最重要的一点就是一定要动手敲代码,别偷懒直接复制别人的代码。

    63330

    Python中eval带来的潜在风险,你知道吗?

    00 前言 eval是Python用于执行python表达式的一个内置函数,使用eval,可以很方便的将字符串动态执行。...比如动态模块的引入,举个栗子,一个在线爬虫平台上爬虫可能有多个并且位于不同的 模块中,服务器端但往往只需要调用用户在客户端选择的爬虫类型,并通过后端的exec或者eval进行动态调用,后端编码实现非常方便...比如熟悉的abs,open等内置函数,都是在该模块中以字典的方式存储的,下面两种写法是等价的: >>> __builtins__.abs(-20) 20 >>> abs(-20) 20 我们也可以自定义内置函数...,并像使用Python中的内置函数一样使用它们: >>> def hello(): ... print 'shabi' >>> __builtin__....__subclasses__()] 这里我就不输出结果了,如果你执行的话,可以看到很多有趣的模块,比如file,zipimporter,Quitter等。

    3K80
    领券