相信大家使用python也或多或少有一段时间了,只是用它来写代码,却没有发现它里面其实有很多神奇的事情。
Python 作为一门开源的语言,它的社区为其贡献了一些十分幽默的东西。之前有一篇《Python中的惊喜彩蛋》已经给大家做过介绍了,这次我们就来看看新的更好玩的东西吧~
TIPS:如果您想观察彩蛋,可以加上休眠时间。
1
来只乌龟压压惊
Python 有一个酷酷的很有趣的库,叫turtle,他是用来画图的,但是他的本质就是只小乌龟哦!没想到它真的能看出小乌龟吧!来看看吧:
import turtle
import time
t =turtle.Pen()
t.shape("turtle")
for i in range(1000):
time.sleep(1)
t.forward(i)
(仔细看!)
2
数字最大是多少
在Python中,无穷大的hash是10^5×π。有趣的是, float(“-inf”)的hash在Python 3版本里是“-10^5×π”而在Python 2版本里是“-10^5×e”。(虽然Python2在20天以前已经不在维护了~)
>>> infinity = float('infinity')
>>> hash(infinity)
314159
>>> hash(float('-inf'))
-314159
3
使用re.DEBUG查看正则表达式的匹配过程
正则表达式是Python的一大特色,但是调试起来会很痛苦,很容易得出一个bug。幸运的是,Python可以打印出正则表达式的解析树,通过re.debug来显示re.compile的完整过程。一旦你理解了语法,你就可以发现你的错误。
re.compile("^\[font(?:=(?P<size>"
"[-+][0-9]{1,2}))?\](.*?)[/font]",
re.DEBUG)
at at_beginning
literal 91
literal 102
literal 111
literal 110
literal 116
max_repeat 0 1
subpattern None
literal 61
subpattern 1
in
literal 45
literal 43
max_repeat 1 2
in
range (48, 57)
literal 93
subpattern 2
min_repeat 0 65535
any None
in
literal 47
literal 102
literal 111
literal 110
literal 116
4
enumerate函数
enumerate()是python的内置函数
enumerate在字典上是枚举、列举的意思
对于一个可迭代的(iterable)/可遍历的对象(如列表、字符串),enumerate将其组成一个索引序列,利用它可以同时获得索引和值
enumerate多用于在for循环中得到计数
>>>seasons = ['Spring', 'Summer', 'Fall', 'Winter']
>>>list(enumerate(seasons))
[(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]
>>>list(enumerate(seasons, start=1)) # 小标从 1 开始
[(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]
5
面试官灵魂拷问:函数默认参数
面试官们经常在笔试中出这样的一道题目:
def hello(a=[]):
a.append(1)
return a
调用这个函数的结果是多少,我再调用一次,结果是多少?
很明显结果不可能都是[1]
print(hello())
[1]
print(hello())
[1, 1]
print(hello())
[1, 1, 1]
6
万能的eval()函数
将字符串str当成有效的表达式来求值并返回计算结果。
它可以把字符串里面的任何结构都变出来,还可以计算表达式的值。非常的灵活好用。例子如下:
str1 = "[1,2,3,4,5]"
print(eval(str1), type(eval(str1)))
[1, 2, 3, 4, 5] <class 'list'>
str2 = "1+2-3*4/(2-5)"
print(eval(str2), type(eval(str2)))
7.0 <class 'float'>
str3 = "{1:'a', 2:'c'}"
print(eval(str3), type(eval(str3)))
{1: 'a', 2: 'c'} <class 'dict'>
7
Python的爱情观
python也有自己的爱情观,这个大家就不知道了吧!!!哈哈。
import this
love = this
这就是爱!
this is love
True
爱是对的!不对!
love is True
False
爱是错的!不对!
love is False
False
爱不分对错!嗯!
love is not True or False
True
爱就是爱啊!
love is love
True