python冷知识(续)
python 冷知识
1.交互式中修改最大递归深度
大家都知道使用递归是有风险的,递归深度过深容易导致堆栈的溢出。
那到底,默认递归次数限制是多少呢?
可以使用sys这个库来查看
>>> import sys
>>> sys.getrecursionlimit()
1000
既然可以查当然也可以自定义修改次数,退出即失效。不过这玩意还是不要轻易去碰,可能导致系统崩溃了
2.交互式中“_”操作符
对于“_”,我想很多人都很熟悉。
给变量取名好艰难,用 _
; 懒得长长的变量名,用 _
; 无用的垃圾变量,用 _
;
以上,我们都很熟悉了,今天要介绍的是他在交互式中使用。
>>>3+4
7
>>>_
7
>>>name='ming'
>>>name
'ming'
>>>_
'ming'
它可以返回上一次的运行结果。
但是,如果是print函数打印出来的就不行了。
>>>3+4
7
>>>_
7
>>>print("ming")
ming
>>>_
7
3. 空字符串计数
求一个字符串里,某子字符(串)出现的次数。在Python中使用 count() 函数,就可以轻松实现。
比如下面几个常规例子
>>>"aabb".count("a") 2
但是如果使用空字符串呢,你可能想不到会是这样的结果。
>>>"aabb".count("") 5
4.数值与字符串比较
在 Python2 中,数字可以与字符串直接比较。结果是数值永远比字符串小。
>>>100000000<""
True
>>>100000000<"ming"
True
但在 Python3 中,却不行。
>>>100000000<""
TypeError:'<'notsupportedbetweeninstancesof'int'and'str'
5. 链式比较
先给看一个示例
>>>False==False==True
False
你知道这个表达式会返回 False 吗?
我再给你举个例子,你可能就懂了。
f18<age<60:
print("youngman")
如果还不明白,再给你整个等价写法。
>>>False==FalseandFalse==True
False