对于普通计算机用户来说,计算机程序或应用程序来自因特网或光盘(CD) ,然后在计算机或智能手机上运行。对于计算机程序员来说,程序是计算机执行的一组指令,用来完成精确定义的任务。实际上,计算机编程不仅是用特定的编程语言(如Python)“编写"这些指令。它涉及许多技能,包括设计软件、设计"算法”、设计"用户界面" (窗口、命令、菜单、工具栏等)、编写并测试代码,以及与软件用户交流互动等。所以想学的同学,有必要听一下这位老师的课、领取python福利奥,想学的同学可以到梦雅老师的围鑫(同音):前排的是:762,中间一排是:459,后排的一组是:510 ,把以上三组字母按照顺序组合起来即可,她会安排学习的。
在本章中,我们将介绍计算机硬件的基本特性,解释编译器和解释器之间的区别,并展示如何使用Python的IDLE开发环境。
计算机的核心是中央处理器(CPU )。在个人计算机中, CPU是由微小的硅芯片制成的微处理器。该芯片上刻有数百万个晶体管。晶体管是一种微型数字开关:它控制信号的两种状态,“开"或"关" ,即"1"或"0".微处理器由小于1平方英寸的陶瓷外壳保护,安装在印制电路板(也称为主板)上。主板上还有内存芯片,以及用于连接其他设备的端口(见图1-1)。所以想学的同学,有必要听一下这位老师的课、领取python福利奥,想学的同学可以到梦雅老师的围鑫(同音):前排的是:762,中间一排是:459,后排的一组是:510 ,把以上三组字母按照顺序组合起来即可,她会安排学习的。
图1-1树莓派3 B型单板计算机,放在3.5平方英寸x2.25平方英寸的印制电路板上
计算机存储器是一系列统一的存储单元,这些单元称为“字节”。
1字节保存8位信息。
1位是最小的信息存储单元: “1"或"0” ,“真"或"假” , “开"或“关”。
CPU可以按任意顺序访问内存中的字节。这就是计算机内存被称为"随机存取存储器(RAM )"的原因。同样的内存用于存储不同类型的信息:数字、字母、声音、图像、程序等。这些信息,必须以某种方式编码为0和1的序列。
2019年生产的典型个人计算机具有8GB (千兆字节)的RAM。
一页有500 600个单词的文本,没有图片或特殊格式,大约需要3KB的存储空间;一张高分辨率照片可能需要23MB的存储空间,而1GB存储空间可以压缩的MP4格式保存数小时的视频。所以想学的同学,有必要听一下这位老师的课、领取python福利奥,想学的同学可以到梦雅老师的围鑫(同音):前排的是:762,中间一排是:459,后排的一组是:510 ,把以上三组字母按照顺序组合起来即可,她会安排学习的。
CPU解释并执行存储在RAM中的指令。CPU获取下一条指令,解释它的操作代码,并执行适当的操作。有些指令用于算术和逻辑运算,有些用于将字节从一个位置复制到另一个位置,还有一些用于改变指令的执行顺序。除非特定指令告诉CPU"跳转”到程序中的另一个位置,否则指令将按顺序执行。"条件分支"指令告诉CPU继续下一条指令或跳转到另一个位置,具体情况取决于前一操作的结果。
以上这些操作都以惊人的速度发生。现代CPU以几GHz的速度运行,每条指令需要一个或几个时钟周期。
为了更好地了解CPU指令及其执行方式,让我们来看看汇编语言",这是一种低级计算机语言。它是你所听过的现代语言的基础,如C++, Java, Javascript和Python。
图1-2展示了一个非常短的汇编语言程序,用于8088微处理器(在20世纪80年代早期用于最初的IBMPC) ,其中包含相应指令的十六进制代码(十六进制系统在第6章中解释)和我们的注释。汇编语言代码非常接近实际的机器代码,但它允许你使用名称而不是数字,来表示指令和内存位置。
CPU有几个内置存储器单元,称为寄存器。图1-2中的代码使用的两个寄存器,称为AX和Bx 。例如,第一条代码( MOV BX, 0000 )将0移入BX寄存器。
图1-2一段8088汇编语言代码
我们将它留给你作为练习(练习题6) ,请弄清楚这段代码计算的内容。结果存储在BX寄存器中。
计算机代码中的错误称为"缺陷(bug)” ,消除程客错误的过程称为“调试(debug) "。
图1-2中的代码是在一个名为debug的程序的帮助下生成的,该程序随MS-DOS操作系统和早期版本的Windows一起提供。调试程序允许程序员以受控方式逐步执行程序,并在每一步检查内存的内容。在程序未按预期工作时,使用调试程序可以帮助发现错误。所以想学的同学,有必要听一下这位老师的课、领取python福利奥,想学的同学可以到梦雅老师的围鑫(同音):前排的是:762,中间一排是:459,后排的一组是:510 ,把以上三组字母按照顺序组合起来即可,她会安排学习的。
第1.2节练习
1.找到一台废弃的台式计算机,确保已拔下电源线,然后取下机箱盖(或在网上查找打开机箱的台式PC的高分辨率图片)。识别主板、CPU和内存芯片,识别计算机的其他组件:电源、硬盘、CD ROM驱动器。小编推荐一个学python的学习老师围鑫(同音),前排的是:762,中间一排是:459,后排的一组是:510 ,把以上三组字母按照顺序组合起来即可,她会安排学习的。,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!内有开发工具,很多干货和技术资料分享!
2.计算机内存称为RAM,因为:√
(A)它提供对数据的快速访问
(B)它安装在主板上
(C)它以兆字节为单位
(D)它的字节可以按随机顺序寻址
(E)它的芯片安装在矩形阵列中
3.我的旧PC有512 MB的RAM和120 GB的硬盘,硬盘存储空间是RAM的多少倍?√
4.可以用2位编码多少个不同的值?3位呢?1字节呢?
5.ASCI1码表示在典型的美式键盘上可以找到的英文字母、数字和其他字符的大写和小写字母。每个字符以相同的位数编码。每个字符1字节是否足以表示所有这些字符?每个字符所需的最小位数是多少?√
6.在执行图1-2中的程序段后,解释Ax和Bx寄存器的内容。这段代码计算了什么?
提示:十六进制的15是十进制的21。《√
以数字序列的方式来编写程序是非常烦琐的(尽管在计算机时代的早期阶段,程序员就是这么做的)。幸运的是,人们很快意识到,他们可以为编写程序而定义特殊的语言,并使用计算机将程序从高级编程语言转换为机器代码。早期的编程语言有Fortran,COBOL和BASIC.今天流行的语言有C++,C#、Java和Javascript等, Python是另一种非常流行的编程语言:它是由荷兰数学中心( Stichting Mathematisch Centrum )的Guido van Rossm于20世纪90年代初发明的。
在高级编程语言中,每个语句都转换为多个CPU指令。图1-3展示了一个用Python编写的函数,它由一个文档字符串( Docstring ,三引号中的一段注释,帮助使用该函数)和一些语句组成。
图1-3 用Python编写的函数
用机器语言或汇编语言编写的程序仅适用于具有兼容性CPU的计算机。换句话说,命令语句限定于特定的CPU。用高级语言编写的程序可以与任何CPU一起使用。例如,它可以在PC或Mac上运行。小编推荐一个学python的学习老师围鑫(同音),前排的是:762,中间一排是:459,后排的一组是:510 ,把以上三组字母按照顺序组合起来即可,她会安排学习的。,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!内有开发工具,很多干货和技术资料分享!
有两种方法,可以将高级编程语言编写的程序转换为机器代码。第一种方法称为“编译" :一种称为"编译器"的特殊程序,检查高级语言编写的程序文本,生成适当的机器语言指令,并将它们保存在一个可执行文件中,该文件可以在计算机上运行。程序编译后,运行该文件就不需要编译器了。第二种方法称为解释" :-种称为解释器"的特殊程序,检查程序的文本,生成适当的指令,并立即执行这些指令。解释器不会创建可执行文件,每次运行程序都需要解释器。
编译就像外语教材的书面翻译一样,解释就像在外国人说话的同时进行同声翻译。解释器可以从文件中读取程序,也可以允许你以交互方式逐行输入程序语句。
一些现代语言(如Java )使用混合的方法。首先,它们将程序编译成一种称为“字节码"的中间低级语言,它仍然独立于特定的CPU ,但更紧凑,更接近机器语言。然后它们在解释字节码时执行程序。Pythont将“模块(函数库)"预编译为字节码。
程序的文本由相当严格的语法规则控制:你不能简单地输入随心所欲的内容,并指望计算机理解它。
程序中的每个符号都必须位于正确的位置。
在英语或其他自然语言中,你可以拼错一个单词或省略一些标点符号,但仍然可以生成可读的文本。这是因为自然语言具有“冗余”,信息以低于最佳效率的方式传输,但这导致即使它有某种乱码,读者仍可以正确地解释消息(见图1-4)。
图1-4 Lyla Fletcher Groom的故事, 5岁(由写作研讨会提供)
编程语言实际上没有冗余,几乎每个字符都是必不可少的。编程中很可能会犯错误,因此编程人员必须学会耐心并注重细节,在修复代码的错误时坚持不懈。
我们现在准备使用Python,根据开源许可证, Python可免费获得,即使是商业应用程序也是如此。Python许可证由Python Software Foundation管理。所以想学的同学,有必要听一下这位老师的课、领取python福利奥,想学的同学可以到梦雅老师的围鑫(同音):前排的是:762,中间一排是:459,后排的一组是:510 ,把以上三组字母按照顺序组合起来即可,她会安排学习的。
在本书中,我们将使用Python 3,即Python的较新版本。
早期版本的Python称为"Python 2", Python 2和Python 3之间存在一些差异——它们不是百分之百兼容。在撰写本书时, Python3的最新版本是3.7.3。
关于如何下载适用于你的计算机和操作系统的Python安装程序,请参阅其他相关入门教程。
在编译语言时,你需要创建程序文本,并将它保存在一个文件中,称为"源代码" ,然后让源代码文件通过编译器运行,以得到可执行程序。在Python中,你可以从源文件中读取程序,也可以在Python解释器Shell中输入单个语句,并立即查看结果。
使用GUI (图形用户界面)前端运行Python解释器很方便。标准安装的Python附带的GUI称为IDLE (见图1-5)。
图1-5在Windows系统中, Python的GUl"Shell",称为IDLE
是Python解释器的"提示符"。提示符是来自程序的信号,表示它正在等待用户输入。用户可以输入语句,当用户按键时,解释器会显示结果。
例如,输入:
2+3
(用户输入以粗体显示), Python会显示:
5
看起来很不错!这里发生了很多事情。解释器读取你输入的文本行(语句) ,然后分析文本并发现该语句有两个用+号分隔的数字。分析文本并提取它的组件的过程称为“解析”。
一些小实验会让你相信空格并不重要(只要语句在提示后立即开始,没有前导空格)。例如,你可以输入2+3或2+3或2+3——结果相同。但是如果你输入2+*3 ,你就会得到:
2+*3
syntaxError: invalid syntax
现在尝试:
2(3+4)
你预期会得到14 ,对吗?没有!你得到的是:
显然, Python解释器"认为"你输入的语句有问题。但是, Python (让我们将解释器简称为Python )不是报告语法错误,而是报告了别的内容,这似乎没有什么帮助。 Typefrror指的是一个对象的"类型" (一个整数、一个函数等) ,而不是你在键盘上输入的内容。显然Python已经断定你试图用一个名为2的函数调用输入值3+4 ,所以Python告诉你(以它自己神秘的方式) , 2不是一个函数。你可能会认为Python有时非常思蠢。事实上,它既不聪明也不愚蠢——它只是一段代码。
同时,你真正的意思是:
2*(3+4)
也许你认为乘法符号是可省略的,就像在数学中一样。不是这样。正如我们告诉过你:每个字符都很重要!
第1.3节练习
1.定义"冗余"。√
2.在Python解释器中输入2±3 。这是有效的语法吗?解释结果。现在对2+3做同样的事情。
3.尝试2+++3 。解释结果。
4.尝试23和24 . Python的运算符**表示什么?
5.在Python中,单引号、双引号或三引号中的文本片段代表"文字字符串"。尝试"abc" + “def"和‘abc’ +‘def’和 ‘‘‘abc’’’+‘‘‘def’’’ 和 “”“abc””" + “”“def”""。解释+运算符应用于字符串时的作用。√
6.运算符可以应用于整数和字符串吗?尝试3‘La’,并解释结果。
7.输入9-82+6并解释结果。输入 (5-1)(1+2)**3并解释结果。Python表达式中,"运算符的优先级"是什么(即首先应用哪些运算符) ?√
8. 在Python提示符处输入17%3 ,同时尝试 15%4和15%5 。%运算符计算什么?与+、-、*、/和** 相比,运行一些测试以确定其等级(优先级)。√
IDLE是一个简单的IDE (集成开发环境) ,用于编辑和运行Python代码。
可以将简短的程序直接输入Shell :
但这并不是很实用,因为你必须重新输入每条语句,才能再次运行程序或对它进行小修改。在IDLE中你可以复制以前的一个语句:将光标向上移动到相应的行,然后按
不过,重新输入每行代码太乏味了。将程序语句保存在文件中并从文件中执行程序,这样更实用。包含程序文本的文件称为源文件。Python源文件名的扩展名通常为.py。
你可以用任意的文本编辑器(如记事本)创建源文件。你甚至可以用文字处理程序,只需确保将文件另存为“纯文本"文件,并使用.py的替换文件名中的默认扩展名.txt,但是,编写简短Python程序最简单的方法是使用IDLE自带的内置编辑器。
在IDLE中打开新的编辑器窗口,请从File菜单中选择New File (或按快捷键)。然后输入你的代码。如图1-6所示。
与纯文本编辑器(如记事本)不同, IDLE编辑器了解"Python的某些特性。例如,它用不同颜色高亮显示了代码的不同元素。对于预期有缩进的语句, IDLE编辑器会自动增加"缩进" (向右移动) :在for、while、 if 、 else 的冒号之后。按键可以减少缩进级别。从File菜单中选择SaveAs…或按快捷键,将程序保存到文件中。将.py扩展名与文件名一起使用,将文件保存在你选择的文件夹中。例如, C:\PythonProjects。
图1-6使用IDLE编辑器输入代码
当IDLE编辑器窗口打开并处于活动状态时,你可以通过从Run菜单中选择Run Module或按F5键来测试程序。Python每次都会询问你是否要保存文件(单击Yes ) ,你可以使用Options => Configure IDLE命令来禁用此功能。
如果程序有语法错误, Python会提醒你,并高亮显示第一个错误(发现分号而不是冒号)。如图1-7所示。
图1-7 Python显示语法错误
你可以同时打开多个文件,并在同一窗口中或在不同窗口间剪切和粘贴文本。选中并高亮显示要复制的文本,按快捷键复制文本,将光标定位在插入点,然后按快捷键粘贴文本。小编推荐一个学python的学习老师围鑫(同音),前排的是:762,中间一排是:459,后排的一组是:510 ,把以上三组字母按照顺序组合起来即可,她会安排学习的。,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!内有开发工具,很多干货和技术资料分享!
第1.4节练习
1·编程语言"Python"的名称是指:
(A)希腊字符T
(B)英国喜剧团体
©基本亚原子粒子
(D)大蛇,如大蟒蛇
2.什么是源代码?
(A)包含该程序的页面的URL
(B)高级语言或汇编语言的程序文本
©编译成字节码的程序
(D)包含程序文本的文件的名称
3.当Python解释器遇到语法错误时会发生什么?√
(A)解释器继续并在结束时报告所有语法错误
(B)解释器尝试纠正错误并继续
©解释器报告错误并停止解释
(D)解释器Shell 关闭
4.在IDLE中输入以下命令后会发生什么?
import this
试试吧。
5.在IDLE中输入以下命令后会发生什么?
import antigravity
6. 如果你在没有打字或单击任何内容的情况下,让IDLE闲置很长时间,会发生什么?√
(A)什么也没发生
(B)它保存所有打开的文件并关闭所有窗口
©它显示消息 “I’ve been IDLE for too 1ong!”
(D)E显示消息" For security reasons, your session has expired. Please 1og in to continue.”
本文节选自《计算思维与Python编程》
《计算思维与Python编程》以教授精确的计算思维为目标。全书共18章。首先介绍了Python编程的基础知识,包括变量和算术计算、集合与函数、循环、字符串、列表、字典、海龟绘图、序列等知识;然后深入介绍了专门的数学知识,包括奇偶校验、计数、概率、向量和矩阵、递归、图、数论和密码学,并且结合Python编程来解决各个领域中的特定问题。附录部分给出了Python编程相关参考资料。 本书适合作为计算机相关专业的Python程序设计和计算思维的课程教材,也适合想要学习计算思维和Python编程的读者包括中学生阅读参考。