




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第1章编程语言与Python概述1.1计算机基础1.2程序设计语言1.3Python语言1.4Python及PyCharm的安装本章小结
1.1计
算
机
基
础
1.1.1计算机硬件一般而言,计算机由运算器、控制器、存储器、输入设备和输出设备五大部件组成。每个部件都是一个功能相对完整的子系统,各部件之间通过总线连接起来,实现数据的交换,如图1-1所示。运算器和控制器是计算机的核心部件,通常被集成到一个芯片中,称为中央处理器(CentralProcessingUnit,CPU)。图1-1计算机的硬件组成
1.运算器
运算器也称算术逻辑单元(ArithmeticLogicUnit,ALU)。算术运算指的是加、减、乘、除等数学运算,逻辑运算包括与(and)、或(or)、非(not)等逻辑操作。表1-1给出了逻辑与和逻辑或的运算结果。
2.控制器
控制器是整个计算机中结构最复杂的部件,用于指挥、协调计算机各部件工作。每种计算机都有一个最基本的指令集合,机器只能识别这个集合中的指令。控制器是计算机中唯一能够识别这些二进制指令的部件。
3.存储器(内存)
程序和数据以二进制位(比特,bit)的形式存储在存储器中。程序是一个指令的序列,而指令是有着固定格式的比特串,其按顺序存放,因此每一条指令都有一个序列号,比如从0到n,存放在存储器的特定位置。程序执行时,CPU每次从存储器中取出一条指令执行。此外,在程序执行过程中,需要存储一些中间结果和最终结果数据,在计算机语言中这些数据称为变量,存储在存储器中。
4.输入设备和输出设备
输入设备方便用户向计算机发送信息。键盘、鼠标等都属于输入设备。比如,用户通过键盘将信息发送给计算机。输出设备负责将运算结果发送到指定部件。屏幕就是典型的输出设备。输入设备和输出设备统称为外围设备。
1.1.2计算机软件
计算机上运行的软件可以分为系统软件和应用软件两大类。为生产、生活、娱乐、科研等用途而开发的软件称为应用软件,如财务管理软件、电信服务软件、工业控制软件等。为了方便操作计算机,或者为开发应用软件提供辅助目的而设计出的基础软件称为系统软件。典型的系统软件包括操作系统、编译系统、数据库系统以及开发平台(如EDA工具等集成环境)等。
操作系统是一种使用最为广泛的系统软件,它为用户提供了一个良好的基础操作平台,其他软件都必须在操作系统的管理下运行。
1.1.3计算机内的数据表示
1.数据类型
在数据存储和表示方面,计算机和人类存在较大的不同。一方面,计算机只能识别二进制的数字,而用户对于二进制表示却很不习惯;另一方面,计算机的存储器容量虽然很大,但却是有限的,并且每一个数据必须使用一个大小确定的存储单元来加以存放,比如1字节或者4字节等。
2.字符和汉字的表示
多台计算机之间、计算机和用户之间都需要使用统一的编码来表示符号,这些符号包括英文字母、阿拉伯数字、标点符号和其他一些特殊字符。美国信息交换标准代码(AmericanStandardCodeforInformationInterchange,ASCII)是基于拉丁字母的一套电脑编码系统,主要用于编码现代英语和其他西欧语言。它是最通用的信息交换标准,等同于国际标准ISO/IEC646。
表1-2给出了部分字符的ASCII码。
3.数值的表示
所有的数值数据在机器内部都是由0和1组成的比特串来表示的。数值有正数、负数、整数、小数等,因此,在使用时我们需要做出约定来正确地表示数值。根据小数点的位置不同,可以把数值分为定点数和浮点数两大类。定点数又可以分为定点整数和定点小数。如果约定小数点在整个比特串的最右边,则是定点整数;如果约定小数点在整个比特串的最左边,则是定点小数。
1.1.4计算机的工作方式
计算机工作主要依赖于中央处理器和存储器,中央处理器内部包括控制器、运算器和一些寄存器。控制器负责整个程序的自动执行,运算器用于算术运算,寄存器用于临时存储一些数据,包括初始值和中间运算结果。存储器用于存储程序和数据,这些数据可以是待处理的数据初始值、中间结果和最终结果。
下面以函数y = ax + b的计算过程为例详细说明计算机的工作过程。表1-3给出了计算y = ax + b时存储器的存储情况。
1.2程序设计语言
语言是一种交流工具,一般把人类用来相互交流沟通的语言称为自然语言,而把程序员指示计算机完成某件工作所用的语言称为程序设计语言。所以,按照语言的用途来说,自然语言用于人与人的沟通,而程序设计语言则用于人与计算机的沟通。程序设计语言通过一系列的符号、单词和语法规则,来帮助程序员表达和组织计算机程序。
1.2.1程序设计语言概述
语言可以看成是应用语法规则对词汇进行组合而成的序列。用自然语言写文章的过程和用程序设计语言编写程序的过程相似。写文章时首先是遣词造句,然后将句子汇聚成段落,若干个段落构成一篇完整的文章;而程序员是利用程序设计语言中的基本词汇构成语句,多条语句组织成函数或过程,若干个函数或过程构成计算机程序。图1-2展示了自然语言和程序设计语言的结构层次对应关系。图1-2自然语言与程序设计语言的结构层次对应关系
如图1-3所示,在人与硬件机器之间,人们设计了一种编译器软件。图1-3编译器成为人-机之间的翻译
计算机不能直接执行高级语言编写的程序,需要将高级语言程序翻译成目标程序才能执行。这种“翻译”通常有两种方式:编译方式和解释方式。编译方式是将程序中的所有代码作为一个整体来对待,编译通过后才能执行。解释方式则是对程序语言逐条解释并执行,当遇到错误时,则会停止工作,待错误修正后再继续运行。一般而言,在程序编译过程中,编译方式和解释方式各有优缺点。
编译方式的优点在于:
(1)执行速度快。
(2)安全性高。
编译方式的缺点有:
(1)平台依赖性。
(2)调试不方便。
(3)开发效率低。
编译方式的缺点有:
(1)平台依赖性。
(2)调试不方便。
(3)开发效率低。
解释方式的优点有:
(1)跨平台性。
(2)调试容易。
(3)灵活性。
(4)开发效率高。
解释方式的缺点有:
(1)执行速度慢。
(2)安全性低。
(3)占用资源。
总的来说,编译方式和解释方式各有其优缺点,适用于不同的场景。编译方式适用于对执行速度和安全性要求较高的场景,而解释方式则更适用于需要跨平台性和灵活性的场景。在实际应用中,可以根据具体需求选择合适的编译方式或解释方式。
1.2.2程序设计语言的成分
程序设计语言一般包括三个层次的成分:词法、句法和程序,每一个成分都有语法和语义两个方面的含义。与复杂的自然语言相比,每一个成分都更简单和确定,不存在任何二义性。
词法包括关键字、变量、常量、运算符和数值等。关键字是为表达某个特定用途而保留识别的英文单词,每一种语言都有自己定义的一个保留字集合。变量是为了存放在程序运行过程中获得的中间结果和最终结果的存储单元,其名称由程序员自行定义,称为标识符。每一个变量名称实际上都是内存地址的别名,以便于程序员记忆。程序设计语言中的运算符和数值与自然语言中的没有太多区别。
基本的程序语句有多种,如赋值语句、控制语句、函数调用等。赋值语句中赋值符号的左边必须是变量;而函数则由若干条语句序列组成,便于多次调用,函数调用前必须先进行定义或声明,这可以由程序员自行实现,也可以由第三方人员实现。这些语句按照顺序、分支和循环三种结构构成程序,其中分支结构根据判断条件选择其中的一个分支加以执行,循环结构则可以多次执行循环中的语句序列。
1.3Python语言
1.3.1Python发展简史
1.起源与早期发展
1989年圣诞节期间,荷兰计算机科学家GuidovanRossum受到ABC语言的启发,开始设计Python。1991年,首个Python编译器被创造出来,并以英国喜剧团体MontyPython’sFlyingCircus命名,这标志着Python语言的正式诞生。1994年,Python1.0发布,其引入了lambda、map、filter等函数式编程特性,以及对模块和包的支持。
2. Python2.x时代
2000年,Python2.0发布,其引入的许多新特性奠定了Python2.x系列的基础,包括增强的类支持、列表推导式、垃圾回收机制、Unicode支持、迭代器和生成器等。Python2.x系列不断引入新的特性,如Python2.4引入了装饰器和生成器表达式,Python2.5引入了with语句和条件表达式。Python2.7是这一时代的最后一个版本。
3. Python3.x时代
2008年12月3日,Python3.0发布,带来了重大革新,如去除了经典类,只支持新式类;统一了整数和长整数类型;改进了Unicode字符串支持;print成为函数等。
4.社区与生态系统
Python社区迅速壮大,形成了丰富的开源项目和第三方库生态。
5.未来发展
Python在继续发展,并不断添加新的功能。
1.3.2Python的特点
1.高级的内建类型
伴随着每一代编程语言的产生,程序员的编程效率都会达到一个新的高度。
2.面向对象
面向对象编程为数据和逻辑相分离的结构化和过程化编程添加了新的活力。
3.升级简便
Python代码乍看起来与批处理或UNIX系统下的Shell有些类似。
4.良好的可扩展性
对于程序项目中大量的Python代码,可以通过将其分离为多个文件或模块加以组织管理。而且程序员可以从一个模块中选取代码,而从另一个模块中读取属性,并且对于所有的模块,Python的访问语法都是相同的。对于特别强调性能部分的代码,可以用C语言重写后再作为Python的扩展。需要强调的是,重写后的代码接口和纯Python模块的接口完全相同,代码和对象的访问方法也相同,但这些代码显著提升了整体性能。
5.易学易读
Python的语法非常简洁,无需像其他编程语言那样记忆大量的复杂语法和规则。
6.移植性强
Python是一种跨平台语言,能在多种操作系统上运行。
1.3.3IDLE集成开发环境
1.主要功能
(1)代码编辑器:支持语法高亮、自动缩进和代码补全,为编程提供了便捷的体验。其类似于VisualStudio和Eclipse等IDE,但更加轻量级和易于使用。
(2)交互式解释器:在Shell窗口中,用户可以交互式地运行Python代码,并能快速获取运行结果。Shell窗口提供了比基本的交互命令提示符更好的剪切、粘贴等功能。
(3)调试工具:具备设置断点、单步调试等调试工具,便于查找和解决代码中的错误,为开发者提供了强大的调试支持。
2.使用方式
(1)交互式编程:用户可以在Shell中直接输入Python代码并立即看到运行结果。
(2)文件编辑模式(脚本模式):用户可以在文件编辑器中编写Python代码,并保存到文件中,然后通过运行该文件来执行代码。这种模式更适合于编写较长或较为复杂的Python代码,并且可以通过函数、模块等方式将代码组织成更为结构化的形式。
3.安装与打开
安装Python时,IDLE会自动安装,无须单独安装。
打开IDLE的方法有以下两种:
(1)在命令行中输入“python”(或“python3”)后按回车键(在Windows操作系统下使用命令提示符,在macOS或Linux操作系统下使用终端)。
(2)在图形界面中双击IDLE图标(通常位于Python安装目录下的Scripts文件夹中)。
图1-4展示了IDLEShell3.10.10的交互式窗口。图1-4IDLEShell3.10.10交互式窗口
1.3.4Python的工作方式
1.交互方式
首先在Windows操作系统的“开始”菜单中找到“Python3.10”菜单目录并展开,如图1-5所示,然后选择“IDLE(Python3.1064-bit)”选项,打开IDLE。也可以直接在桌面左下角的“搜索”中输入命令“IDLE”打开IDLE,结果如图1-6所示。图1-5从“开始”菜单中打开IDLE图1-6体验交互式输出文字
在图1-6所示的IDLE中,界面上方是Python语言解释器程序的版本信息,下面的“>>>”称为提示符。在提示符“>>>”后输入如下代码,并按回车键,观察解释器窗口的变化。
>>>print("大家好,欢迎来到Python课堂!")
注意:Python对大小写是敏感的,在输入命令时大小写必须严格按照上面的命令形式,特别是引号(""),不能使用中文中的引号(“”),中文或全角字符只能出现在英文引号("")之间或者是注释中。
如图1-7所示,尝试输入几行代码。其中:输入代码“1 + 2 + 4 + 8”被解释器接受,并成功显示结果“15”;输入代码给变量pi赋值也被接受;而输入“Python你好”,解释器拒绝解释执行,并用红色文字给出错误提示信息。图1-7Python只接受能理解的指令
2.文件方式
(1)在IDLE菜单栏中打开“File”菜单,选择第一项“NewFile”,此时系统会创建一个新的窗口,其中的空白区域用来编辑代码内容;输入图1-8中的代码,执行“File”→“Saveas…”命令,将其保存为一个文件,命名为“pwd.py”。这样就创建了第一个Python语言脚本文件。图1-8在文本编辑窗口中输入代码
(2)在文本编辑器的“Run”菜单中选择“RunModule”命令,或者直接使用快捷键F5,执行这个文件中所有的代码。
如图1-9所示,执行结果出现在IDLE的Shell窗口中。输入的密码“1234567”与正确密码“123456”不符,所以显示“Errorpassword”。图1-9执行pwd.py中的代码
1.3.5Python的应用领域
Python的应用领域非常广泛,以下是一些主要的应用领域。
1. Web应用开发
2.数据分析与可视化
3.人工智能与机器学习
4.自动化运维
5.网络爬虫
6.科学计算
7.游戏开发
1.4Python及PyCharm的安装
1.4.1Windows下Python的安装
Python是一种跨平台的语言,可以在Windows和Linux等多种操作系统下使用,这里只介绍Windows平台下的安装,使用Linux的用户可以查阅其他资料自行处理。
Windows下Python的安装步骤如下:
(1)打开/download,选择“download”菜单项下的“Allreleases”项,再选择相应的版本下载。本书采用的版本是3.10.10。如果想体验最新版本,可以选择“downloadpython3.12.3”。
(2)鼠标双击打开安装包,在弹出窗口的最下方勾选“InstallLauncherforallUsers(recommended)”和“AddPython3.10toPATH”,然后点击“Next”;勾选“Option”页面中的全部选项,继续点击“Next”;在“AdvancedOption”页面中勾选前5个选项,并选择安装路径,最后点击“Install”。注意:在最后安装结束的页面中,我们可以点击“disablepathlengthlimit”禁用系统路径长度限制,这将会在以后的使用中省去很多麻烦。
(3)安装结束后,在系统中按下Win + R,输入“cmd”后回车,进入command命令行模式;然后输入“python--version”进行验证,若出现Python + 版本号,则说明安装成功,如图1-10所示。图1-10Python安装成功验证
1.4.2PyCharm的安装
与IDLE相比,PyCharm的功能更加强大,增加了项目管理等功能,适合更大规模的多模块软件开发,其主要功能包括编码协助、项目代码导航、代码分析、Python代码重构、支持Django框架和支持GoogleApp、图形页面调试以及集成单元测试等。其使用相对也更复杂,熟练掌握后能大幅提高代码开发效率。PyCharm3.13开发界面如图1-11所示。本书中开发的实例都是在IDLE中完成的,有兴趣的读者也可以选择使用PyCharm。图1-11PyCharm3.13开发界面
1. PyCharm3.10的安装
安装步骤如下:
(1)访问官网/pycharm/download/#section=windows,下载“社区版Community”安装包。
(2)双击安装包,进行安装。建议不要把安装目录放置在系统盘(C盘),而是另外选择一个目录如d:\pycharm310。在Options安装界面勾选“Add‘bin’FoldertothePATH”,保证把安装目录添加到系统搜索路径的变量中去。
2.第三方库的安装
(1) NumPy:用于科学计算和数值分析。
2) Pandas:用于数据分析和数据预处理。
(3) Matplotlib:用于数据可视化和
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030年中国电容式传感器场行业运行现状及发展前景分析报告
- 衡阳幼儿师范高等专科学校《地理多媒体课件制作》2023-2024学年第二学期期末试卷
- 浙江树人学院《ERP软件原理与应用》2023-2024学年第二学期期末试卷
- 2025年四川省建筑安全员《C证》考试题库
- 陕西理工大学《数字化会计》2023-2024学年第二学期期末试卷
- 长江大学文理学院《报关实务》2023-2024学年第二学期期末试卷
- 福建船政交通职业学院《网络规划与优化实验》2023-2024学年第二学期期末试卷
- 2025届吉林省长春市高三上学期质量监测(一)历史试卷
- 湘潭大学《生命科学基础》2023-2024学年第二学期期末试卷
- 重庆师范大学《医学影像诊断学上》2023-2024学年第二学期期末试卷
- 一年级下册综合实践活动教案2
- 护苗行动安全教育课件
- 生物-山东省潍坊市、临沂市2024-2025学年度2025届高三上学期期末质量检测试题和答案
- 2025年小学督导工作计划
- 2024-2025学年部编版历史九年级上册期末复习练习题(含答案)
- 矿山工程安全培训课件
- 2025年月度工作日历含农历节假日电子表格版
- 基于ChatGPT的ESG评级体系实现机制研究
- 2024年长沙民政职业技术学院单招职业技能测试题库及答案解析
- 2024年精对苯二甲酸市场分析报告
- 《商务数据分析》课件-商务数据的分析
评论
0/150
提交评论