前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >快来看啊!原来Python里还有这些的一些有趣的东西!

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

作者头像
用户7466307
发布2020-06-16 22:57:08
3620
发布2020-06-16 22:57:08
举报

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

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

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

1 来只乌龟压压惊

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

代码语言:python
复制
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天以前已经不在维护了~)

代码语言:python
复制
>>> infinity = float('infinity')
>>> hash(infinity)
314159
>>> hash(float('-inf'))
-314159

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

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

代码语言:python
复制
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循环中得到计数

代码语言:python
复制
>>>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 面试官灵魂拷问:函数默认参数

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

代码语言:python
复制
def hello(a=[]):
    a.append(1)
    return a

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

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

代码语言:python
复制
print(hello())
[1]
print(hello())
[1, 1]
print(hello())
[1, 1, 1]

6 万能的eval()函数

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

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

代码语言:python
复制
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也有自己的爱情观,这个大家就不知道了吧!!!哈哈。

代码语言:python
复制
import this
love = this

这就是爱!

代码语言:python
复制
this is love
True

爱是对的!不对!

代码语言:python
复制
love is True
False

爱是错的!不对!

代码语言:python
复制
love is False
False

爱不分对错!嗯!

代码语言:python
复制
love is not True or False
True

爱就是爱啊!

代码语言:python
复制
love is love
True
本文参与?腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-03-25,如有侵权请联系?cloudcommunity@tencent.com 删除

本文分享自 软件测试test 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com