快来看啊!原来Python里还有这些的一些有趣的东西!

举报
Python爱好者 发表于 2020/12/28 23:56:48 2020/12/28
【摘要】 相信大家使用python也或多或少有一段时间了,只是用它来写代码,却没有发现它里面其实有很多神奇的事情。 Python 作为一门开源的语言,它的社区为其贡献了一些十分幽默的东西。之前有一篇《Python中的惊喜彩蛋》已经给大家做过介绍了,这次我们就来看看新的更好玩的东西吧~ TIPS:如果您想观察彩蛋,可以加上休眠时间。 1 来只乌龟压压惊 Python ...

相信大家使用python也或多或少有一段时间了,只是用它来写代码,却没有发现它里面其实有很多神奇的事情。

Python 作为一门开源的语言,它的社区为其贡献了一些十分幽默的东西。之前有一篇《Python中的惊喜彩蛋》已经给大家做过介绍了,这次我们就来看看新的更好玩的东西吧~

TIPS:如果您想观察彩蛋,可以加上休眠时间。

1

来只乌龟压压惊

Python 有一个酷酷的很有趣的库,叫turtle,他是用来画图的,但是他的本质就是只小乌龟哦!没想到它真的能看出小乌龟吧!来看看吧:


   
  1. import turtle
  2. import time
  3. t =turtle.Pen()
  4. t.shape("turtle")
  5. for i in range(1000):
  6. time.sleep(1)
  7.     t.forward(i)

(仔细看!

2

数字最大是多少

在Python中,无穷大的hash是10^5×π。有趣的是, float(“-inf”)的hash在Python 3版本里是“-10^5×π”而在Python 2版本里是“-10^5×e”。(虽然Python2在20天以前已经不在维护了~)


   
  1. >>> infinity = float('infinity')
  2. >>> hash(infinity)
  3. 314159
  4. >>> hash(float('-inf'))
  5. -314159

3

使用re.DEBUG查看正则表达式的匹配过程

正则表达式是Python的一大特色,但是调试起来会很痛苦,很容易得出一个bug。幸运的是,Python可以打印出正则表达式的解析树,通过re.debug来显示re.compile的完整过程。一旦你理解了语法,你就可以发现你的错误。


   
  1. re.compile("^\[font(?:=(?P<size>"
  2. "[-+][0-9]{1,2}))?\](.*?)[/font]",
  3. re.DEBUG)
  4. at at_beginning
  5. literal 91
  6. literal 102
  7. literal 111
  8. literal 110
  9. literal 116
  10. max_repeat 0 1
  11. subpattern None
  12. literal 61
  13. subpattern 1
  14. in
  15. literal 45
  16. literal 43
  17. max_repeat 1 2
  18. in
  19. range (48, 57)
  20. literal 93
  21. subpattern 2
  22. min_repeat 0 65535
  23. any None
  24. in
  25. literal 47
  26. literal 102
  27. literal 111
  28. literal 110
  29. literal 116

4

enumerate函数

enumerate()是python的内置函数

enumerate在字典上是枚举、列举的意思

对于一个可迭代的(iterable)/可遍历的对象(如列表、字符串),enumerate将其组成一个索引序列,利用它可以同时获得索引和值

enumerate多用于在for循环中得到计数


   
  1. >>>seasons = ['Spring', 'Summer', 'Fall', 'Winter']
  2. >>>list(enumerate(seasons))
  3. [(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]
  4. >>>list(enumerate(seasons, start=1)) # 小标从 1 开始
  5. [(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]

5

面试官灵魂拷问:函数默认参数

面试官们经常在笔试中出这样的一道题目:


   
  1. def hello(a=[]):
  2. a.append(1)
  3. return a

调用这个函数的结果是多少,我再调用一次,结果是多少?

很明显结果不可能都是[1]


   
  1. print(hello())
  2. [1]
  3. print(hello())
  4. [1, 1]
  5. print(hello())
  6. [1, 1, 1]

6

万能的eval()函数

将字符串str当成有效的表达式来求值并返回计算结果。

它可以把字符串里面的任何结构都变出来,还可以计算表达式的值。非常的灵活好用。例子如下:


   
  1. str1 = "[1,2,3,4,5]"
  2. print(eval(str1), type(eval(str1)))
  3. [1, 2, 3, 4, 5] <class 'list'>
  4. str2 = "1+2-3*4/(2-5)"
  5. print(eval(str2), type(eval(str2)))
  6. 7.0 <class 'float'>
  7. str3 = "{1:'a', 2:'c'}"
  8. print(eval(str3), type(eval(str3)))
  9. {1: 'a', 2: 'c'} <class 'dict'>

7

Python的爱情观

python也有自己的爱情观,这个大家就不知道了吧!!!哈哈。


   
  1. import this
  2. love = this

这就是爱!


   
  1. this is love
  2. True

爱是对的!不对!


   
  1. love is True
  2. False

爱是错的!不对!


   
  1. love is False
  2. False

爱不分对错!嗯!

love is not True or False

True

爱就是爱啊!


   
  1. love is love
  2. True

大家如果感觉还不错的话,就请点个'在看'吧!感谢!

 

A

蚂蚁森林背后的灰色产业链

B

我在支付宝1分钟查到了对象的开房记录

C

你见过哪些要命的奇葩代码!

D

AI斗图,你OUT了!

“扫一扫,免费制作炫酷二维码”

文章来源: blog.csdn.net,作者:敲代码的灰太狼,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/tongtongjing1765/article/details/104067157

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。