Python的一些彩蛋和神仙玩法

发布于:2022-11-09 ⋅ 阅读:(8) ⋅ 点赞:(0) ⋅ 评论:(0)

0、创建一个列表,然后append自己。

a=[1,2,3]
a.append(a)

结果出现了省略号。查看图片 发现这个列表嵌套了无数层自己。
在这里插入图片描述
1、定义两个函数,互相调用对方。然后执行其中一个函数。

def a():
    b()
def b():
    a()
a()

结果发生了递归报错,而且报错信息很长。查看图片 “自己调用自己”的递归会省略报错信息,而“互相调用对方”的递归不会省略。
在这里插入图片描述
2、输入三个点,显示Ellipsis。
在这里插入图片描述
这就是省略号。

3、写一个程序:

import 递归模块
然后保存在Python的安装目录中,命名为递归模块。

然后就可以无限使用了:
在这里插入图片描述
4、定义一个函数,递归,再加上except RecursionError。

def f():
    try:
        print(1)
        f()
    except RecursionError:
        print(2)
        f()

然后运行这个函数。点击查看图片
在这里插入图片描述
达到最大递归层数后,仍然会继续递归下去:点击查看图片
在这里插入图片描述
然后按Ctrl+C中断:点击查看图片
在这里插入图片描述
最后打印出了大量的报错信息:点击查看图片
在这里插入图片描述
5、定义一个函数,将递归放到raise TypeError里。

def a():
    raise TypeError(a())

然后运行这个函数。结果没有TypeError,反而有RecursionError。
在这里插入图片描述
6、Python有一个对象,它的类型是自己。那就是:type。

type is type(type) #返回True
isinstance(type,type) #返回True

至于 type 本身,它的类型还是 type,所以它连自己都没放过,把自己都变成自己的对象了。

7、定义一个函数,将递归放到raise TypeError里,不过是在递归20次后结束递归。

b=0
def a():
    global b
    b+=1
    if not b>20:
        raise TypeError(a())

结果只弹出来一个TypeError。
在这里插入图片描述
8、输入下面的代码(共计128个input):

input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input(input())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))

结果在你输入内容之后,它会重复你输入的内容。然后你再输入内容,它又会重复。在执行128次后结束。
在这里插入图片描述
当然,代码不用输入那么长,直接用eval函数(将字符串内容当作代码执行),并用“字符串乘以整数”的方法得到那个很长的字符串。

eval('input('*128+')'*128)

9、导入types模块,里面有ModuleType。

import types
types.ModuleType

然后写types.ModuleType(‘datetime’),结果成功弄出来了一个datetime模块。

再写types.ModuleType(‘cat’),结果也成功了。但库里没有cat模块。
在这里插入图片描述
那么再试试用一下datetime的timedelta,结果提示没有这个内容。
在这里插入图片描述
原来,types.ModuleType(‘datetime’)这种写法,是创建了一个新模块,不是导入了模块。而且是“内置”(看图中的built-in),没有模块文件。
在这里插入图片描述
我们这样创建一个新模块,并赋值。

然后,在模块里创建一个变量,并赋值。
在这里插入图片描述
这样模块里就有内容了。

10、像上一条那样,创建一个模块,试试将模块名设置为非字符串类型:
在这里插入图片描述

结果报错。这时再正常用字符串模块名创建模块,然后修改一下__name__试试(__name__是模块名):
在这里插入图片描述
结果成功了。

最后:关于Python技术储备

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
在这里插入图片描述

二、Python必备开发工具

在这里插入图片描述

三、精品Python学习书籍

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。
在这里插入图片描述

四、Python视频合集

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
在这里插入图片描述

五、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。在这里插入图片描述

六、Python练习题

检查学习结果。
在这里插入图片描述

七、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
在这里插入图片描述
在这里插入图片描述
最后,千万别辜负自己当时开始的一腔热血,一起变强大变优秀。