这9个Python冷知识大神也只知道5个,你离大神的距离有多远?

1.如何修改解释器提示符

正常情况下,我们在 终端下 执行Python 命令是这样的。

你是否想过 >>> 和 ... 这两个提示符也是可以修改的呢?

2. ... 这是省略号,在Python中,一切皆对象。它也不例外。

学习Python中有不明白推荐加入交流群号:

前面548中间377后面875

群里有志同道合的小伙伴,互帮互助,

群里有不错的学习教程!

在 Python 中,它叫做 Ellipsis 。

在 Python 3 中你可以直接写…来得到这玩意。

而在 2 中没有…这个语法,只能直接写Ellipsis来获取。

它转为布尔值时为真

最后,这东西是一个单例。

这东西有啥用呢?据说它是Numpy的语法糖,不玩 Numpy 的人,可以说是没啥用的。

在网上只看到这个 用 ... 代替 pass ,稍微有点用,但又不是必须使用的。

3. 增量赋值的性能更好

诸如 += 和 *= 这些运算符,叫做 增量赋值运算符。

这里使用用 += 举例,以下两种写法,在效果上是等价的。

这两种写法有什么区别呢?

4. 奇怪的字符串

示例一

示例二

示例三

5. 默认参数最好不为可变对象

函数的参数分三种 - 可变参数 - 默认参数 - 关键字参数。

今天要说的是,传递默认参数时,新手很容易踩雷的一个坑。

先来看一个示例

如果是,那你可以跳过这部分内容,如果不是,请接着往下看,这里来分析一下。

Python 中的 def 语句在每次执行的时候都初始化一个函数对象,这个函数对象就是我们要调用的函数,可以把它当成一个一般的对象,只不过这个对象拥有一个可执行的方法和部分属性。

6.两次 return

基于以上这两点,我们来看看这个例子,到底运行过程是怎么样的?

惊奇的发现,在 try 里的return居然不起作用。

7.intern机制

字符串类型作为Python中最常用的数据类型之一,Python解释器为了提高字符串使用的效率和使用性能,做了很多优化。

例如:

代码:

8.Python写一个for 死循环

for 循环可以说是 基础得不能再基础的知识点了。

但是如果让你用 for 写一个死循环,你会写吗?

这是个开放性的问题,在往下看之前,建议你先尝试自己思考,你会如何解答。

for i in iter(int, 1):pass

由于int() 永远返回0,永远返回不了1

所以这个 for 循环会没有终点。一直运行下去。

9. 时有时无的切片异常

这是个简单例子

执行一下,果然报错索引

但是今天要说的肯定不是这个,而是一个你可能会不知道的冷知识。

来看看,如下这种写法就不会报索引异常,执行my_list[5:],会返回一个新list:[]。

其实总共有十五个问题,但是我知道基本没人可以看完,所以我在此只例举了九个。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180904A1KG8K00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券