`
san_yun
  • 浏览: 2653106 次
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

python知乎问题

 
阅读更多

怎么样才算是精通 Python?

「精通」要满足如下条件:

  1. 熟知主流硬件体系(x86, x64)
  2. 熟知 CPython 的具体实现,如若可能至少通读源码三遍以上
  3. 熟知每条 Python bytecode 如何被解释执行
  4. 熟知每条 Python 语句如何 compile 成 bytecode
  5. 熟知 Python 主要数据结构所采用的优化手段
  6. 熟知 JIT 以及哪些场合下 PyPy 会比 CPython 有较大性能提高、以及有什么代价


所以我一直只敢称自己为 「中级 Pythonista」

@米嘉 引用的 StackOverflow 上列的那几项条件是作为将 Python 用于主要工作语言所需要的基本条件 ,敢于因此而称自己「精通 Python」要让不少人笑掉大牙。况且那几项还有几个严重问题:

  • 第 3点:如若可能,尽量避免 map/reduce/fitler,而用 list/generator/set comprehension,代码要清晰得多,GvR 如此说。xrange 和 range 的区别在 Python 3 中马上就要滚蛋了,所以如非必要,不要大量使用 xrange。
  • 第5点:敢于在 CPython 中大量使用递归是对 CPython 实现的公然侮辱。Python 的多个稳定实现都没有 TCO,递归会让性能迅速下降。记住一点:Python 中函数调用非常 昂贵,可读性、可维护性影响不大的情况下,能展开函数调用的时候尽量展开、递归能转化成循环的尽量转化。递归也不是人类自然的思考方式。
  • 第 7点:看书是对的,但不要把 Python 当作一门经典函数式语言对待,因为它不是。你当它是,它会很痛苦(“为毛要这样滥用我!?”),你也会很痛苦(“为毛你不这样实现 blah blah!?”)。SICP 是本好书,但不要因此而教条。要清楚的知道什么时候用函数式,什么时候用面向对象,什么时候用面向过程,什么时候用面向任务,什么时候用面向结果。在一棵树上吊死是大多数非理性死忠的表现。

 

使用 Python 会降低程序员的编程能力吗?

编程不是为了写代码而编程, 而是为了解决问题而编程.
基本上语言有几个典型, 不完整, 随便一说
1. 机器语言, 汇编
2. 围绕机器设计, 给人用的语言, C
3. 围绕给人用设计的语言, Python, Ruby 等

你用 Python 之类的语言, 实际上是把更多时间花在了 "编写程序" 上, 而不是纠结跟 "机器对话" 上.  

Python 自诩的 "效率", 是说他虽然运行的慢, 但是写得快, "编写+运行完成" 的时间少于 C 语言这种写得慢运行得快的程序的时间, 也是一种效率的提升. 这里不能体现能力吗? 我不认为.

Ruby 和 Python 相比有什么优势和缺陷?

Ruby 和 Python 太相似了,取舍大部分都是个人喜好上的原因。比如我就觉得 Python 的 “There is only one way to do it.” 比 Ruby 的 “There are many ways to do it.” 要好,这不光是考虑团队协作的问题,更重要的是自己能很快明白自己三个月前写的没有任何注释的代码是在干什么。当然也有很多人觉得自由和灵活要比可读性来 的重要,所以我说这个是个人喜好的原因。

客观上的 Ruby 比 Python 的优势我想到的有这么几个:

Block 应该是语言层面上 Ruby 比 Python 更酷的地方,Python 的匿名函数(lambda function)制约太多,属于鸡肋(BFDL GvR 不认可函数式编程的许多方面)。

OS X 上的话,Ruby 比 Python 最重要的优势可能是 MacRuby (http://www.macruby.org/ ) 的存在。我大胆猜测以后 MacRuby 将成为 Objective-C 之外(如果不是完全替代的话)的苹果官方语言。MacRuby 除了能更加方便快捷的创建 Cocoa 应用外,ruby block 使得利用 OS X 的 Grand Central Dispatch 变得容易,在以后的多核、混合核(CPU+GPU)应用上非常重要。

劣势:

Ruby 的硬伤之一在于性能。官方实现 Ruby 1.9 比 CPython 逊色不少。另外 Python 拥有诸如 Numpy, Psyco, PyPy, Cython 等多种性能倍增的途径,相比之下 Ruby 想要提高性能的途径则非常有限。

Ruby 的硬伤之二在于第三方包。Ruby 传入英语世界并大规模流行起来的时间不长,大部分的第三方包都和 Web 相关,Web 领域外的包数量远远不及 Python。特别是在科研等方面的区别非常明显,很多学科领域都有基于 Python 的成熟应用,而几乎找不到 Ruby 的相关包。这除了历史渊源,也和 Python 更加简洁的语法(很多用 Python 做研究的人不是计算机专业的)以及前述的性能倍增器(主要是 Numpy 和 Scipy)有密切的关系。

 

分享到:
评论

相关推荐

    Python知乎爬虫代码

    本示例中,我们关注的是"Python知乎爬虫代码",这是一个针对初学者的爬虫项目,旨在帮助他们理解如何使用Python进行网页数据抓取。 首先,我们要了解什么是网络爬虫。网络爬虫(Web Crawler)是程序或脚本,自动...

    python知乎问题回答.md

    开源项目

    python课程大作业项目-基于python实现知乎文章爬取项目源码.zip

    python课程大作业项目-基于python实现知乎文章爬取项目源码.zippython课程大作业项目-基于python实现知乎文章爬取项目源码.zippython课程大作业项目-基于python实现知乎文章爬取项目源码.zippython课程大作业项目-...

    Python知乎回答多线程爬虫

    **功能** 通过用户提供的起始问题id,以及相关内容爬取数量,利用知乎的**相关问题**进行自动检索,并不断递归至用户提供的爬取数量(默认数量为20)。 **bug** 由于知乎具有一定的反爬,所以在相似问题检索时最大...

    python知乎评论爬虫源代码

    Python知乎评论爬虫源代码是用于自动化抓取知乎网站上用户评论信息的一种程序。爬虫在信息技术领域中,特别是数据挖掘和Web开发中扮演着重要角色。它通过模拟人类浏览器行为,自动遍历网页,抓取所需数据。在这个...

    基于Python的知乎用户数据爬虫与分析设计源码

    本项目是基于Python的知乎用户数据爬虫与分析设计源码,共有24个文件,包括7个JavaScript文件、5个Pyc文件等。系统通过Python实现知乎用户的爬虫功能,收集用户数据并进行分析。项目的设计注重数据的可视化和分析,...

    python不能登录知乎问题处理-处理解决知乎10001问题

    1)作者的谷歌版本使用的是88版本,最新版没有尝试 2)采用的是先打开一个谷歌浏览器,然后在代码里链接这个浏览器的方式进行解决问题的

    Python爬取知乎回答中的文本及图片

    在爬取知乎时,通常会通过问题ID来定位特定问题的页面。 接着,我们需要解析返回的网页内容。BeautifulSoup或lxml库是HTML解析的利器,它们可以解析HTML文档,提取我们需要的数据,比如回答的文本、用户信息以及...

    Python-知乎爬虫验证码自动识别

    在这个名为"Python-知乎爬虫验证码自动识别"的项目中,我们将深入探讨如何利用Python技术来应对网页上的验证码挑战,特别是在爬取知乎这类社交媒体平台时。验证码的识别是爬虫过程中的一大难点,因为它涉及到图像...

    python对知乎上的问题回答的爬取(可用)

    总之,Python爬虫实现对知乎问题回答的抓取,涉及到了HTTP请求、HTML解析、数据提取、异常处理等多个环节,是一个典型的网络数据获取和处理的过程。通过这个项目,你可以深入学习Python在网络爬虫领域的应用,并提升...

    Python知乎爬虫——爬取知乎用户简单数据信息

    萌新入坑代码,大佬勿喷

    python爬虫知乎小姐姐.zip

    在这个程序中,建议使用Anaconda来运行Python爬虫,因为这样可以确保所有必要的库和依赖都已经安装并且版本匹配,避免了可能的环境问题。 【颜值打分】 在完成人脸识别后,程序可能会利用某种算法对识别出的人脸...

    python知乎爬虫-断点续爬尝试

    在本项目中,我们探讨的主题是“Python知乎爬虫-断点续爬尝试”。这个标题暗示我们将讨论如何利用Python编写爬虫来抓取知乎网站上的信息,并且特别强调了断点续爬这一功能,这意味着我们的爬虫将具有在中断后从上次...

    python编写知乎爬虫实践.pdf

    "Python爬虫实践" 基于给定的文件信息,我们可以总结出以下关键知识点: 一、爬虫工作原理 * 爬虫的基本流程:种子URL → 下载网页内容 → 解析网页内容 → 存储已抓取的URL * 抓取策略:深度优先策略、广度优先...

    python知乎回答多线程爬虫

    ​ **功能** 通过用户提供的起始问题id,以及相关内容爬取数量,利用知乎的**相关问题**进行自动检索,并不断递归至用户提供的爬取数量(默认数量为20)。 **bug** 由于知乎具有一定的反爬,所以在相似问题检索时...

    Python应用实战-Python爬取、采集&可视化知乎问题的回答

    在本实践教程中,我们将深入探讨如何利用Python进行网络数据的爬取、采集与可视化,特别是在处理知乎问题的回答上。Python作为一门强大的编程语言,因其简洁的语法和丰富的库支持,成为了网络爬虫领域的首选工具。...

    Python-用Python如何分析一个知乎大V的专栏文章

    在这个案例中,我们将探讨如何使用Python来分析一个知乎大V的专栏文章。知乎作为一个知名的在线问答社区,提供了丰富的数据资源供我们进行研究。以下是一个详细的步骤指南,展示了如何利用Python进行这项任务。 ...

    金融外行如何入门量化交易 - 用Python的交易员 - 知乎 Live.mhtml

    金融外行如何入门量化交易 - 用Python的交易员 - 知乎 Live.mhtml

    python爬取知乎热榜了解时事

    python爬取知乎热榜内容实现时事了解

    python 知乎热榜的爬虫

    知乎热榜的爬虫,默认间隔一分钟爬一次,会接着爬热榜上问题的回答 进度用redis储存,结果存到mysql 启动 分布式的,先启动服务器端tw_spider_server,然后启动客户端zhihu_hot_spider即可 因为我只有一台电脑,...

Global site tag (gtag.js) - Google Analytics