《疯狂Python讲义》重要笔记——Python简介
简介
Python是一种面向对象、解释型、弱类型的脚本语言,同时也是一种功能强大的通过语言,它提供了高效的高级数据结构,还有简单有效的面向对象编程。
在大数据、人工智能(AI)领域应用广泛,因此变得流行。这种语言的名字(Python意为“蟒蛇”)来自于BBC节目“Monty Python的飞行马戏团”,而与爬行动物没有关系。(小小吐槽一下:看过一些书的蟒蛇封面,有点吓到,可爱一点多好。)
Python的优势:
清晰的语法和可扩展性。语法清晰,甚至不是一种格式自由的语言。可扩展性体现在模块多,具有丰富和强大的类库。(可以参见以下的故事......)
有一位美丽的公主,被关押在一个城堡中最高的塔上,一条凶恶的巨龙看守着她,需要有一位勇士营救她…
Java –– 赶到那里,找到巨龙,开发出一套由多个功能层组成的恶龙歼灭框架,写几篇关于这种框架的文章…但巨龙并没有被消灭掉。
.NET –– 赶到哪里,看到了Java的做法,完全拷贝过来,试图去杀掉巨龙,但巨龙把他吃掉了。
C –– 赶到那里,对巨龙不屑一顾,举起剑,砍掉巨龙的头,找到公主…把公主晾在一边,去看看有没有最新提交的linux内核代码。
C++ –– 先打造出一根针,然后在上面添加各种功能特征,直到最后汇聚成一把复杂的剑,这把剑复杂到只有他能理解其中的功能…杀死龙,但他过桥时遇到了麻烦,因为内存溢出了。
JavaScript –– 他创建了脚本网页,当网页运行时,脚本会除掉巨龙,他一加载页面,一些美丽的少女就向他抛来了鲜花,发出来尖叫。不幸的是,他没有认真分析这个类似蜥蜴的怪物——也被称作Mozilla,他得到的只是让控制台里填满了error信息,《Book of Mozilla》记载了他是如何被吞掉的。
Python:
import slay_dragon # 救出了公主
编译型和解释型语言的区别:
编译型语言:
使用专门的编译器,针对特定平台(操作系统)将某种高级语言源代码一次性“翻译”成可被该平台硬件执行的机器码(包括机器指令和操作数),并包装成该平台所能识别的可执行程序的格式,这个转换过程称为编译(Compile)。编译生成的可执行程序可以脱离开发环境,在特定的平台上独立运行。
有些程序编译结束后,还可能需要对其他编译好的目标代码进行链接,即组装两个以上的目标代码模块生成最终的可执行程序,通过这个方式实现低层次的代码服用。
编译型的优势:
一次性编译成机器码,所以脱离开发环境独立运行,运行效率较高。
编译型的弱点:
通常被编译成特定平台上的机器码,所以编译生成的可执行程序通常无法移植到其他平台上运行;如果需要移植,则必须将源代码复制到特定平台上,针对特定平台进行修改。
解释型语言:
解释型语言是指使用专门的解释器对源代码逐行解释成特定平台的机器码并立即执行的语言。解释型语言通常不会进行整体性的编译和链接处理,解释型语言相当于把编译型语言中的编译和解释过程混合到一起同时完成。
解释型的优势:
跨平台
解释型的弱点:
1、速度慢:相比于Java、C++、C等编译型语言运行速率较慢一些
2、源代码加密困难:编译型语言的源程序会被编译成目标程序,Python是直接对源代码逐行运行,因此对源代码加密比较困难。(但好像可以通过把Python代码封装成C或C++解决)
写文章时Python的最新版——Python 3.7.3下载:
强烈推荐:Python3.7.3中文文档
《疯狂Python讲义》重要笔记——Python简介的更多相关文章
- 《疯狂java讲义》笔记 1-5章
1.编译语言和解释语言理解,摘自李刚老师的<疯狂Java讲义>第三版: 就是说,Java和.net都是编译型有事解释型语言.编译型就是根据不同平台编译成不同的可执行机器码,编译过程中会进行 ...
- 读《疯狂Java讲义》笔记总结一
最近在读<疯狂Java讲义>,现把其中遇到的一些自己以前没掌握的点儿记录下来. 1.字符串相关 字符串不是基本类型,字符串是一个类,也就是一个引用类型. 字符串转int类型String a ...
- Python知识点入门笔记——Python文件操作、异常处理及random模块使用
文件是存储在外部介质的数据集合,通常可以长久保存,前提是介质不易损坏 Python的绝对路径写法: E:\\编程学习资料\\爬取某社区高清无码大图.py E:/编程学习资料/爬取某社区高清无码大图.p ...
- Python知识点入门笔记——Python的基本数据类型
Python的数字分为4种类型:整数(int).浮点数(float).布尔值(bool).复数(complex). type()函数可以知道数据的类型,如type(233)是int型,type(233 ...
- 疯狂Android讲义 - 学习笔记(八)
第10章 Service与BroadcastReceiver 10.1 Service简介 Service组件也是可执行的程序,有自己的生命周期,创建.配置Service与创建.配置Activity的 ...
- 疯狂Android讲义 - 学习笔记(七)
第8章 Android数据存储与IO Java IO的数据存储可以移植到Android应用开发上来,Android系统还提供了一些专门的IO API. Android系统内置了SQLite数据库,S ...
- 【疯狂Java讲义学习笔记】【流程控制与数组】
[学习笔记]1.switch语句后的expression表达式的数据类型只能是byte.short.char.int四个整数类型.String(Java 7后才支持)和枚举类型. 2.数组的长度不可变 ...
- 【疯狂Java讲义学习笔记】【数据类型与运算符】
[学习笔记]1.8bit = 1byte,4byte = 1word.Java中的整型数据有byte(1字节),short(2字节),int(4字节),long(8字节).Java中的浮点数据有flo ...
- 疯狂Android讲义 - 学习笔记(六)
第7章 7.1 使用简单图片 7.1.1 使用Drawable对象 7.1.2 Bitmap和BitmapFactory 7.2 绘图 7.2.1 Android绘图基础:Canvas.Paint等 ...
- 疯狂Android讲义 - 学习笔记(五)
第五章 Android使用统一的Intent对象来封装“启动意图”,不管是启动Activity.Service组件.或者BroadcastReceiver等,提供了一致的编程模型.Intent设计有点 ...
随机推荐
- What is the difference between Gradle Build and Gradle Sync?
Gradle Build helps you to compile your Android app into an APK while Gradle Sync will sync up all yo ...
- 通过offset值的设置使html元素对齐
今天是我第一次写这个随笔,为了记录我发现的一个jquery的offset的值的问题. 这个offset的值会因为页面标签是否处于隐藏状态而表现出不同的值,隐藏状态时,offset的值是相对于直接父亲的 ...
- Mysql 之主从复制,mysql-proxy读写分离
准备两台mysql服务器,master(192.168.43.64).slave(192.168.84.129) master配置: log-bin=mysql-bin binlog_format=m ...
- linux最常用的快捷键
1.ctrl+alt+T 调出命令行界面 2.alt+f4 关闭当前窗口
- 如何在mac里面,把xcode代码同步到 tfs 的 git库(克隆git篇)
如果是新的git库,还没有任何内容可以克隆,可以参考:http://www.cnblogs.com/IWings/p/6755795.html 在mac安装visual studio code htt ...
- Typescript编译设置
TypeScript MSBuild编译选项,用记事本打开工程文件,进行修改,如<TypeScriptGeneratesDeclarations>true</TypeScriptGe ...
- kvm virt-install 使用小结
简介: virt-install 能够为KVM.Xen或其它支持libvrit API的hypervisor创建虚拟机并完成GuestOS安装. 此外,它能够基于串行控制台.VNC或SDL支持文本或图 ...
- 本地文件与服务器文件同步shell脚本
为何创建此脚本是因为方便项目的布署,不需要手动地去同步不同的项目,而只需要简单的执行shell脚本,输入项目名就能发布到服器上. 1.shell文件代码 #!/bin/sh read -t 30 -p ...
- 学习MPI并行编程记录
简单的MPI程序示例 首先,我们来看一个简单的MPI程序实例.如同我们学习各种语言的第一个程序一样,对于MPI的第一个程序同样是"Hello Word". /* Case 1 he ...
- Linux:SSH连接原理
1,SSH开启 2,执行:ssh username@ip地址 例如ssh root@10.1.1.1 3,查看cat ./ssh/kown_hosts 里面就保存了10.1.1.1的公钥了 4,对比一 ...