




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第1章Python语言概述主要内容1.4Python的安装与配置
1.3Python语言的特点和执行方式1.2程序设计语言
1.1程序设计和算法1.1程序设计和算法程序是计算机指令的某种组合,程序控制计算机的工作流程,完成一定的逻辑功能,以实现某种任务。程序设计是给出解决特定问题程序的过程,是软件构造活动中的重要组成部分。程序设计又叫编程,程序设计已经成为当今社会需求量最大的职业技能之一。程序设计=数据结构+算法1.1程序设计和算法数据结构是数据的描述和组织形式,算法是对特定问题求解步骤的一种描述,是独立存在的一种解决问题的方法和思想。、算法具有以下特点:有穷性(无死循环)算法的每一个步骤应当是确定的,即无“二义性”。有适当的输入,即有确定的条件。有输出结果,没有输出的算法是无意义的。算法中的每一个步骤都应当有效执行(无死语句)。
1.1程序设计和算法算法的表示可以有多种形式,常用的自然语言、传统流程图、伪代码、N-S流程图等。自然语言就是人们日常使用的语言,如汉语、英语和其他语言等。用自然语言描述算法通俗易懂,但由于自然语言表示的含义往往不太严格,需要根据上下文才能判断其准确含义,因此描述文字冗长,容易出现“歧义性”。除了很简单的问题以外,一般不用自然语言来描述算法。1.1程序设计和算法流程图是用一系列的图像、流程线和文字描述算法的基本操作和控制流程,又称算法流程图或程序流程图。流程图的基本元素包括开始框和结束框、判断框、处理框、输入/输出框、注释框、流向线和接点等。流程图中基本元素1.1程序设计和算法【例1-1】 计算1+2+3+……+n的和,n从键盘输入,程序的流程图如图1-2所示。1.1程序设计和算法伪代码是一种非正式的,类似于英语结构的,用于描述模块结构图的语言,介于自然语言与编程语言之间。使用伪代码的目的是使被描述的算法可以容易地以任何一种编程语言(Python,C,Java等)实现例1-1的伪代码表示如下:开始(begin)输入(input)n0→s1→i当(while)i<=n执行(do)s+i→si+1→i循环到此结束(enddo)输出(print)s算法结束(end)1.1程序设计和算法算法也可以用N-S流程图(盒图)表示。
图1-3N-S图1.1程序设计和算法IPO程序设计方法或者IPO描述,指的是在软件设计和开发过程中,遵循的一种基于输入(Input)、处理(Processing)和输出(Output)的基本设计思路。输入(Input)数据:输入是一个程序的开始。处理(Process)数据:处理是程序对输入数据进行计算产生输出结果的过程。输出(Output)数据:输出是程序展示运算成果的方式。1.1程序设计和算法程序是由若干条语句组成,各个语句按照顺序一条一条地执行,这种顺序结构是简洁的。程序中除了顺序结构以外,通常还有选择结构、循环结构以及转移机制。三种基本的算法结构为:顺序结构选择结构(分支结构)循环结构(重复结构)1.1程序设计和算法顺序结构的程序设计是最简单的,只要按照解决问题的顺序写出相应的语句就行,它的执行顺序是自上而下,依次执行。图1-4顺序结构例如:a=1,b=2,现在要交换a,b的值,这个问题就好像交换两个杯子水,这当然要用到第三个杯子,假如第三个杯子是t,那么正确的程序为:t=a;a=b;b=t;执行结果是a=2,b=t=1。如果改变其顺序,写成:a=b;b=a;则执行结果就变成a和b的值都是2了,不能达到预期的交换两个变量的目的1.1程序设计和算法选择结构又叫做分支结构,图1-5是选择结构示意图。1.1程序设计和算法循环结构包括当型循环(While型循环)和直到型循环(Until型循环)。图1-6显示了循环结构的程序执行流程。当型循环是首先判断循环条件p1,如果条件p1为真,则执行语句A.,如果为假,则不执行语句A。直到型循环是首先执行语句A,再判断循环条件p2,如果条件p2为假,则执行语句A.,直到条件p2为真,结束循环。1.1程序设计和算法图1-6循环结构1.2程序设计语言程序设计语言包括机器语言、汇编语言和高级语言机器语言是计算机可直接执行的二进制代码,人类不容易理解和阅读机器语言汇编语言是一种低级语言,它使用易于理解和记忆的缩写单词来代表特定的机器语言指令高级语言是采用某种编程语言编写的计算机程序语言,常见的高级语言如Java、C语言、C++、C#、PHP和Python。1.2程序设计语言计算机执行采用高级语言编写的源程序的方式有两种:编译和解释。编译是编译器将源程序一次性翻译成可执行程序,之后不再需要源程序(类似英文翻译)。解释则是每次程序运行时随翻译随执行(类似实时的同声传译),程序设计语言可以分为编译型语言和解释型语言。Python、Java、C#等都是解释型语言1.2程序设计语言图1-7编译和解释方式1.3Python语言的特点和执行方式对于刚接触编程的程序员而言,Python无疑是最为简洁、易上手的编程语言。Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。根据有关机构对主流编程语言排名进行统计,位居前3位的编程语言为Python、Java和C语言。Python的设计哲学是优雅、明确、简单1.3Python语言的特点和执行方式对于刚接触编程的程序员而言,Python无疑是最为简洁、易上手的编程语言。Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。根据有关机构对主流编程语言排名进行统计,位居前3位的编程语言为Python、Java和C语言。Python的设计哲学是优雅、明确、简单1.3Python语言的特点和执行方式对于刚接触编程的程序员而言,Python无疑是最为简洁、易上手的编程语言。Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。根据有关机构对主流编程语言排名进行统计,位居前3位的编程语言为Python、Java和C语言。Python的设计哲学是优雅、明确、简单1.3Python语言的特点和执行方式对于刚接触编程的程序员而言,Python无疑是最为简洁、易上手的编程语言。Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。根据有关机构对主流编程语言排名进行统计,位居前3位的编程语言为Python、Java和C语言。Python的设计哲学是优雅、明确、简单1.3Python语言的特点和执行方式对于刚接触编程的程序员而言,Python无疑是最为简洁、易上手的编程语言。Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。根据有关机构对主流编程语言排名进行统计,位居前3位的编程语言为Python、Java和C语言。Python的设计哲学是优雅、明确、简单1.3Python语言的特点和执行方式对于刚接触编程的程序员而言,Python无疑是最为简洁、易上手的编程语言。Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。根据有关机构对主流编程语言排名进行统计,位居前3位的编程语言为Python、Java和C语言。Python的设计哲学是优雅、明确、简单1.3Python语言的特点和执行方式对于刚接触编程的程序员而言,Python无疑是最为简洁、易上手的编程语言。Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。根据有关机构对主流编程语言排名进行统计,位居前3位的编程语言为Python、Java和C语言。Python的设计哲学是优雅、明确、简单计算机目前已应用在人类日常生活的各个场景,计算机通过程序控制,程序通过编程语言编写,对于初次接触编程的小伙伴而言,Python无疑是最为简洁、易上手的编程语言。1989年圣诞节期间,阿姆斯特丹的Guido(GuidovanRossum)自觉假日无趣,想起自己曾参与设计的一种优美与强大并存,但最终惨遭失败的语言ABC,寻思不如开发一个新的脚本解释程序作为ABC语言的继承,于是Python诞生了。Python语法很多来自C语言,但又受到ABC语言的强烈影响。自诞生开始,Python已经具有了类(class)、函数(function)、异常处理(exception)、包括列表(list)和字典(dict)在内的核心数据类型,以及以模块为基础的拓展系统。2000年10月,Python2.0发布,Python从基于maillist的开发方式转为完全开源的开发方式。2008年12月,Python3.0版本发布,并被作为Python语言持续维护的主要系列。2010年,Python2.x系列发布了最后一个版本,其主版本号为2.7,同时,Python的维护者们声称不在2.x系列中继续对主版本号升级,Python2.x系列慢慢退出历史舞台。2012年Python3.3版本发布,2014年Python3.4版本发布,2015年Python3.5版本发布,2016年Python3.6版本发布,2018年6月27日Python3.7.0发布,2019年10月14日Python3.8.0发布目前Python的最新版本为2020年2月24日发布的3.8.2。Guido于1989年定下目标之后便投身于Python语言的设计之中,但Python的第一个公开版本直到1991年才发行,此版本使用C语言实现,能调用C语言的库文件。简洁。Python代码的行数往往只有C、C++、Java代码数量的1/5~1/3。语法优美。Python语言是高级语言,它的代码接近人类语言,只要掌握由英语单词表示的助记符,就能大致读懂Python代码。简单易学。Python是一门简单易学的编程语言,它使编程人员更注重解决问题,而非语言本身的语法和结构。开源。Python是FLOSS(自由/开放源码软件)之一,用户可以自由地下载、拷贝、阅读、修改代码。可移植。Python语言编写的程序可以不加修改地在任何平台中运行。Python语言的优点扩展性良好。Python不仅可以引入.py文件,还可以通过接口和库函数调用由其它高级语言(如C语言、C++、Java等)编写的代码。类库丰富。世界各地的程序员通过开源社区又贡献了十几万个几乎覆盖各个应用领域的第三方函数库。通用灵活。Python是一门通用编程语言,可被用于科学计算、数据处理、游戏开发、人工智能、机器学习等各个领域。模式多样。Python既支持面向对象编程,又支持面向过程编程。良好的中文支持。Python3.x解释器采用UTF-8编码表达所有字符信息,编码支持英文、中文、韩文、法文等各类语言。Python语言的优点Python语言的缺点执行效率不够高,Python程序的效率只有C语言程序的1/10。Python3.x和Python2.x不兼容。1.3Python语言的特点和执行方式相比于其他编程语言,Python语言具有以下特点:简单易学解释型语言语法优美免费和开源跨平台特性面向对象1.3Python语言的特点和执行方式扩展性良好丰富的库通用灵活模式多样良好的中文支持。Python3.x解释器采用UTF-8编码表达所有字符信息,编码支持英文、中文、韩文、法文等各类语言。1.3Python语言的特点和执行方式Python语言的缺点是执行效率不够高,Python程序的效率只有C语言程序的十分之一。另外,Python3.x和Python2.x不兼容。Python是一种广泛应用在多个领域的编程语言,主要应用领域包括:1.3Python语言的特点和执行方式数据科学和数据分析人工智能和机器学习网络开发自动化和脚本编程科学计算和工程游戏开发网络爬虫软件测试和自动化量化金融和算法交易。1.3Python语言的特点和执行方式Python语言文件类型主要分为3种:源代码文件(sourcefile)字节码文件(byte-codefile)优化字节码文件(optimizedfile)。源代码文件包括扩展名为.py的源代码文件和扩展名为.pyw的源代码文件字节码文件是Python源文件经过编译之后生成扩展名为.pyc的字节码文件优化字节码文件是经过优化的代码生成扩展名为.pyo的优化字节码文件1.4Python的安装与配置1.4.1Python解释器的安装图1-8Python官方下载页面Python官方网址的下载页面是:/downloads/。1.4Python的安装与配置Python解释器有多个版本,考虑到主要的Python标准库更新只针对3.x系列,且当下企业也正从Python2.x向3.x过渡,因此对于初学Python的读者而言,Python3.x无疑是明智的选择。1.4Python的安装与配置1.4Python的安装与配置1.4Python的安装与配置1.4Python的安装与配置1.4Python的安装与配置1.4Python的安装与配置1.4.2运行Python程序Python程序的运行方式有两种:交互式和文件式。交互式运行方式指Python解释器逐行接收Python代码并即时响应;文件式也称批量式,指先将Python代码保存在文件中,再启动Python解释器批量解释文件里面的代码。1.4Python的安装与配置以控制台为例,进入Python环境后,在命令提示符“>>>”后输入如下代码:print(“helloworld.”)解释器立即对上述命令解释,执行的结果是“helloworld.”Windows命令提示符的提示符是“>”符号;而Python解释器的提示符是“>>>”1.4Python的安装与配置文件方式执行是指创建一个Python文件(文件的扩展名为.py的文件),在其中写入Python代码并保存。然后在该Python文件所在文件夹的空白区域按下“Shift+鼠标右键”,单击选择选项列表中的“在此处打开命令窗口”选项以打开命令窗口,在命令提示符“>”后输入命令“pythonhello.py”运行Python程序。通过Python解释器或控制台都能用相同的操作以交互方式运行Python程序。以控制台为例,进入Python环境后,在命令提示符“>>>”后输入如下代码:交互式print("helloworld")helloworld创建Python文件(后缀为.py的文件),在其中写入Python代码并保存。在该Python文件所在文件夹的空白区域按下“Shift+鼠标右键”,单击选择选项列表中的“在此处打开命令窗口”选项以打开命令窗口,在命令提示符“>”后输入命令“pythonhello.py”运行Python程序。文件式1.4Python的安装与配置下面来写第一个Python程序,与所有其他编程语言一样,第一个程序是输出“helloworld.”。图1-16Python集成IDLE图1-17在文件窗口输入代码图1-19程序运行结果界面1.4Python的安装与配置在IDLE执行下列命令,将输出Python之禅,下面的中文翻译引用网络上的翻译给出,希望读者在编程过程中理解并遵守。>>>importthisTheZenofPython,byTimPetersBeautifulisbetterthanugly.精美优于丑陋。Explicitisbetterthanimplicit.明确优于含混。Simpleisbetterthancomplex.简明优于繁复。Complexisbetterthancomplicated.繁复优于难懂。Flatisbetterthannested.平铺直叙优于构架交错。Sparseisbetterthandense.错落有致优于密密麻麻。Readabilitycounts.易读性很必要。Specialcasesaren'tspecialenoughtobreaktherules.Althoughpracticalitybeatspurity.尽管在按部就班面前,实用性更重要,但是在规则面前没有特例。Errorsshouldneverpasssilently.Unlessexplicitlysilenced.错误不应被轻易的放过,除非故意如此。Inthefaceofambiguity,refusethetemptationtoguess.在模棱两可的时候不要试图去盲目测试。Thereshouldbeone--andpreferablyonlyone--obviouswaytodoit.一定有一种明显的方法去解决它,最好是唯一一种。Althoughthatwaymaynotbeobviousatfirstunlessyou'reDutch.尽管在开始时没有那么显而易见,除非你是个荷兰人。(Python创始人是个荷兰人,或是调侃复杂问题像是看荷兰语)Nowisbetterthannever.Althoughneverisoftenbetterthan*right*now.尽管从不开始经常好过于不暇思索立马就做,但是现在仍优于从不开始。Iftheimplementationishardtoexplain,it'sabadidea.如何执行方案很难解释,那这行不通。Iftheimplementationiseasytoexplain,itmaybeagoodidea.如果执行方案很容易解释,那这或许是个好主意。Namespacesareonehonkinggreatidea--let'sdomoreofthose!命名空间是个超级棒的主意,让我们多一些这样的想法。模块作为一种强大且便捷的编程语言,Python自然支持以模块的形式组织代码。Python内置了一些标准模块,Python的使用者也贡献了丰富且强大的第三方模块;标准模块可以直接导入与使用,第三方模块则需先行安装。利用Python内置的pip工具(安装Python3.8时会自动安装该工具)可以非常方便地安装Python第三方模块,该工具可在命令行中使用,语法格式如下:pip是在线工具,pip命令执行后,它需要联网获取模块资源,若没有网络或网络不佳,pip将无法顺利安装第三方模块。注意pipinstall模块名在使用模块中定义的内容之前,需先将模块导入到当前程序。Python使用import关键字导入模块,其语法格式如下:模块导入后,可通过点字符“.”调用模块中的内容,其语法格式如下:模块.函数模块.变量import模块1,模块2,…通过点字符调用模块中的内容可避免多个模块中存在同名函数时代码产生歧义,但若不存在同名函数,可使用from…import…语句直接将模块的指定内容导入程序,并在程序中直接使用模块中的内容。frompygameimportinitinit()示例使用from…import…语句也可将指定模块的全部内容导入当前程序,此时可使用“*”指代模块中的全部内容。虽然from…import*可以方便地导入一个模块中的所有内容,但考虑到代码的可维护性,此种方式不应被过多地使用。frompygameimport*示例模块(module)、包(package)和库(lib)是Python组织代码的三种方式。模块是最基础的代码组织方式,每个包含有组织的代码片段的.py文件都是一个模块,文件名就是模块名。包以类似目录的结构组织模块文件或子包,简单来说,一个包含__init__.py文件的目录就是一个包。包中必有__init__.py文件,可以有多个模块或子包。库是一个抽象概念,它是指具有相关功能的模块的集合。多学一招:代码的组织方式——模快、包与库1.4Python的安装与配置1.4.3Python第三方库(模块)的安装Python安装第三方库(模块)有两种方式:使用pip命令行工具在线下载需要的第三方库;手动下载第三方库,再使用pip命令安装。使用pip工具安装软件包的命令是:pip
install
模块名1.4Python的安装与配置图1-20显示系统没有安装jieba库(jieba库是支持中文文字处理的第三方库)时,执行importjieba将提示没有这个模块。要安装jieba库,打开命令提示符,输入pipinstalljieba并按回车,如果电脑能够上网,将自动安装jieba库,见图1-21所示。1.4Python的安装与配置在命令行窗口中安装jieba库1.4Python的安装与配置可以通过如下命令:pipinstall-i镜像源网址库名称将从镜像源网站下载某个库。例如,在命令提示符中执行以下命令表示从镜像站点/simple下载matplotlib库。:pipinstall-ihttps:///simplematplotlib国内常用的下载速度较快的镜像站点网址如下:清华:/simple中科大:/simple/腾讯:/pypi/simple/阿里:/pypi/simple/网易:/pypi/simple/豆瓣:/simple/1.4Python的安装与配置1.4.4Python帮助文档的使用Python手册是CHM格式标准(即“CompiledHelpManual已编译的帮助文件”的简写)的文档,CHM是微软新一代的帮助文件格式,利用HTML作源文,把帮助内容以类似数据库的形式编译储存。图1-23搜索turtle库帮助文档1.4Python的安装与配置1.4.4Python帮助文档的使用Python手册是CHM格式标准(即“CompiledHelpManual已编译的帮助文件”的简写)的文档,CHM是微软新一代的帮助文件格式,利用HTML作源文,把帮助内容以类似数据库的形式编译储存。图1-23搜索turtle库帮助文档1.4Python的安装与配置新建Python源程序文件的方式新建一个sun.py。输入以下代码。fromturtleimport*color('red','yellow')begin_fill()whileTrue:forward(200)left(170)ifabs(pos())<1:breakend_fill()done()1.4Python的安装与配置1.4Python的安装与配置在命令提示符下输入Python命令,然后再执行内置函数help()可进入交互式帮助系统,图1-25为交互式帮助系统界面。1.4Python的安装与配置help>random.randintHelponmethodrandintinrandom:random.randint=randint(a,b)methodofrandom.RandominstanceReturnrandomintegerinrange[a,b],includingbothendpoints.help>1.4Python的安装与配置help>random.randintHelponmethodrandintinrandom:random.randint=randint(a,b)methodofrandom.RandominstanceReturnrandomintegerinrange[a,b],includingbothendpoints.help>Python解释器捆绑了Python的官方开发工具——IDLE,IDLE具备集成开发环境(IntegratedDevelopmentEnvironment,简称IDE)的基本功能,但开发人员一般还是会根据自己的需求或喜好选择使用其他的开发工具。常用的开发工具SublimeTextSublimeText是一个编辑器,它功能丰富、支持多种语言、有自己的包管理器,开发者可通过包管理器安装组件、插件和额外的样式,以提升编码体验。SublimeText在开发者群体中非常受欢迎。Eclipse+PyDevEclipse是古老且流行的程序开发工具,支持多种编程语言;PyDev是Eclipse中用于开发Python程序的IDE。Eclipse+PyDev通常被用于创建和开发交互式的Web应用。常用的开发工具VimVim是Linux系统中自带的高级文本编辑器,也是Linux程序员广泛使用的编辑器,它具有代码补全、编译及错误跳转等功能,并支持以插件形式进行扩展,实现更丰富的功能。JupyterNotebookJupyterNotebook(简称Jupyter)支持实时代码,便于创建和共享文档,它本质上是一个Web应用程序,常被应用于数据分析领域。PyCharmPyCharm具备一般IDE的功能,如调试、语法高亮、Project管理、代码跳转、智能提示、单元测试、版本控制等,使用PyCharm可以实现程序编写、运行、测试的一体化。常用的开发工具常用的开发工具第2章Python语法基础了解了解熟悉掌握
学习目标了解代码格式12熟悉标识符、关键字、运算符掌握变量和数据类型34了解数字类型,数字类型转换主要内容2.4基本数据类型2.3Python常量和变量2.2Python标识符和关键字2.1Python程序书写格式主要内容2.7基本输入输出2.6字符串2.5运算符和表达式2.1Python程序书写格式Python程序是一系列Python语句的集合,用于执行特定的任务或实现特定的功能在书写Python程序时,要遵循一定的格式,不能随意将代码写在一起,否则解释器不能识别程序代码,造成程序不能运行.正确的程序书写格式对于提高代码的可读性、可维护性和可重用性至关重要。2.1Python程序书写格式2.1.1缩进程序是由语句块构成的,语句块是由一条一条的Python语句组成,语句块可以是一个模块、一个函数、一个类或者一个文件。Python程序通过缩进来定义语句块,因此,Python是一种对缩进敏感的语言。2.1Python程序书写格式Python语言采用严格的“缩进”来表示程序逻辑。程序逻辑也就是所说的Python程序的层次关系。Python代码的缩进可以通过Tab键控制(不建议),也可使用空格控制。空格是Python3首选的缩进方法,一般使用4个空格表示一级缩进Python3不允许混合使用制表符和空格进行缩进,建议采用4个空格的方式缩进代码。。2.1Python程序书写格式Python的缩进标准是使用四个空格进行缩进例如:ifx>0:print("x为正数")ify<0:print("y为负数")else:print("x是非正数")2.1Python程序书写格式如果违反了Python的缩进规则,解释器会抛出一个IndentationError异常例如,对于以下的具有一个多重循环的程序(大家思考,这段程序的功能是什么?),不同的缩进具有不同的含义。foriinrange(1,10):#代码段1forjinrange(1,i+1):#代码段2print("%d×%d=%-2d"%(j,i,i*j),end='')#代码段3print('')#代码段2print('')#代码段12.1Python程序书写格式foriinrange(1,10):#代码段1forjinrange(1,i+1):#代码段2 print("%d×%d=%-2d"%(j,i,i*j),end='')#代码段3 print('')#代码段3print('')#代码段1在IDLE开发环境中编写程序时,可对选中的代码块进行批量缩进和反缩进。菜单操作:Format|IndentRegion,Format|DedentRegion。键盘操作:Ctrl+](批量缩进),Ctrl+[(反缩进)Python代码的缩进可以通过Tab键控制,也可使用空格控制。空格是Python3首选的缩进方法,一般使用4个表示一级缩进;Python3不允许混合使用Tab和空格。ifTrue:print("True")else:print("False”)print("False”)ifTrue:print("True")else:print("False")
print(”hello”)2.1Python程序书写格式2.1.2注释注释是代码中的辅助性文字,会被编译器或解释器略去,不被计算机执行,一般用于程序员对代码的说明,注释是为了未来的自己或者他人方便理解程序,通常程序都需要进行注释。包括单行注释和多行注释,单行注释以“#”开头,用于说明当前行或之后代码的功能。2.1Python程序书写格式#这是我的第一个程序print(“Helloworld.”)#这是输出函数Python语言使用“#”(读作夏普)表示一行注释的开始。注释具有以下作用:注释一般用于在代码中标明作者和版权信息解释代码原理和用途通过注释单行代码辅助程序调试。2.1Python程序书写格式多行注释是以三对单引号或者双引号的语句,主要用于说明函数或类的功能。通常用于多行的程序说明。例如以下就是多行注释。"""函数名:getUserName编写者:袁连海编写日期:2024.9.17修订日期:"""菜单操作:Format→CommentOut Region/UncommentRegion。键盘操作:Alt+3(批量注释)和Alt+4(解除注释)2.1Python程序书写格式2.1.3续行符Python程序是逐行编写的,每行代码长度并无限制,但从程序员角度,单行代码太长并不利于阅读。Python中的续行符为反斜杠“\”在列表([])、字典({})、元组(())或三引号定义的字符串('''或""")中的多行语句,不需要使用反斜杠。2.1Python程序书写格式在书写Python程序时,以下是大家要注意的:一般一行一条语句,可以使用反斜杠作续行符放在行尾;同一行中书写多条语句,语句之间用分号;分割;注释语句可以从任意位置开始;复合语句的逻辑关系必须缩进;注意括号或者分号要用英文字符。Python官方建议每行代码不超过79个字符,若代码过长应该换行。Python会将圆括号、中括号和大括号中的行进行隐式连接,我们可以根据这个特点实现过长语句的换行显示。string=("Python是一种面向对象、解释型计算机程序设计语言," "由GuidovanRossum于1989年底发明。" "第一个公开发行版发行于1991年," "Python源代码同样遵循GPL(GNUGeneralPublicLicense)协议。")现实生活中,人们常用一些名称来标记事物。例如,每种水果都有一个名称来标识。若希望在程序中表示一些事物,开发人员需要自定义一些符号和名称,这些符号和名称叫做标识符。
Python中的标识符需要遵守一定的规则。标示符由字母、下划线和数字组成,且数字不能开头。Python中的标识符是区分大小写的。例如,andy和Andy是不同的标识符。Python中的标识符不能使用关键字
。
命名规则2.2Python标识符和关键字Python标识符用于标识变量、函数、类、模块或其他对象的名称Python中的标识符需要遵守一定的规则。标识符由字母(包括中文字符)、数字和下划线组成。第一个字符必须是一个字母(a-z,A-Z)或下划线(_),不能是数字或其他特殊字符。Python是大小写敏感的语言,因此“name”和“Name”是两个不同的标识符。标识符不能使用Python的保留关键字,如if、for、while、class、def等标识符命名建议:为了规范命名标识符,关于标识符的命名提以下建议:见名之意。常量名使用大写的单个单词或由下画线连接的多个单词。模块名、函数名使用小写的单个单词或由下画线连接的多个单词。类名使用大写字母开头的单个或多个单词。2.2Python标识符和关键字保留字,也称为关键字,指被编程语言内部定义并保留使用的标识符。要查看Python系统的关键字,可以执行以下代码输出查看。>>>importkeyword>>>keyword.kwlist['False','None','True','and','as','assert','break','class','continue','def','del','elif','else','except','finally','for','from','global','if','import','in','is','lambda','nonlocal','not','or','pass','raise','return','try','while','with','yield']>>>关键字是Python已经使用的、不允许开发人员重复定义的标识符。Python3中一共有35个关键字,每个关键字都有不同的作用。大家不用现在去记这些关键字,通过日积月累,这些关键字都会认识。关键字False await else import pass Nonebreakexcept in raise True classfinallyis return and continueforlambda try as def from nonlocalwhile assert del global not withasync elif if or yield2.3Python常量和变量常量是在程序中不会改变的量,如34、0x34ef8、3.1415、”howareyou.”等变量是指内容可以改变的量Python语言变量名的命名规则与标识符命名规则相同,变量必须被初始化,否则会报错变量用于保存和表示数据值的一种语法元素,以下都是变量赋值。score12=100#赋值整型变量price=99.5#浮点型test1_2="hello"#字符串2.3Python常量和变量程序在运行期间用到的数据会被保存在计算机的内存单元中,为了方便存取内存单元中的数据,Python使用标识符来标识不同的内存单元,如此,标识符与数据建立了联系。标识内存单元的标识符又称为变量名Python通过赋值运算符“=”将内存单元中存储的数值与变量建立联系,即定义变量,具体语法格式如下:变量
=值2.3Python常量和变量a=10首先创建一个字面量10,然后a引用这个对象,也就是a存放的是对象10的地址。10aPython语言是一种面向对象的弱类型的解释型计算机程序设计语言,在Python语言中,一切都是对象,变量是对象,常量也是一个对象,这个与其他编程语言如C语言有很大区别。2.3Python常量和变量在Python语言中,变量不需要先申明,变量是对象的引用,实际数据包含在对象中,想使用变量时,可以考虑一个名字,然后将其用作变量例如:当执行a=20这条语句时,解释器会执行以下流程:创建一个类型为整型、值为20的对象;创建一个变量名a把变量名a关联到这个对象2.3Python常量和变量每个对象被创建时都有一个唯一的标识,可以用id()函数可以检查变量引用对象的标识,可以认为它就是对象的内存地址,若标识改变,说明变量引用的对象已经改变。下面的代码演示通过id()函数来获得某个对象的标识。>>>a=10>>>b=10.0>>>c="abc">>>id(a),id(b),id(c)(2071956064,51387232,8508480)>>>2.3Python常量和变量用id函数可以查看变量关联的对象的标识,若标识相同,可以认为变量引用的对象相同可以用is运算符直接判断两个变量是否关联到同一个对象通过函数type查看对象的类型运算符(==等于)判断两个对象的值是否相等。2.3Python常量和变量运行并思考以下代码:>>>a=50>>>b=a>>>type(a)<class'int'>>>>type(b)<class'int'>>>>b==aTrue>>>bisaTrue>>>id(b)2076347616>>>id(a)2076347616>>>>>>a=5.1>>>b=5.1>>>id(a)61676384>>>id(b)61676272>>>aisbFalse>>>a==bTrue>>>type(a)<class'float'>>>>type(b)<class'float'>2.4基本数据类型2.4基本数据类型Python语言基本数据类型包括数值类型、空值、布尔型、字节型与字符串类型Python语言数值类型表示数字或数值的数据,也叫做数字类型,数值类型主要用于数学运算以及索引成员变量有四种内置数值类型,分别是整型、浮点型、复数类型和布尔型。此外,为了使程序能描述现实世界中各种复杂数据,Python包括列表(list)、元组(tuple)、字典(dict)和集合(set)等组合数据类型。2.4基本数据类型Python内置的数字类型有整型(int)、浮点型(float)、复数类型(complex)和布尔类型(bool),其中int、float和complex分别对应数学中的整数、小数和复数;bool类型比较特殊,它是int的子类,只有True和False两种取值。整型:0101-239FalseTrue浮点型:
3.1415
4.2E-10
-2.334E-9复数类型:3.12+1.2.3j
-1.23-93j布尔类型:TrueFalse数字类型示例2.4基本数据类型2.4.1整型数据整数类型数据,简称整型数据,与数学中的概念一致,不带小数点,有正值和负值之分,Python语言的整型数据可以用四种进制表示:十进制二进制八进制十六进制2.4基本数据类型十进制整数:没有前缀,由0到9组成。例如:20、301、-450、0等;
二进制整数:以0b或0B为前缀,其后由0和1组成。例如:0b0101、-0B11011等;
八进制整数:以0o或0O为前缀,其后由0至7的数字组成。例如:0O37、-0o342等;
十六进制整数:以0x或0X为前缀,其后由0至9的数字和a至f字母或A至F字母组成。例如:0x754ef、-0X232DE等。2.4基本数据类型通过函数str()、oct()、hex()、bin()将整数数值转换为十进制、八进制、十六进制、二进制的字符串也可以通过int()函数把十进制、八进制、十六进制、二进制的字符串转换为整数数值2.4基本数据类型>>>a=2232>>>str(a)'2232'>>>oct(a)'0o4270'>>>hex(a)'0x8b8'>>>bin(a)'0b100010111000'>>>int("456")456>>>int("0o4270")>>>int("0o4270",base=8)2232>>>int("0x8b8",base=16)2232>>>int('0b100010111000',base=2)22322.4基本数据类型2.4.2浮点型数据十进制小数形式:由数字和小数点组成(必须有小数点),例如:2.454、0.、-19.11201等。指数形式:科学计数法表示,用字母e(或E)表示以10为底的指数,e之前为数字部分,之后为指数部分。在指数形式表示浮点数时,e(或E)前面必须有数字,后面必须是整数。例如:e-5、1.2E-3.5、1e都是错误的2.4基本数据类型浮点数和整数在计算机内部存储的方式是不同的,整数运算永远是精确的,然而浮点数的运算则可能会有四舍五入的误差。2.4基本数据类型2.4.3复数型数据Python语言中,虚部通过后缀‘J’或‘j’来表示,因此复数的表示形式为:实部+虚部j或
实部+虚部J。例如:3+5j,-5.6+7.8J等。对于复数a,可以用a.real获取其实部,a.imag获取其虚部,a.conjugate()获取其共轭复数,其它数值类型与复数进行运算,结果是复数。complex()函数用于创建一个复数或者将一个数或字符串转换为复数形式2.4基本数据类型2.4.4布尔型数据Python语言的布尔类型有两个值:True和False,分别表示逻辑真和逻辑假。Python规定:任何数值类型的0(比如0、0.0、0e0等)、空字符串''、None,空元组()、空列表[]、空字典{}都被当作False,其他数值或非空字符串为True。注意,True和False的第一个字符是大写。2.4基本数据类型空值是Python语言的一个特殊的值,表示一个空对象,用None表示。空值不是0空值常用于没有返回值的函数结果二进制数据通常用于网络数据传输、二进制图片由bytes类型表示,以字节为单位进行处理。创建bytes类型数据需在常规的str类型前加个b以示区分和文件的保存等2.4基本数据类型>>>c=b"">>>type(c)<class'bytes'>>>>s=bytes()#创建空的字节型数据>>>type(s)<class'bytes'>>>>s="袁连海">>>t=s.encode(encoding='utf-8')>>>s=t.decode()>>>s'袁连海'2.4基本数据类型type()函数是Pyhton语言的一个内置函数,可以判断变量的类型,适用于任何类型。isinstance()函数可以判断一个对象是否是一个已知的类型。isinstance(a,type)其中a表示待判断的对象,type可以是类、基本类型或由它们组成的元组。如果a的类型和type相同或是其中一个,则返回True,否则返回False。2.4基本数据类型三种基本的数值数据类型存在一种逐渐扩展关系:整数->浮点数->复数(整数是浮点数特例,浮点数是复数特例)当自动类型转换达不到转换需求时,可以使用类型转换函数,将数据从一种类型强制(或称为显式)转换成另一种类型2.4基本数据类型运算符描
述int(x,base=10)将字符串x转换为整数,默认为10进制,int(123.45)结果为123float(x)将x转换为浮点数float("241324.23")结果为241324.23complex(x)将x转换为复数,其中实部为x,虚部为0complex(x,
y)将x、y转换为复数,其中实部为x,虚部为y,如complex(1,4)的结果为(1+4j)str(x)将x转换为字符串str(1234)的结果为'1234'chr(x)将一个整数转换为一个字符,整数为字符的ASCII编码chr(65)为'A'ord(x)将一个字符转换为它的ASCII编码的整数值ord("A")为65hex(x)将一个整数转换为一个十六进制字符串hex(255)的结果为'0xff'oct(x)将一个整数转换为一个八进制字符串oct(255)的结果为'0o377'eval(x)将字符串x当作有效表达式求值,并返回计算结果eval("1+3+4")结果为8abs(x)绝对值,x的绝对值abs(-9.78)结果为9.78divmod(x,y)商余,(x//y,x%y),返回商和余数的元组,divmod(20,3)结果为元组(6,2)pow(x,y[,z])幂余,(x**y)%z,pow(3,8)结果为6561,pow(3,8,100)结果为61round(x[,d])四舍五入,d是保留小数位数,默认值为0,round(-123.456,2)结果为-123.46max(x1,x2,…,xn)最大值,返回x1,x2,…,xn中的最大值,n不限max(3,10,4,4,83)结果为10min(x1,x2,…,xn)最小值,返回x1,x2,…,xn中的最小值,n不限min(0,9,5,4,3)结果为0float(x)将x变成浮点数,增加小数部分float(12)结果为12.0;float(“1.23”)结果为1.23complex(x)将x变成复数,增加虚数部分complex(4)结果为4+0j常用类型转换函数和数值内置函数2.4基本数据类型字符串是一个由单引号、双引号或者三引号包裹的、有序的字符序列,字符串是不可变数据类型,将在后面章节详细介绍字符串。下列是字符串的几种表示:使用单引号:'Iamaboy.'使用双引号:"dsf232*asfkwe" 使用三引号:'''adfklkaldfk23((23432''或者”””adfkdasfdkaowekakds28384”””'2.5运算符和表达式Python语言的运算符不仅类型丰富,而且使用方法灵活。根据操作数的不同,运算符可以分为:(1)算术运算符(+、–、*、/、**、//、%)(2)关系运算符(>、<、>=、<=、==、!=)(3)逻辑运算符(and、or、not)(4)位运算符(<<、>>、~、|、^、&)(5)赋值运算符(=、复合赋值运算符)(6)成员运算符(in、notin)(7)同一运算符(is、isnot)(8)下标运算符([])(9)其他(如函数调用运算符())2.5运算符和表达式表达式是将运算符、操作数和括号按一定规则连接起来的符合Python规则的式子。操作数可以是常量、变量或函数。表达式的类型就是表达式计算结果的类型。表达式中不同类型的常量及变量,均应变换为同一类型的量。2.5运算符和表达式2.5.1算术运算符和算术表达式算术运算符包括加法+、减法-、乘法*、除法/、整除//、幂运算**、取模%。其中*、/、//、**、%的优先级高于+和-运算;**运算符表示乘方(幂)运算,其优先级高于*和/'='表示赋值运算符,语法格式为:变量=表达式功能:把'='右边表达式的值赋给'='左边的变量,注意,复制运算符左边必须是变量,不能是表达式。2.5运算符和表达式运算符与“=”结合在一起就是复合赋值运算符例如+=、-=、∗=、/=。a+=b相当于a=a+b复合赋值运算符经常用在自加、自减上,例如i+=1。这个同C语言的复合运算符一样。赋值运算符'='与7种算术运算符(+、-、*、/、//、**、%)和5种位运算符(>>、<<、&、^、|)结合构成12种复合赋值运算符。Python3.8中新增了一个赋值运算符——海象运算符“:=”,该运算符用于在表达式内部为变量赋值,因形似海象的眼睛和长牙而得此命名。num_one=1#使用海象运算符为num_two赋值result=num_one+(num_two:=2)print(result)2.5运算符和表达式x+=1 等价于
x=x+1x*=x+1等价于 x=x*(x+1)x%=5等价于 x=x%5将同一个值赋给多个变量的赋值方式称为链式赋值,语法格式为:变量名1=变量名2=…=变量名n=表达式同时给多个变量赋不同的值,称为多变量同步赋值语法格式为:变量1,变量2,…,变量n=表达式1,表达式2,…,表达式n过程为:首先计算表达式右边n个表达式的值,然后同时将表达式的值赋给左边的n个变量。运算符
意义
实例
运算结果+
加 2+3 5-
减 4-6 -2∗ 乘 5*2 10∗∗ 乘方 3**2 9
除法 7/3 2.3333333333333335// 整除(向下取整) 11//5 2%
求余数 20%6 2abs(x)
求x的绝对值 Abs(-20) 20divmod(x,y) 返回元组(x//y,x%y) divmod(11,5) (2,1)power(x,y) x的y次方 power(2,3) 8+= 加赋值 x+=y x=x+y2.5运算符和表达式2.5.2关系运算符和关系表达式关系运算符也叫比较运算符,用来判断两个操作数的大小。如果关系成立,结果为True,否则为False。假设x=2,y=32.5运算符和表达式2.5.3逻辑运算符和逻辑表达式Python中分别使用“or”,“and”,“not”这三个关键字作为逻辑运算符,其中or与and为双目运算符,not为单目运算符。以x=10,y=20为例,具体如下:2.6.4逻辑运算符2.5运算符和表达式2.5.4位运算符与表达式位运算只能作用于整数类型,按位运算包括:按位与(&)、按位或(|)、
按位取反(~)、按位异或(^)、左移(<<)和右移(>>)
等等。位运算符用于按二进制位进行逻辑运算,操作数必须为整数。下面介绍位运算符的功能,并以a=2,b=3为例进行演示,具体如下:按位左移(<<)是指将二进制形式操作数的所有位全部左移n位,高位丢弃,低位补0。以十进制9为例,9<<4的结果为144,9转为二进制后是00001001,将转换后的二进制数左移4位。11144按位右移(>>)是指将二进制形式操作数的所有位全部右移n位,低位丢弃,高位补0。以十进制8为例,8转换为二进制后是00001000,将转换后的二进制数右移2位。8>>2的结果为2按位与(&)是指将参与运算的两个操作数对应的二进制位进行“与”操作。当对应的两个二进制位均为1时,结果位就为1,否则为0。以十进制9和3为例,9和3转换为二进制后分别是00001001和00000011。按位或(|)是指将参与运算的两个操作数对应的二进制位进行“或”操作。若对应的两个二进制位有一个为1时,结果位就为1。若参与运算的数值为负数,参与运算的两个数均以补码出现。以十进制8和3为例,8和3转换为二进制后分别是00001000和00000011。按位异或(^)是指将参与运算的两个操作数对应的二进制位进行“异或”操作。当对应的两个二进制位中有一个为1,另一个为0时,结果位为1,否则结果位为0,也就是对应的两个二进制位相同时为0,不同时为1.以十进制8和4为例,8和4转换为二进制后分别是00001000和00000100。2.5运算符和表达式原码、反码、补码是计算机中对数字的二进制表示方法,它们主要用于表示有符号整数。原码是最直观的二进制表示法,用来模拟人类的正负数概念。最高位(第一位)是符号位(0代表正,1代表负),其余位代表数值的大小,例如(以8位二进制为例):+5的原码:00000101-5的原码:100001012.5运算符和表达式反码是对原码的一种变换方式,用于简化负数的表示。正数的反码与其原码相同,负数的反码是在其原码的基础上,符号位不变,其余各位按位取反(即0变1,1变0),例如(以8位二进制为例):+5的反码:00000101(与原码相同)-5的反码:11111010(-5的原码10000101的除符号位外各位取反)2.5运算符和表达式补码是对反码的一种变换方式,是目前计算机系统中最普遍的方式来表示有符号整数。正数的补码与其原码相同,负数的补码是在其反码的基础上加1。+5的补码:00000101(与原码、反码相同)-5的补码:11111011(-5的反码11111010加1)2.5运算符和表达式2.5.5成员运算符和成员表达式成员运算符in和notin用于测试给定数据是否存在于序列(如列表、字符串)中,关于它们的介绍如下:2.6.5成员运算符in:如果指定元素在序列中返回True,否则返回False。notin:如果指定元素不在序列中返回True,否则返回False。2.5运算符和表达式is用来检查两个变量是否引用同一对象,如果相同返回True,不相同则返回False。2.3Python常量和变量2.5.6变量的比较在Python语言中,比较两个变量方法包括:比较变量的值,比较变量引用的对象中的数据是否相同;比较标识,判断两个变量是否引用的是同一对象,指向的内存地址是否相同;类型比较,比较两个变量的类型是否相同。2.3Python常量和变量当且仅仅比较的两个变量指向同一个对象时is才返回True,而==是说明指向同一个对象的两个变量的值是相等的。当is返回为True时,==一定返回的是True,但是==返回的值为True,is不一定返回的是True小整数的范围在[-5,257),对于小整数来说,id(number)是相同的,因为都是引用的同一块内存,大于等于257的整数引用的不是同一块内存。2.6字符串思考:什么是字符串?2.6字符串字符串是由字母、符号或者数字组成的字符序列。2.6字符串字符串是由字母、符号或者数字组成的字符序列字符串是Python中最常用的数据类型。可以使用引号(英文的单引号、双引号或者三引号)来创建字符串>>>c1='Hello'#单引号>>>c2="Python"#双引号>>>c3='''12345'''#三引号>>>c4='''Isaid:"HelloWorld!"''''helloword'使用单引号使用双引号"helloword"使用三引号"""mynameisjackmynameisjack"""Python支持使用单引号、双引号和三引号定义字符串,其中单引号和双引号通常用于定义单行字符串,三引号通常用于定义多行字符串。2.6字符串2.6.1字符串创建字符串(str)是Python内置的数据类型,用于存储一系列字符(包括字母、数字、标点符号等)字符串也属于序列,序列的基本操作有创建、索引、切片、连接以及属于该对象的方法。在Python中可以用单引号('')、双引号("")和三引号(""""""/'''''')创建字符串。2.6字符串Python使用反斜杠“\”对字符串里面的字符进行转义,把一个字符前加反斜杠叫做转义字符。例如,在字符串中的字符单引号(‘)前添加反斜杠“\’”,Python解释器会将“\’”之后的单引号解释为普通字符,而非字符串的定界符,以下代码显示转义字符的含义。>>>print('let\'sgotoschool.')let'sgotoschool.2.6字符串表2-3转义字符表转义字符含义ASCII码(16/10进制)\o空字符(NULL)00H/0\n换行符(LF)0AH/10\r回车符(CR)0DH/13\t水平制表符(HT)09H/9\v垂直制表(VT)0B/11\a响铃(BEL)07/7\b退格符(BS)08H/8\f换页符(FF)0CH/12\’单引号27H/39\”双引号22H/34\\反斜杠5CH/92\问号字符
3F/63\ddd任意字符
三位八进制\xhh任意字符
二位十六进制2.6字符串在一段字符串中如果包含多个转义字符,但又不希望转义字符产生作用,此时可以使用原始字符串。原始字符串即在字符串开始的引号之前添加r或R,使它成为原始字符串。2.6字符串2.6.2字符串连接和重复运算符“+”和“*”用在两个数值型对象之间时,表示对两个数求和以及求积,那么,两个字符串用“+”进行运算表示什么意思呢?运算符+用在两个字符串之间是两个字符串进行连接。运算符*用在字符串和一个整数之间表示字符串重复操作。2.6字符串>>>123+123#运算符+用在两个数值之间,表示两个数求和246>>>"123"+"123"#运算符+用在两个字符串之间,表示两个字符串连接'123123'>>>"123"+5#运算符+用在字符串和数值之间,类型出错Traceback(mostrecentcalllast):File"<pyshell#
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- T/CECS 10339-2023建筑用耐候钢及构件
- T/CECS 10146-2021复杂卷边冷弯型钢
- T/CECS 10045-2019绿色建材评价空气净化材料
- T/CCSAS 043-2023化工(危险化学品)企业内训师技能评定规范
- T/CCOA 16-2020组合回转清理筛
- T/CCMA 0165-2023工程机械半消声室内变速箱声功率级的测试方法
- T/CCMA 0072-2019挖掘机动臂疲劳寿命试验方法
- T/CAZG 003-2019亚洲象饲养管理技术规范
- 中信java面试题及答案
- 冠生园面试题及答案
- 江苏省苏州市常熟市2023-2024学年五年级下学期数学期末检测
- 江苏省南京市鼓楼区2023-2024学年五年级下学期期末数学试卷
- 华夏文化五千年智慧树知到期末考试答案章节答案2024年大连工业大学
- YB/T 6328-2024 冶金工业建构筑物安全运维技术规范(正式版)
- DZ∕T 0148-2014 水文水井地质钻探规程(正式版)
- 弘扬非遗传统文化-评书2
- 《商业文化与素养》教案全套 第一周专题一认知商业文化1-第十八周专题六自我管理3
- AED(自动体外除颤仪)的使用
- 2024中考复习必背初中英语单词词汇表(苏教译林版)
- 《土源性线虫病》课件
- 找个管家管安全管理
评论
0/150
提交评论