码农的世界Python新世界python热爱者

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

2018-09-04  本文已影响17人  Python新世界
image

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

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

image

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

image

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

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

前面548中间377后面875

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

群里有不错的学习教程! QQ图片20180808144134.jpg

在 Python 中,它叫做 Ellipsis 。

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

image

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

image

它转为布尔值时为真

image

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

image

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

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

image

3. 增量赋值的性能更好

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

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

image image

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

image

4. 奇怪的字符串

示例一

image

示例二

image

示例三

image

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

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

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

先来看一个示例

image image image

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

image

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

image image

6.两次 return

image

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

image

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

image

7.intern机制

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

例如:

image

代码:

image

8.Python写一个for 死循环

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

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

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

for i in iter(int, 1):pass

image image image image

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

image

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

9. 时有时无的切片异常

这是个简单例子

image

执行一下,果然报错索引

image

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

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

image

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

image
上一篇下一篇

猜你喜欢

热点阅读