这9个Python冷知识大神也只知道5个,你离大神的距离有多远?
1.如何修改解释器提示符
正常情况下,我们在 终端下 执行Python 命令是这样的。
image你是否想过 >>> 和 ... 这两个提示符也是可以修改的呢?
image2. ... 这是省略号,在Python中,一切皆对象。它也不例外。
学习Python中有不明白推荐加入交流群号:
前面548中间377后面875
群里有志同道合的小伙伴,互帮互助,
群里有不错的学习教程! QQ图片20180808144134.jpg在 Python 中,它叫做 Ellipsis 。
在 Python 3 中你可以直接写…来得到这玩意。
image而在 2 中没有…这个语法,只能直接写Ellipsis来获取。
image它转为布尔值时为真
image最后,这东西是一个单例。
image这东西有啥用呢?据说它是Numpy的语法糖,不玩 Numpy 的人,可以说是没啥用的。
在网上只看到这个 用 ... 代替 pass ,稍微有点用,但又不是必须使用的。
image3. 增量赋值的性能更好
诸如 += 和 *= 这些运算符,叫做 增量赋值运算符。
这里使用用 += 举例,以下两种写法,在效果上是等价的。
image image这两种写法有什么区别呢?
image4. 奇怪的字符串
示例一
image示例二
image示例三
image5. 默认参数最好不为可变对象
函数的参数分三种 - 可变参数 - 默认参数 - 关键字参数。
今天要说的是,传递默认参数时,新手很容易踩雷的一个坑。
先来看一个示例
image image image如果是,那你可以跳过这部分内容,如果不是,请接着往下看,这里来分析一下。
imagePython 中的 def 语句在每次执行的时候都初始化一个函数对象,这个函数对象就是我们要调用的函数,可以把它当成一个一般的对象,只不过这个对象拥有一个可执行的方法和部分属性。
image image6.两次 return
image基于以上这两点,我们来看看这个例子,到底运行过程是怎么样的?
image惊奇的发现,在 try 里的return居然不起作用。
image7.intern机制
字符串类型作为Python中最常用的数据类型之一,Python解释器为了提高字符串使用的效率和使用性能,做了很多优化。
例如:
image代码:
image8.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