对比编程语言的四种错误处理方法,哪种才是最优方案?

2023-05-08
阅读 4 分钟
920
错误处理是编程的一个基本要素。除非你写的是“hello world”,否则就必须处理代码中的错误。在本文中,我将讨论各种编程语言在处理错误时使用的最常见的四种方法,并分析它们的优缺点。

Python 为什么不设计 do-while 循环结构?

2022-01-17
阅读 4 分钟
1.1k
它的核心语义是:先执行一遍循环体代码,然后执行一遍条件语句,若条件语句判断为真,则继续执行循环体代码,并再次执行条件语句;直到条件语句判断为假,则跳出循环结构。

Python最会变魔术的魔术方法,我觉得是它!

2020-12-14
阅读 4 分钟
1.2k
在上篇文章中,我有一个核心的发现:Python 内置类型的特殊方法(含魔术方法与其它方法)由 C 语言独立实现,在 Python 层面不存在调用关系。

Python 为什么不支持 switch 语句?

2020-10-08
阅读 6 分钟
1.2k
主要是因为 switch 在其它语言中太常见了,而 Python 却不支持,这样的独特性本身就值得关注,而回答这个问题,也能更加看清 Python 在程序设计上的理念,了解 Python 在语法设计中的决策过程。

耗时两年,我终于出了一本电子书!

2020-10-06
阅读 2 分钟
1.4k
2018 年国庆节前,我开通了微信公众号“Python猫”,写下了“喵星来客”系列的第一篇文章。2020 年国庆节前,我累计创作和翻译了 130+ Python 技术文章。时光匆匆,两年光阴很快就过去了。在这个特殊的时间节点上,我感觉有必要把创作的内容做一下梳理,于是,也就诞生出了这一本自制的电子书——《优雅的Python》。 看得出来...

详解 Python 的二元算术运算,为什么说减法只是语法糖?

2020-09-09
阅读 8 分钟
1.1k
原题 | Unravelling binary arithmetic operations in Python作者 | Brett Cannon译者 | 豌豆花下猫(“Python猫”公众号作者)声明 | 本翻译是出于交流学习的目的,基于 CC BY-NC-SA 4.0 授权协议。为便于阅读,内容略有改动。大家对我解读属性访问的博客文章反应热烈,这启发了我再写一篇关于 Python 有多少语法实际上只...

Python 中的数字到底是什么?

2020-09-05
阅读 11 分钟
1.2k
花下猫语:在 Python 中,不同类型的数字可以直接做算术运算,并不需要作显式的类型转换。但是,它的“隐式类型转换”可能跟其它语言不同,因为 Python 中的数字是一种特殊的对象,派生自同一个抽象基类。在上一篇文章 中,我们讨论到了 Python 数字的运算,然后我想探究“Python 的数字对象到底是什么”的话题,所以就翻译...

Python 到底是强类型语言,还是弱类型语言?

2020-08-31
阅读 6 分钟
1.5k
0、前言我在上一篇文章中分析了 为什么 Python 没有 void 类型 的话题,在文章发布后,有读者跟我讨论起了另一个关于类型的问题,但是,我们很快就出现了重大分歧。我们主要的分歧就在于:Python 到底是不是强类型语言? 我认为是,而他认为不是。他写了一篇很长的文章《谁告诉的你们Python是强类型语言!站出来,保证不...

Python 为什么没有 void 关键字?

2020-08-21
阅读 3 分钟
1k
The void type, in several programming languages derived from C and Algol68, is the type for the result of a function that returns normally, but does not provide a result value to its caller. 在 C、Algol68 及它们所派生的几种编程语言中,void 类型是函数正常返回的一种类型,但是不会给调用者返回一个值。

Python 函数为什么会默认返回 None?

2020-08-15
阅读 2 分钟
1.3k
Python 有一项默认的做法,很多编程语言都没有——它的所有函数都会有一个返回值,不管你有没有写 return 语句。 本文出自“Python为什么”系列,在正式开始之前,我们就用之前讨论过的 pass语句 和 ...对象 作为例子,看看 Python 的函数是怎样“无中生有”的:可以看出,我们定义的两个函数都没有写任何的 return 语句,但是...

Python 为什么要在 18 年前引入布尔类型?且与 C、C++ 和 Java 都不同?

2020-08-12
阅读 7 分钟
906
花下猫语:在上一篇《Python 为什么能支持任意的真值判断? 》文章中,我们分析了 Python 在真值判断时的底层实现,可以看出 Python 在对待布尔值时,采用了比较宽泛的态度。官方对此是怎么考虑的呢?下面的文章是我刚翻译的 PEP-285,作者是 Python 之父 Guido van Rossum。这个 PEP 意义非常重大,Python 的 bool 类型...

Python 为什么能支持任意的真值判断?

2020-08-08
阅读 4 分钟
1.8k
比如,在判断某个对象是否不为 None 时,或者判断容器对象是否不为空时,并不需要显示地写出判断条件,只需要在 if 或 while 关键字后面直接写上该对象即可。

C++模板沉思录(上)

2020-07-30
阅读 21 分钟
2.3k
花下猫语: 在我们读者群里,最近出现了比较多关于 C++ 的讨论,还兴起了一股学习 C++ 的风气。樱雨楼小姐姐对 C++ 的模板深有研究,系统地梳理成了一篇近 4 万字的文章!本文是上篇,分享给大家~

Python 为什么要有 pass 语句?

2020-07-27
阅读 3 分钟
1.2k
本文出自“Python为什么”系列,请查看全部文章 关于 Python 中的pass语句,它似乎很简单(只有 4 个字母),即使是没有任何编程经验的初学者也能很快地掌握它的用法。 官方文档 的介绍十分简单,下面的三个例子可以让我们快速地了解到如何使用它: 简单而言,pass 是一种空操作(null operation),解释器执行到它的时候...

Python 为什么只需一条语句“a,b=b,a”,就能直接交换两个变量?

2020-07-14
阅读 3 分钟
1.6k
从接触 Python 时起,我就觉得 Python 的元组解包(unpacking)挺有意思,非常简洁好用。 最显而易见的例子就是多重赋值,即在一条语句中同时给多个变量赋值: {代码...} 在此例中,赋值操作符“=”号的右侧的两个数字会被存入到一个元组中,即变成 (1,2),然后再被解包,依次赋值给“=”号左侧的两个变量。 如果我们直接写x...

Python 3.10 的首个 PEP 诞生,内置类型 zip() 迎来新特性

2020-07-02
阅读 5 分钟
3.7k
译者前言:相信凡是用过 zip() 内置函数的人,都会赞同它很有用,但是,它的最大问题是可能会产生出非预期的结果。PEP-618 提出给它增加一个参数,可以有效地解决大家的痛点。这是 Python 3.10 版本正式采纳的第一个 PEP,「Python猫」一直有跟进社区最新动态的习惯,所以翻译了出来给大家尝鲜,强烈推荐一读。(PS:严...

Python 为什么不支持 i++ 自增语法,不提供 ++ 操作符?

2020-06-21
阅读 3 分钟
2k
在 C/C++/Java 等等语言中,整型变量的自增或自减操作是标配,它们又可分为前缀操作(++i 和 --i)与后缀操作(i++ 和 i--),彼此存在着一些细微差别,各有不同的用途。

Python 为什么没有 main 函数?为什么我不推荐写 main 函数?

2020-06-03
阅读 3 分钟
1.4k
毫无疑问 Python 中没有所谓的 main 入口函数,但是网上经常看到一些文章提“Python 的 main 函数”、“建议写 main 函数”……

Python 小技巧:如何实现操作系统兼容性打包?

2020-03-17
阅读 3 分钟
2.3k
有一个这样的问题:现要用 setuptools 把一个项目打包成 whl 文件,然后 pip install 在 Windows/Linux 两种操作系统上,但是该项目中有一些依赖库只有 Windows 上才有(例如 pywinauto、pywingui、pywinrm),那么问题是,如何实现打包文件的可兼容性安装?

对比 C++ 和 Python,谈谈指针与引用

2019-07-12
阅读 5 分钟
12.8k
花下猫语:本文是学习群内 樱雨楼 小姐姐的投稿。之前已发布过她的一篇作品《当谈论迭代器时,我谈些什么?》,大受好评。本文依然是对比 C++ 与 Python,来探讨编程语言中极其重要的概念。祝大家读有所获,学有所成!

编程语言之问:何时该借用,何时该创造?

2019-06-30
阅读 5 分钟
1.5k
6 月 22 日,Python 之父 Guido 发了一条推特,说了 Python 的一则历史故事,他说 elif 是从 C 语言中偷过来的:

当谈论迭代器时,我谈些什么?

2019-06-26
阅读 6 分钟
1.8k
花下猫语:之前说过,我对于编程语言跟其它学科的融合非常感兴趣,但我还说漏了一点,就是我对于 Python 跟其它编程语言的对比学习,也很感兴趣。所以,我一直希望能聚集一些有其它语言基础的同学,一起讨论共通的语言特性间的话题。不同语言的碰撞,常常能带给人更高维的视角,也能触及到语言的根基,这个过程是极有益的。

Python猫荐书系统之四:《Python源码剖析》

2018-11-18
阅读 4 分钟
8.5k
大家好,新一期的荐书栏目如期跟大家见面了。 先来看看今天的主角是谁:《Python源码剖析——深度探索动态语言核心技术》,2008年出版,作者 @陈儒 ,评分8.7分。 是的,你没看错,出版年份2008年。这本书基于Python2.5,到了十年后3.7版本的年代,可以说大部分内容已经过时了,而且,还可能缺失了很多关键内容。那你也许...