二、Python语言简介

Python : 大蟒蛇

荷兰人 Guidovan Rossum(吉多·范罗苏姆) 于1989年发明了🐍🐍🐍
在这里插入图片描述
Q: 这是在喝枸杞奶茶吗?


一些关于Python的News

Python之禅——zen

导入这个库:没错就是这个:this

>>> import this

下面导入this就是执行了this.py

"""this.py模块的源码"""

s = """Gur Mra bs Clguba, ol Gvz Crgref

Ornhgvshy vf orggre guna htyl.
Rkcyvpvg vf orggre guna vzcyvpvg.
Fvzcyr vf orggre guna pbzcyrk.
Pbzcyrk vf orggre guna pbzcyvpngrq.
Syng vf orggre guna arfgrq.
Fcnefr vf orggre guna qrafr.
Ernqnovyvgl pbhagf.
Fcrpvny pnfrf nera'g fcrpvny rabhtu gb oernx gur ehyrf.
Nygubhtu cenpgvpnyvgl orngf chevgl.
Reebef fubhyq arire cnff fvyragyl.
Hayrff rkcyvpvgyl fvyraprq.
Va gur snpr bs nzovthvgl, ershfr gur grzcgngvba gb thrff.
Gurer fubhyq or bar-- naq cersrenoyl bayl bar --boivbhf jnl gb qb vg.
Nygubhtu gung jnl znl abg or boivbhf ng svefg hayrff lbh'er Qhgpu.
Abj vf orggre guna arire.
Nygubhtu arire vf bsgra orggre guna *evtug* abj.
Vs gur vzcyrzragngvba vf uneq gb rkcynva, vg'f n onq vqrn.
Vs gur vzcyrzragngvba vf rnfl gb rkcynva, vg znl or n tbbq vqrn.
Anzrfcnprf ner bar ubaxvat terng vqrn -- yrg'f qb zber bs gubfr!"""

d = {}
for c in (65, 97):
    for i in range(26):
        d[chr(i+c)] = chr((i+13) % 26 + c)

print("".join([d.get(c, c) for c in s]))

有好事者翻译了:

优美胜于丑陋
明了胜于晦涩
简洁胜于复杂
复杂胜于凌乱
扁平胜于嵌套
间隔胜于紧凑
可读性很重要
即便假借特例的实用性之名,也不可违背这些规则
不要包容所有错误,除非你确定需要这样做
当存在多种可能,不要尝试去猜测
而是尽量找一种,最好是唯一一种明显的解决方案
虽然这并不容易,因为你不是 Python 之父 (hahaha
做也许好过不做,但不假思索就动手还不如不做
如果你无法向人描述你的方案,那肯定不是一个好方案;反之亦然
命名空间是一种绝妙的理念,我们应当多加利用


Python最没用的特点

Easy


Python一些较为简单的特点

  • 高级语言:用 Python语言编写程序时无须考虑如何管理你的程序使用的内存等这类底层细节。
  • 免费、开源:Python是自由软件之一。

Python一些较为难理解的特点

  • Python是 完全 面向对象的语言。
    函数、模块、数字、字符串都是对象,并且完全支持 继承、重载、派生,有益于增强源代码的复用性。Python支持重载运算符和动态类型。
  • 可扩展性:
    如果需要一段关键代码运行得更快或者希望某些算法不公开,
    可以 部分程序用 C或 C++编写,然后在 Python程序中使用它们。
    反过来也可以把 Python 嵌入 C/C++程序,从而向程序用户提供脚本功能。
  • 丰富的库:Python标准库很庞大。
    感觉很多情况就是学习库的使用,不要让自己变成机械的调用机器!

Python在执行时,

首先会将“.py”文件中的源代码翻译成 Python的 byte code(字节码),

然后再由 Python Virtual Machine(Python虚拟机)来执行这些翻译好的 byte code。

基于 C的 Python翻译出的字节码文件,通常是“.pyc”格式。

来看看.cpy的字节码文件

算了,没什么好看的,反正不是这个年纪能看的东西
在这里插入图片描述
但可以解释一下 .cpython-93.pyc 是什么意思。

cpython:c语言实现的Python解释器,
-93:代表的是python3.9版本

.cpy的由来——Python解释器的具体工作

  1. 完成模块的加载和链接;
  2. 将源代码编译为PyCodeObject对象(即字节码),写入内存中,供CPU读取;
  3. 从内存中读取并执行,结束后将PyCodeObject写回硬盘当中,也就是复制到.pyc或.pyo文件中,以保存当前目录下所有脚本的字节码文件。

之后若再次执行该脚本,
它先检查【本地是否有上述字节码文件】和【该字节码文件的修改时间是否在其源文件之后】,
是就直接执行,否则重复上述步骤。


这些 .cpy 的文件存在和 .py 文件相同的文件夹下,
的一个名为 __pycache__ 的文件夹下。如图:(我用来爬王者皮肤的scrapy框架的相关文件)
在这里插入图片描述
在这里插入图片描述
第一次执行代码之后

Python解释器已经把编译的字节码放在__pycache__文件夹中,
这样以后再次运行的话,如果被调用的模块未发生改变,
那就直接跳过编译这一步,
直接去__pycache__文件夹中去运行相关的*.pyc文件,
大大缩短了项目运行前的准备时间。


end

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

adingable

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值