- 1、本文档共640页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第 1 章 Python 编程基础
1.1 编程语言是什么
其实,程序指的就是一系列指令,用来告诉计算机做什么,而编写程序的关键在于,我们需要用计算机可以理
解的语言来提供这些指令。
虽然借助Siri (Apple )、Google Now (Android )、Cortana (Microsoft )等技术,我们可以使用汉语直
接告诉计算机做什么,比如“Siri ,打开酷狗音乐”,但使用过这些系统的读者都知道,它尚未完全成熟,再加
上我们语言充满了模糊和不精确因素,使得设计一个完全理解人类语言的计算机程序,仍然是一个有待解决的
问题。
为了有效避开所有影响给计算机传递指令的因素,计算机科学家设计了一些符号,这些符号各有其含义,且之
间无二义性,通常称它们为编程语言。编程语言中的每个结构,都有固定的使用格式(称为语法)以及精确的
含义(称为语义)。换句话说,编程语言指定了成套的规则,用来编写计算机可以理解的指令。习惯上,我们
将这一条条指令称为计算机代码 ,而用编程语言来编写算法的过程称为编码。
本教程要讲解的 Python 就是一种编程语言,除此之外,你肯定也听说过其他一些编程语言,如 C、C++、
Java、Ruby 等。至今,计算机科学家已经开发了成百上千种编程语言,且随着时间演变,这些编程语言又产生
了多个不同的版本。但无论是哪个编程语言,也无论有多少个版本,虽然它们在细节上可能有所不同,无疑它
们都有着固定的、无二义性的语法和语义。
以上提到的编程语言,都是高级计算机语言,设计它们的目的是为了方便程序员理解和使用。但严格来说,计
算机硬件只能理解一种非常低级的编程语言,称为机器语言。
比如说,让计算机对2 个数做求和操作,那么CPU 可能要执行以下指令:
1. 将位于内存空间位置在 2001 的数加载到CPU 中;
2. 再将位于内存空间位置在2002 的数也加载到CPU 中;
3. 在CPU 中,对这2 个数做求和操作;
4. 将结果存储在位置为2003 的内存空间。
可以看到,对2 个数执行求和操作需要做这么多工作,且这还只是笼统地描述,实际会更加复杂。
而使用 Python 这样的高级语言,对 2 个数求和可以很自然地用c = a + b 表示,但由此带来的问题是,我们
需要设计一种方法,将高级语言翻译成计算机可以执行的机器语言,有两种方法可以实现,分别是使用编译器
和解释器。
使用编译器将自身等效转换成机器语言的高级语言,通常称为编译型语言 ;而使用解释器将自身转换成机器语
言的高级语言,称为解释型语言 ,Python 就是解释型编程语言的一种。
关于编译型语言和解释型语言的含义和区别,后续章节会进行详细介绍。
1.2 编译型语言和解释型语言的区别
我们编写的源代码是人类语言,我们自己能够轻松理解;但是对于计算机硬件(CPU ),源代码就是天书,根
本无法执行,计算机只能识别某些特定的二进制指令,在程序真正运行之前必须将源代码转换成二进制指令。
所谓的二进制指令,也就是机器码,是 CPU 能够识别的硬件层面的“代码”,简陋的硬件(比如古老的单片机)
只能使用几十个指令,强大的硬件(PC 和智能手机)能使用成百上千个指令。
然而,究竟在什么时候将源代码转换成二进制指令呢?不同的编程语言有不同的规定:
• 有的编程语言要求必须提前将所有源代码一次性转换成二进制指令,也就是生成一个可执行程序(Windows 下
的.exe ),比如C 语言、C++、Golang、Pascal (Delphi )、汇编等,这种编程语言称为编译型语言 ,使用
的转换工具称为编译器。
• 有的编程语言可以一边执行一边转换,需要哪些源代码就转换哪些源代码,不会生成可执行程序,比如 Python、
JavaScript、PHP、Shell、MATLAB 等,这种编程语言称为解释型语言 ,使用的转换工具称为解释器。
简单理解,编译器就是一个“翻译工具”,类似于将中文翻译成英文、将英文翻译成俄文。但是,翻译源代码
是一个复杂的过程,大致包括词法分析、语法分析、语义分析、性能优化、生成可执行文件等五个步骤,期间
涉及到复杂的算法和硬件架构。解释器与此类似,有兴趣的读者请参考《编译原理》一书,本文不再赘述。
Java 和C# 是一种比较奇葩的存在,它们是半编译半解释型的语言,源代码需要先转换成一种中间
您可能关注的文档
- 2023年09月广东广州市海珠区就业服务管理中心招考聘用雇员笔试历年难易错点考题荟萃附带答案详解.docx
- 2023年09月福建福州连江县海洋与渔业局补录协管员6人笔试历年难易错点考题荟萃附带答案详解.docx
- 2023年09月湖南长沙市林业局所属事业单位选调工作人员笔试历年难易错点考题荟萃附带答案详解.docx
- 2023年09月贵州施秉县农业农村局特聘农技员招募笔试历年难易错点考题荟萃附带答案详解.docx
- 2023年09月浙江省瑞安市交通运输行政执法队招考编外人员笔试历年难易错点考题荟萃附带答案详解.docx
- 2023年09月湖南永州祁阳市消防救援大队公开招聘科普馆讲解员2名(女性)笔试历年难易错点考题荟萃附带答案详解.docx
- 屏幕黑边收窄技术原理及应用.docx
- 思科网络交换机配置命令全总结.docx
- 生化名词解释全套.docx
- 日本养老产业盈利模式.docx
- 神经生物学授课教案 山东大学.docx
- 人兽共患寄生虫病的免疫学及分子生物学诊断检测技术.docx
- 设施维修 火灾自动报警系统维修.docx
- 设施检测 自动灭火系统检测.docx
- 设施检测 火灾自动报警系统检测.docx
- 其他消防设施基本知识全考点总结.docx
- 2023年08月南宁市青秀区民政局招考1名外聘人员笔试历年难易错点考题荟萃附带答案详解.docx
- 2023年09月四川绵阳市梓潼县残疾人联合会考调1人笔试历年难易错点考题荟萃附带答案详解.docx
- 2023年09月北京市规划和自然资源委员会第二批公开招考77名事业单位工作人员笔试历年难易错点考题荟萃附带答案详解.docx
- 2023年08月安徽安庆市桐城市招聘幼儿园教师择岗工作笔试历年难易错点考题荟萃附带答案详解.docx
文档评论(0)