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

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

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

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


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



640.jpg



来只乌龟压压惊


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

import turtle
import time
t =turtle.Pen()
t.shape("turtle")
for i in range(1000):
    time.sleep(1)
    t.forward(i)


(仔细看!

640.png




数字最大是多少

在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



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')]




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

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

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

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

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

print(hello())
[1]
print(hello())
[1, 1]
print(hello())
[1, 1, 1]



万能的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'>



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


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

相关文章
|
Devops jenkins Java
【devops】六、CI、CD入门操作
【devops】六、CI、CD入门操作
273 0
|
存储 Java 对象存储
springboot配置阿里云OSS存储实现文件上传下载功能
【1月更文挑战第1天】springboot配置阿里云OSS存储实现文件上传下载功能
3775 3
|
6月前
|
存储 SQL 监控
ClickHouse 应用剖析:设计理念、机制与实践
ClickHouse 是一款高性能的列式数据库管理系统,主要用于实时的大数据分析场景。它由俄罗斯 Yandex 公司开源于 2016 年,在网页日志分析、物联网监控、广告计费等领域有广泛应用。ClickHouse 通过列式存储、向量化执行和分布式架构,实现对海量数据的快速查询分析。本文将介绍 ClickHouse 的设计理念,以及在实际使用中如何处理数据删除更新、冷热数据分离等问题,并提供常见配置的调优建议和异常问题的处理方法。
713 14
ClickHouse 应用剖析:设计理念、机制与实践
|
前端开发 JavaScript
前端基础(十五)_时间对象、字符串对象
本文介绍了JavaScript中时间对象的操作方法,包括获取和设置年、月、日、小时、分钟、秒等,以及如何格式化时间显示,同时提及了字符串对象的常用方法。
144 0
前端基础(十五)_时间对象、字符串对象
|
12月前
|
存储 机器学习/深度学习 人工智能
AllData数据中台核心菜单二:数据平台
杭州奥零数据科技有限公司成立于2023年,专注于数据中台业务,维护开源项目AllData并提供商业版解决方案。AllData提供数据集成、存储、开发、治理及BI展示等一站式服务,支持AI大模型应用,助力企业高效利用数据价值。
|
12月前
|
安全 网络协议 物联网
物联网僵尸网络和 DDoS 攻击的 CERT 分析
物联网僵尸网络和 DDoS 攻击的 CERT 分析
|
JavaScript
Node.js的安装
这篇文章提供了Node.js的安装指南,包括从官网下载、安装步骤、验证安装是否成功,以及如何安装淘宝镜像加速器cnpm或使用淘宝npm镜像来加速npm包的安装过程。
Node.js的安装
|
NoSQL 网络安全 Redis
蓝易云 - 【redis问题】Caused by: io.netty.channel
以上就是解决"Caused by: io.netty.channel"错误的一些可能的方法。
298 2
|
12月前
|
安全
ICP备案服务码是什么,有什么用
【10月更文挑战第11天】 ICP备案服务码是什么,有什么用
1780 2
|
API Linux
【鸿蒙软件开发】ArkTS基础组件之TextTimer(文本显示计时)、TimePicker(时间选择)
【鸿蒙软件开发】ArkTS基础组件之TextTimer(文本显示计时)、TimePicker(时间选择)
1197 0
【鸿蒙软件开发】ArkTS基础组件之TextTimer(文本显示计时)、TimePicker(时间选择)