python3 第一章 - 简介
1、什么是python
引用官方的话:Python是一种易于学习,强大的编程语言。它具有高效的高级数据结构,并通过简单而有效的方法来进行面向对象编程。Python的优雅语法和动态类型,以及其解释性质,使其成为在大多数平台上的许多领域的脚本和快速应用程序开发的理想语言。
这段话怎么理解呢?我们知道,任何编程语言的目的都是编写程序,而我们又是通过程序让计算机干活的。比如,播放一个mp3,玩一局吃鸡游戏,等等。计算的的大脑(CPU),通常是不能直接识别我们编写的程序,它只认机器指令。本质上,任何编程语言最终都会“翻译”成CPU可以执行的机器指令。跟据“翻译”的方式不同,编程语言可以分为两大类:编译型、解释型。Python是一种解释型的语言。(1)
不同的编程语言,干同一个活,编写的代码量,差距是很大的。形象的理解就是,做同一件事,你可能用C语言得写1000行代码,而用C#只要写100行,用Python则可能只要10行。所以Python是一种高级的语言。 (2)
需要注意的是,代码少的代价是运行速度慢,C程序运行1秒钟,C#程序可能需要5秒,而Python程序可能就需要20秒。Python程序通过Python解释器执行,执行效率比较低。
2、Python能做什么
各行各业到处都是Python的身影,可以做网站(比如 YouTube、豆瓣),可以做图片处理,可以做科学计算,也可以爬虫,甚至于游戏,学好Python后不用担心没有用武之地,Google就大量的在使用。
当然Python也有它不善长做的,比如操作系统,比如火箭控制系统等。我所说的不善长并非说不能,要记住很个语言都有自己善长的和不善长的,在合适的情况下选择合适的语言这才是程序员需要关心的。
3、Python的版本
Python有两个大版本:一个是2.x,一个是3.x。这两个版本是互相不兼容的,关于两者之间的区别我后面会提到。事实上2012的时候官方就说Python2将于2015年不再支持,2014年改成了2020年。也许2.x说终结还过早,但现在注流的第三方库大多都兼容了3.x,本系列的教程是基于3.6。
MIT的计算机第一门课一直在灌输两个道理:计算机程序是写给人看的,恰好能够运行;软件设计其实就是对于抽象复杂度的控制。这很有道理,哈哈,人生苦短,我用Python。
注(1):解释型的缺点是代码不能加密
注(2):高级编程语言通常都会提供一个比较完善的基础代码库,让你能直接调用。除了内置的库外,Python还有大量的第三方库。
python3 第一章 - 简介的更多相关文章
- 读书笔记 - javascript 高级程序设计 - 第一章 简介
第一章 简介 诞生时间 1995 最初用途 客服端验证 第一版标准 注意是标准 1997年 Ecma-262 一个完整的js实现由三部分组成 ECMAScript DOM 文档对象模型 BO ...
- Javascript模式(第一章简介)------读书笔记
一:模式 模式是一个通用问题的解决方案,可以提供一个更好的实践经验.有用的抽象化表示和解决一类问题的模板. 本书主要讨论如下三种类型的模式 1 设计模式:可复用面向对象软件的基础,包括singleto ...
- KnockoutJS 3.X API 第一章 简介
本文纯正翻译自官网API文档.其中包含一下个人理解. 官网API地址:http://knockoutjs.com/documentation/introduction.html 简介 Knockout ...
- UNP学习笔记(第一章 简介)
环境搭建 1.下载解压unpv13e.tar.gz 2.进入目录执行 ./configurecd lib //进入lib目录make //执行make命令 3.将生成的libunp.a静态库复制到/u ...
- UNIX网络编程卷1 第一章 简介 读书笔记。
基本没讲什么,一点点计算机网络发展史,一点点socket()简单介绍,最重要的是1.3节协议无关性. 协议无关性: 贯穿整本书的一个重要特性,他主要强调的是 socket是网络协议无关的编程接口. s ...
- 《JAVA NIO》第一章 简介
1.2 CPU已不再是束缚 相反,是JVM 自身在I/O 方面效率欠佳.操作系统与Java 基于流的I/O模型有些不匹配. 操作系统要移动的是大块数据(缓冲区),这往往是在硬件直接存储器存取(DMA) ...
- Spring in Action --- 第一章 简介
简化java开发 基于POJO的轻量级和最小入侵性编程 通过依赖注入和面向接口实现松耦合 基于切面和管理进行声明式编程 通过切面和模板减少样板式代码 bean的生命周期 Spring对bean进行实例 ...
- 17.UNP第一章 简介
获取时间的客户端代码: //客户端程序 #include "unp.h" int main(int argc, char **argv) { int sockfd, n; ]; s ...
- 《深入Linux内核架构》笔记 --- 第一章 简介和概述
Linux将虚拟地址空间划分为两个部分,分别称为内核空间和用户空间 各个系统进程的用户空间是完全彼此分离的,而虚拟地址空间顶部的内核空间总是同样的,无论当前执行的是哪个进程. 尽管Intel处理器区分 ...
随机推荐
- JAVA处理Http请求(GET,POST)
本文用的是java.net里面的方法,HttpClient也可以. java.net.HttpURLConnection java.net.URL 1. GET public static Strin ...
- Kylin与CDH兼容性剖析
1. 概述 Apache Kylin™是一个开源的分布式分析引擎,提供Hadoop之上的SQL查询接口及多维分析(OLAP)能力以支持超大规模数据,最初由eBay Inc. 开发并贡献至开源社区.它能 ...
- 优雅的处理Redis访问超时
很长一段时间以来,一直在项目中使用Redis作为辅助存储,确切来说是利用Redis的内存存储,而不是将其作为缓存.比如常见的利用Set集合来判断某个数值是否存在,或者将来自不同请求的数据放在Redis ...
- JSP中的“小饼干”Cookie,用来存储数组的方式(下方已String类型的数组为例:)
1.Cookie常用方法中,存储数据的方式: Cookie cookie = new Cookie("key","Value"); response.addCo ...
- 分布式文件系统FastDFS如何做到高可用
FastDFS是用C语言编写的一款开源的轻量级分布式文件系统.它对文件进行管理,功能包括:文件存储.文件同步.文件访问(文件上传.文件下载)等,解决了大容量存储和负载均衡的问题.特别适合以文件为载体的 ...
- 微信小程序之实现slideUp和slideDown效果和点击空白隐藏
怎样实现jq中的slideUp或者slideDown这种动画效果呢,我的思路是用css3的transform: translateY()属性,给需要动画的元素添加上一个动画class. 先上效果图: ...
- C#学习笔记-适配器模式
什么是适配器模式? 适配器模式(Adapter):将一个类的接口转换成客户希望的另外一个接口. Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作. 什么时候运用适配器模式? ...
- d3 画地图终极自适应大小方案
d3,v4以前用d3画地图的时候,为了让地图差不多正好画在容器的上下左右正中间,不得不慢慢的这样调: const projection = d3.geoMercator() .center([108. ...
- Spring-Blog:个人博客(一)-Mybatis 读写分离
概述: 2018,在平(tou)静(lan)了一段时间后,开始找点事情来做.这一次准备开发一个个人博客,在开发过程之中完善一下自己的技术.本系列博客只会提出一些比较有价值的技术思路,不会像写流水账一样 ...
- Maven工程搭建spring boot+spring mvc+JPA
添加Spring boot支持,引入相关包: 1.maven工程,少不了pom.xml,spring boot的引入可参考官网: <parent> <groupId>org.s ...