整理了十五条Python冷知识,条条精辟,建议收藏!

超级冷门的Python知识点,收集了好久一起分享出来给大家了,不喜勿喷~

... 这是省掉号,在Python中,全部皆政策。它也不破例。在 Python 中,它叫做 Ellipsis 。在 Python 3 中你能够直接写…来得到这玩意。
整理了十五条Python冷知识,条条精辟,建议收藏!

python学习关注我们企鹅qun: 8393 83765 各类入门学习资料免费分享哦!

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

整理了十五条Python冷知识,条条精辟,建议收藏!
它转为布尔值时为真

终究,这东西是一个单例。
整理了十五条Python冷知识,条条精辟,建议收藏!

这东西有啥用呢?风闻它是Numpy的语法糖,不玩 Numpy 的人,能够说是没啥用的。

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

整理了十五条Python冷知识,条条精辟,建议收藏!
怎样修改阐冥具提示符

正常情况下,咱们在 终端下 实施Python 指令是这样的。

整理了十五条Python冷知识,条条精辟,建议收藏!
你是否想过 >>> 和 ... 这两个提示符也是能够修改的呢?
整理了十五条Python冷知识,条条精辟,建议收藏!

增量赋值的功用更好

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

这儿运用用 += 举例,以下两种写法,在作用上是等价的。
整理了十五条Python冷知识,条条精辟,建议收藏!

+= 其不和运用的魔法办法是 iadd,假定没有完结这个办法则会退而求其次,运用 add 。

这两种写法有什么差异呢?

用列表举例 a += b,运用 add 的话就像是运用了a.extend(b),假定运用 add 的话,则是 a = a+b,前者是直接在原列表上进行扩展,而后者是先从原列表中取出值,在一个新的列表中进行 扩展,然后再将新的列表政策回来给变量,明显后者的消耗要大些。所以在能运用增量赋值的时分尽量运用它。

古怪的字符串

示例一
整理了十五条Python冷知识,条条精辟,建议收藏!

示例二

整理了十五条Python冷知识,条条精辟,建议收藏!
示例三
整理了十五条Python冷知识,条条精辟,建议收藏!

and 和 or 的取值次第

python学习关注我们企鹅qun: 8393 83765 各类入门学习资料免费分享哦!

and 和 or 是咱们再了解不过的两个逻辑运算符。而咱们一般只用它来做判断,很少用它来取值。假定一个or表达式中所有值都为真,Python会挑选第一个值,而and表达式则会挑选第二个。

默许参数最好不为可变政策

函数的参数分三种 - 可变参数 - 默许参数 - 关键字参数,这三者的具体差异,和运用办法在 廖雪峰的教程里会具体的阐明。这儿就不转移了。今天要说的是,传递默许参数时,新手很简略踩雷的一个坑。

先来看一个示例
整理了十五条Python冷知识,条条精辟,建议收藏!

在这儿,你能够暂停一下,考虑一下会输出什么?考虑往后,你的答案是否和下面的一起呢?

假定是,那你能够跳过这部分内容,假定不是,请接着往下看,这儿来剖析一下。Python 中的 def 句子在每次实施的时分都初始化一个函数政策,这个函数政策就是咱们要调用的函数,能够把它当成一个一般的政策,只不过这个政策具有一个可实施的办法和部分特征。

关于参数中供给了初始值的参数,由于 Python 中的函数参数传递的是政策,也能够认为是传地址,在第一次初始化 def 的时分,会先生成这个可变政策的内存地址,然后将这个默许参数 item_list 会与这个内存地址绑定。在后面的函数调用中,假定调用方指定了新的默许值,就会将正本的默许值掩盖。假定调用方没有指定新的默许值,那就会运用正本的默许值。

访问类中的私有办法

咱们都知道,类中可供直接调用的办法,只需公有办法(protected类型的办法也能够,可是不主张)。也就是说,类的私有办法是无法直接调用的。

先看个例子
整理了十五条Python冷知识,条条精辟,建议收藏!

已然都是办法,那咱们真的没有办法能够直接调用吗?当然有啦,只是主张你千万不要这样弄,这儿只是广泛,我们先了解一下:

类首字母纷歧定是大写

在正常情况下,咱们所编写的所见到的代码,如同都默许了类名首字母大写,而实例用小写的这一准则。但这并不是强制性的,即便你反过来的也没有联络。但有一些内置的类,首字母都是小写,而实例都是大写。

python学习关注我们企鹅qun: 8393 83765 各类入门学习资料免费分享哦!

比方 bool 是类名,而 True,False 是其实例; 比方 ellipsis是类名,Ellipsis是实例; 还有 int,string,float,list,tuple,dict等一系列数据类型都是类名,它们都是小写。

时有时无的切片异常

举个简单的栗子

执行完后和咱们预期的相同,会抛出索引异常。

整理了十五条Python冷知识,条条精辟,建议收藏!
可是今天要说的必定不是这个,而是一个你可能会不知道的冷常识。

比如像下这种写法就不会报索引异常,实施my_list[5:],会回来一个新list:。

哪些情况下不需要续行符

在写代码时,为了代码的可读性,代码的排版是尤为重要的。为了完结高可读性的代码,咱们常常运用到的就是续行符 。
整理了十五条Python冷知识,条条精辟,建议收藏!

那有哪些情况下,是不需要写续行符的呢?经过总结,在这些符号中心的代码换行能够省掉掉续行符: , , {}

整理了十五条Python冷知识,条条精辟,建议收藏!
其他还有,在多行文本注释中 ''' ,续行符也是能够不写的。

上面只举了一些简略的比方。但你要学会触类旁通。相同的,在以下这些场景也相同适用

类,和函数的界说。列表推导式,字典推导式,集结推导式,生成器表达式。

Py2 也能够运用 print

我信任应该有不少人,思维定式,觉得只需 Py3 才能够运用 print,而 Py2 只能运用print ’’。其实并不是这样的。在Python 2.6之前,只支撑

<pre >print "hello"

</pre>

在Python 2.6和2.7中,能够支撑如下三种

在Python3.x中,能够支撑如下两种

两次 return

咱们都知道,try…finally… 句子的用法,不论try里边是正常实施仍是报异常,终究都能确保finally能够实施。同样的咱们又知道,一个函数里只需遇到 return 函数就会立马完毕。根据以上这两点,咱们来看看这个比方,终究作业进程是如何的?
整理了十五条Python冷知识,条条精辟,建议收藏!

惊讶的发现,在 try 里的return竟然不起作用。原因是,在try…finally…句子中,try中的return会被直接忽视,由于要确保 finally 能够实施。

for 死循环

for 循环能够说是 根底得不能再根底的常识点了。可是假定让你用 for 写一个死循环,你会写吗?(问题来自群友 陈**)这是个开放性的问题,在往下看之前,主张你先尝试自己考虑,你会怎样答复。好了,假定你还没有思路,那就来看一下 一个海外 MIT 群友的答复:

是不是懵逼了。iter 还有这种用法?这为啥是个死循环?这真的是个冷常识,关于这个常识点,你假定看中文网站,可能找不到相关资料。还好你能够经过 IDE 看py源码里的注释内容,介绍了很具体的运用办法。

正本iter有两种运用办法,一般咱们的认知是第一种,将一个列表转化为一个迭代器。而第二种办法,他接纳一个 callable政策,和一个sentinel 参数。第一个政策会一向作业,直到它回来 sentinel 值才完毕。那 int 呢,这又是一个常识点,int 是一个内建办法。经过看注释,能够看出它是有默许值0的。你能够在终端上输入 int 看看是不是回来0。

由于int 永久回来0,永久回来不了1

所以这个 for 循环会没有终点。一向作业下去。这些问题和答案都源自于群友的智慧。假定你也想参与咱们的议论中,请到群众号后台,添加我个人微信。

小整数池

先看比方。

整理了十五条Python冷知识,条条精辟,建议收藏!
为防止整数一再恳求和毁掉内存空间,Python 界说了一个小整数池 [-5, 256] 这些整数政策是提早建立好的,不会被废物回收。以上代码请在 终端Python环境下查验,假定你是在IDE中查验,并不是这样的作用。那终究一个示例,为啥又是True?由于当你在同一行里,一起给两个变量赋同一值时,阐冥具知道这个政策现已生成,那么它就会引用到同一个政策。假定分红两成的话,阐冥具并不知道这个政策现已存在了,就会从头恳求内存存放 这个政策。

intern机制

字符串类型作为Python中最常用的数据类型之一,Python阐冥具为了前进字符串运用的功率和运用功用,做了许多优化。例如:Python阐冥具中运用了 intern(字符串驻留)的技能来前进字符串功率,什么是intern机制?就是相同的字符串政策只是会保存一份,放在一个字符串储蓄池中,是共用的,当然,必定不能 改动,这也选择了字符串有必要是不可变政策。

结语

如果你跟我一样都喜欢python,想成为一名优秀的程序员,也在学习python的道路上奔跑,欢迎你加入python学习群:839383765 群内每天都会分享最新业内资料,分享python免费课程,共同交流学习,让学习变(编)成(程)一种习惯!

转载于:https://blog.51cto.com/14186420/2346973

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值