




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第1章python语言概述目录contentsPython编程语言简介与发展历程Python开发环境Python扩展库Python编程语言简介与发展历程Python语言简介Python的历史Python的特性Python的版本应用实例与案例分析Python的未来展望
-Python由其他语言发展而来,如ABC、Modula-3、C、C++、SmallTalk、Unixshell等
-Python的成功代表了它借鉴的所有语言的成功
-对于一门语言好与不好的评判,受制于外部因素如平台、硬件、时代等Python语言简介一段ABC程序:统计文本中出现的单词总数HOWTORETURNwordsdocument: PUT{}INcollectionFORlineINdocument:FORwordINsplitline:IFwordnot.incollection:INSERTwordINcollectionRETURNcollectionPython的使用率呈线性增长
-Python的创始人为荷兰数学和计算机科学研究学会的吉多·范罗苏姆
-1989年,吉多决心开发一个新的脚本解释程序,作为ABC语言的一种继承,即Python-1991年,第一款Python编译器诞生,具备类、函数、异常处理等核心功能
-Python的发展历程包括社区建设、版本更新、应用拓展等Python的历史
-简单易学:Python代表简单主义思想,易于入门,使人们能够专注于解决问题
-免费开源:Python是自由/开放源码软件,允许自由发布、阅读源代码、修改、创造新软件
-高层语言:Python编写程序时无需考虑底层细节,具有良好的可读性和易用性
-可移植性:Python可以被移植到多个平台上,包括Linux、Windows、Mac等
-面向对象:Python同时支持面向过程和面向对象编程,简单且强大
Python的特性
-可扩展性:Python支持与C/C++混合编程,可以调用C/C++库
-胶水语言:Python常用作胶水语言,将不同语言编写的程序粘合在一起
-丰富的库:Python标准库包含大量功能模块,满足各种需求
-解释性:Python代码无需编译成二进制代码,具有良好的可移植性和易用性
-规范性:Python采用强制缩进的方式,使代码具有较好的可读性
-交互式命令行:Python可以单步直译运行,方便调试与学习Python的特性
-Python2于2000年发布,稳定版本是Python2.7,已于2020年停止维护
-Python3于2008年发布,解决了早期版本的一些不足之处,但与Python2不完全向后兼容-Python3的发展历程及版本更新Python的版本Python2与Python3部分区别区别Python2Python3代码规范源码不规范,重复代码很多源码精简,美观、优雅字符串编码格式默认采用ASCII编码默认采用Unicode编码模块导入默认是相对导入,自己创建模块时,必须要有__init__.py的文件无要求缩进同时允许Tab和Space在代码中共存使用更加严格的缩进,Tab和Space共存会导致报错源文件编码格式默认采用ASCII,因此使用中文时要在源文件开头加上一行注释:#--coding:utf-8--默认采用utf-8输出使用print关键字进行输出:print'Hello'使用print()函数进行输出:print('Hello')输入使用raw_input()函数:name=raw_input('请输入名字:')使用input()函数:name=input('请输入名字:')格式化字符串方式用%占位符:'Hello,%s'%("World")用format()函数:'Hello,{}'.format("World")数据类型有整型int、长整型long只有整型int布尔类型True、False是两个变量,可以更改True、False变成两个关键字,不能进行修改-Python在GUI程序开发中的应用,如PyQt、PySide、WxPython等
-Python在Web程序开发中的应用,如Django、Flask等框架
-Python在网络爬虫中的应用,如Scrapy框架
-Python在服务器软件开发中的应用,如Twisted框架
-Python在图形处理和文本处理中的应用,如PIL、Tkinter等
-Python在数据库编程和数据科学中的应用,如NumPy、Pandas、Scikit-Learn等应用实例
-Python在未来的发展方向与趋势,如机器学习、人工智能、物联网等领域的发展
-Python的社区与生态系统,以及开源项目的贡献与合作Python的未来展望Python开发环境Python解释器Python开发环境的安装与配置运行Python程序Python作为一种解释型语言,源代码经过编译生成字节码,然后由Python虚拟机(PVM)执行,最终在终端输出结果。Python解释器种类(5种):CPython/IPython/PyPy/JPython/IronPythonPython解释器IPython基于CPython的交互式解释器,提供了更多交互功能。CPython官方版本的Python解释器,由C语言开发是最广泛使用的解释器。PyPy针对执行速度进行优化,采用JIT技术动态编译Python代码。IronPython运行在微软.Net平台上的Python解释器可以将Python代码编译成.Net字节码。JPython在Java平台上运行的Python解释器可以将Python代码编译成Java字节码Python解释器下载Python解释器从Python官方网站下载适用于个人电脑系统的Python版本/downloads/对于64还是32位版本的选择,用户可以通过此电脑→右键→属性进行查看图示中用红圈标注出的installer是可执行的安装版本,下载到本地后可以直接安装,操作与安装应用软件相同,推荐使用此类安装版本,它能自动配置环境变量。Python开发环境的安装与配置安装Python解释器(以Python3.10.6为例)运行安装程序,选择自定义安装并添加到系统环境变量。Python开发环境的安装与配置安装Python解释器(以Python3.10.6为例)按照默认的勾选项,然后更改路径,点击Install按钮安装即可按<win+R>键打开运行框,输入cmd,进入控制界面进入命令行,输入py后,按<Enter>键,出现如右图界面表示成功安装Python开发环境的安装与配置通过命令行输入`py`进入交互模式或运行Python文件。命令行调用解释器打开Python自带的IDLE编辑器,编写代码并保存为.py文件,然后运行.py文件以查看结果。使用IDLE编辑Python代码简单的运行运行Python程序Python扩展库安装Python扩展库扩展库中对象的导入JupyterNotebook使用pip安装pip是Python的包管理器,可以通过命令行使用pip来安装扩展库。例如,要安装NumPy库,可以运行`py-mpipinstallnumpy`命令。通过conda安装conda是一个开源的包管理系统,它可以方便地安装和管理多个扩展库。例如,要安装Pandas库,可以运行`condainstallpandas`命令。从源码安装如果需要从源码安装扩展库,可以先下载源码包,然后解压并运行`setup.py`脚本进行安装。例如,要安装Matplotlib库,可以先下载Matplotlib的源码包,然后解压并运行`pythonsetup.pyinstall`命令进行安装。安装Python扩展库使用pip安装在控制界面键入:py-mpipinstallSomePackage(第三方库名称),可利用pip安装第三方库在控制界面键入:py-mpipinstall--upgradeSomePackage,可更新第三方库版本下载超时失败的两种解决办法:(1)延长pip的下载等待时间在控制界面键入:py-mpip--default-timeout=100installSomePackage(2)使用镜像地址提高网速例如,清华大学镜像地址是/simple在控制界面键入:py-mpipinstall-i/simpleSomePackage例如,使用镜像升级pip版本,在控制界面键入:py-mpipinstall-i/simplepip-U安装Python扩展库使用pip安装pip是Python的包管理器,可以通过命令行使用pip来安装扩展库。例如,要安装NumPy库,可以运行`py-mpipinstallnumpy`命令。通过conda安装conda是一个开源的包管理系统,它可以方便地安装和管理多个扩展库。例如,要安装Pandas库,可以运行`condainstallpandas`命令。从源码安装如果需要从源码安装扩展库,可以先下载源码包,然后解压并运行`setup.py`脚本进行安装。例如,要安装Matplotlib库,可以先下载Matplotlib的源码包,然后解压并运行`pythonsetup.pyinstall`命令进行安装。扩展库中对象的导入JupyterNotebook(此前被称为IPythonNotebook)是一个交互式笔记本,它的本质是一个Web应用程序,使用IPython解释器。它便于创建和共享程序文档,支持实时代码、数学方程、可视化和标记,经常被用作处理数据清理和转换、数值模拟、统计建模、机器学习、深度学习等。JupyterNotebook安装JupyterNotebook利用pip进行安装:按<win+R>键,输入cmd,打开控制界面。键入py-mpipinstalljupyter安装完成后,先配置JupyterNotebook目录路径,再启动JupyterNotebook,否则默认打开和保存JupyterNotebook文件目录在C盘。在控制界面,输入jupyternotebook–generate-config,生成默认配置文件到C:\Users\Administrator\.jupyter\jupyter_notebook_config.py找到默认配置文件的目录,很多配置文件都是生成到这个目录中打开jupyter_notebook_config.py文件,搜索c.NotebookApp.notebook_dir(大概在261行位置)在该行中删去#号,把引号中的值更改为要存放JupyterNotebook文件的目录路径。以后JupyterNotebook创建的文件都会被保存到该目录路径中JupyterNotebook启动
JupyterNotebook进入控制界面,输入jupyternotebook后按<Enter>键。此时,默认浏览器就会打开JupyterNotebook快速使用Notebook在当前界面的右侧选项中,单击新建→Python3,可以新建文件(.ipynb)在单元格内完成代码编辑后,单击运行(或快捷键<Ctrl+Enter>)实现代码运行并在结果运行区反馈结果当前单元格侧边显示为绿色时,表示此时单元格处于命令模式,按<Enter>键切换为编辑模式;当前单元格侧边显示为蓝色时,表示此时单元格处于编辑模式,按<Esc>键切换为命令模式。编辑模式允许用户将代码或文本输入到一个单元格中,命令模式将键盘与笔记本级命令绑定在一起,并通过一个灰色的单元格边界显示JupyterNotebookJupyterNotebook快捷键命令模式编辑模式按键功能按键功能<F>查找并且替换<Tab>代码完成或缩进<Ctrl+Shift+F>打开命令配置<Shift+Tab>工具提示<Ctrl+Shift+P>打开命令配置<Ctrl+]>缩进<Enter>进入编辑模式<Ctrl+[>取消缩进<P>打开命令配置<Ctrl+A>全选<Shift+Enter>运行代码块,选择下面代码块<Ctrl+Z>撤销<Ctrl+Enter>运行选中的代码块<Ctrl+/>评论<Alt+Enter>运行代码块并且插入下面<Ctrl+D>删除整行<Y>把代码块变成代码<Ctrl+U>撤销选择<M>把代码块变成标签<Insert>切换重写标志<R>清除代码块格式<Ctrl+Home>跳到单元格起始处<1>把代码块变成heading1<Ctrl+Up>跳到单元格起始处<2>把代码块变成heading2<Ctrl+End>跳到单元格最后<3>把代码块变成heading3<Ctrl+Down>跳到单元格最后<4>把代码块变成heading4<Ctrl+Left>跳到单词左边<5>把代码块变成heading5<Ctrl+Right>跳到单词右边<6>把代码块变成heading6<Ctrl+Backspace>删除前面的单词<K>选择上面的代码块<Ctrl+Delete>删除后面的单词<上>选择上面的代码块<Ctrl+Y>重做<下>选择下面的代码块<Alt+U>重新选择<J>选择下面的代码块<Ctrl+M>进入命令行模式<Shift+K>扩展上面选择的代码块<Ctrl+Shift+F>打开命令配置<Shift+上>扩展上面选择的代码块<Ctrl+Shift+P>打开命令配置<Shift+下>扩展下面选择的代码块<Esc>进入命令行模式<Shift+J>扩展下面选择的代码块<Shift+Enter>运行代码块,选择下面代码块<A>在上面插入代码块<Ctrl+Enter>运行选中的代码块<B>在下面插入代码块<Alt+Enter>运行代码块并且插入下面<X>剪切选择的代码块<Ctrl+Shift+Minus>在鼠标出分割代码块<C>复制选择的代码块<Ctrl+S>保存并检查<Shift+V>粘贴到上面<Down>光标下移<V>粘贴到下面<Up>光标上移<Z>撤销删除
<D>删除选中单元格
<Shift+M>合并选中单元格,如果只有一个单元格被选中
<Ctrl+S>保存并检查
<S>保存并检查
<L>切换行号
<O>选择单元格的输出
<Shift+O>切换选定单元的输出滚动
<H>显示快捷键
<I>中断服务
<0>(数字0)重启服务(带窗口)
<Ctrl+V>从系统剪切板粘贴
<Esc>关闭页面
<Q>关闭页面
<Shift+L>在所有单元格中切换行号,并保持设置
<Shift+Space>向上滚动
<Space>向下滚动
THANKS.第2章Python语言基础Python语法规则Python数据类型赋值语句输入与输出运算符与表达式实验:温度转换器contents目录Python语法规则语句缩进注释标识符空白的重要性01在Python中,空白(包括空格和换行符)是语法的重要组成部分,用于分隔语句和表达逻辑结构。缩进决定逻辑行的层次结构02Python使用缩进(通常是四个空格或一个制表符)来表示逻辑行的层次结构。这种缩进方式被称为“PEP8”风格,是Python社区中广泛接受的一种编码风格。缩进规则03Python中的缩进规则比较简单,主要是保持逻辑行的一致性和清晰性。每个逻辑行都应该有一个一致的缩进量,以表明它在代码块中的位置。语句缩进同一层次的语句必须有相同的缩进在同一代码块中,所有同一层次的语句都应该具有相同的缩进量。这有助于表明它们属于同一个逻辑块。Tab符和空格不能混用在Python中,Tab符和空格不能混用。如果在一个文件或代码块中同时使用Tab符和空格来表示缩进,会导致语法错误。物理行与逻辑行的概念在Python中,物理行是指源代码中的一行,而逻辑行则是指一个完整的语句或表达式。有时候,一个物理行可能包含多个逻辑行,特别是在使用括号或引号时。语句缩进#本段代码有3个物理行a=1b=2c=3#变量d虽书写为多行,但是解释器只作为一个语句处理,即一个逻辑行d=[[1,2,3],[4,5,6],[7,8,9]]作用及重要性注释是源代码中的重要组成部分,用于解释代码的功能、用途和实现方式等。通过注释,开发者可以更好地理解和维护代码,同时也方便其他人阅读和理解代码。单行注释在Python中,单行注释使用#符号。可以在#后面添加任何文本,这些文本将被视为注释内容。多行注释多行注释可以使用'''或者"""来表示。这些符号可以包裹多行文本,使其中的任何内容都被视为注释。注释#这是一个注释print("Hello,World!")'''这是多行注释,用三个单引号这是多行注释,用三个单引号这是多行注释,用三个单引号'''print("Hello,World!")定义与含义标识符用于标识变量、函数、类、模块等对象。在Python中,标识符是字母、数字和下划线组成的字符串,必须以字母或下划线开头。在Python3.X版本中,中文也可以作为标识符的组成部分。命名规则标识符必须小写,因为Python区分大小写。不能包含空格或特殊字符。不能使用Python的内置标识符作为自定义标识符。关键字使用Python中的关键字如if、else、for等有特殊意义,不能作为普通标识符。伪关键字如class、def等也被保留,不能作为普通标识符。在使用标识符时,需避免使用这些关键字。标识符标识符FalsebreakfornotNoneclassfromorTruecontinueglobalpass__peg_parser__defifraiseanddelimportreturnaselifintryassertelseiswhileasyncexceptlambdawithawaitfinallynonlocalyieldPython数据类型数值类型字符串类型布尔类型在Python中,变量不需要提前声明,可以直接赋值。例如,`a=5`声明了一个名为`a`的变量,并赋值为`5`。数据类型是计算机中用于表示不同类型的数据的标识。Python中常见的数据类型包括数值类型、字符串类型、布尔类型等。变量与数据类型简介数据类型的概念和分类变量声明和赋值整数型数据是不带小数点的数字,例如`-123`、`0`、`123`等。Python中整数型的取值范围非常大,可以表示很大的整数。整数型(int)浮点数型数据是小数点后有数字的数值,例如`3.14`、`-2.718`等。在Python中,浮点数型的精度较高,可以表示较为精确的数值。浮点数型(float)复数型数据是由实部和虚部组成的数,例如`3+4j`、`-2-3j`等。在Python中,复数型数据可以用于表示复数的运算和转换。复数型(complex)数值类型整数型int进制前导符示例十进制转转十进制二进制0b或0B0b10bin(2)int('101010',2)八进制0o或0O0o10oct(8)int('367',8)十六进制0x或0X0x10hex(16)int('FFF',16)整数型十进制转换可对整数执行+(加)、-(减)、*(乘)、/(除)运算Python3允许使用_(下划线)作为数字(包括整数和小数)的分隔符。通常每隔三个数字添加一个下划线>>>2+35>>>3-21>>>2*36>>>3/21.5>>>a=1_301_547>>>b=384_000_000>>>print("a:",a)a:1301547>>>print("b:",b)b:384000000浮点数型float除了通常看到的十进制形式的浮点数,也有指数形式:aEn或aen。a为尾数部分,是一个十进制数;n为指数部分,是一个十进制整数;E或e是固定的字符,用于分割尾数部分和指数部分。整个表达式等价于a×10^n。>>>0.003*0.10.00030000000000000003>>>2.1E5210000.0>>>14E314000.0只要写成指数形式就是浮点数,即使其最终值状似整数。由于浮点数和整数在计算机内部存储的方式不同,导致整数运算永远是精确的,然而浮点数的运算则可能会有四舍五入的误差。复数型complex该数值类型与数学中的复数概念一致,由实部和虚部组成,虚部用j表示。在Python语言中,复数可以看为二元有序实数对(a,b),表示为:a+bj。例如:2+3j用a=complex(2,3)表示。需要注意,当b为1时,1不能省略。使用real方法可以获取该复数的实部,使用imag方法可以获取该复数的虚部。>>>a=complex(2,3)>>>a.real2.0>>>a.imag3.0字符串类型字符串就是一系列字符。在Python中,用引号括起的任意文本都是字符串类型数据str其声明有三种方式,分别是:单引号'abc'、双引号''hello''和三引号'''hello'‘’。字符串在使用时,引号必须成对出现;如果字符串中包含了单引号或双引号,则可以使用另一种引号进行表示。'Itoldmyfriend,"Pythonismyfavoritelanguage!"'"OneofPython'sstrengthsisitsdiverseandsupportivecommunity."书写长字符串时,用3个引号(单引号或双引号)括起来的字符串可以包含多行字符串。'''Thisisatestformultiplelinesoftext.'''在用单引号括起的字符串中,如果包含撇号,就将导致错误。因为Python将第一个单引号和撇号之间的内容视为一个字符串,进而将余下的文本视为Python代码,从而引发错误重新开始很多时候,程序员在编程过程中只是遗漏了某种简单部分,例如for语句末尾的冒号,再试一次可能就会有所帮助适当放松长时间从事一个任务时,容易让人陷入单一思维而想不出其他解决方案。通过休息摆脱当前的思维方式,有助于从不同的角度看问题在线搜索大部分编程过程中遇到的问题已经有前人面临并解决,甚至在网络上已分享了相关经验。良好的搜索技能和具体的关键字有助于找到现有的资源,供以解决当前面临的问题。搜索时请完整搜索错误消息受困于非常棘手的错误时字符串类型1. 转义字符在编程中,空白泛指任何非打印字符,如空格、制表符和换行符。像这种情况,当需要在字符中使用特殊字符时,就需要用到转义字符。在Python里用\(反斜杠)转义字符。转义字符描述\(行尾)续行符,实现用多行表示一个字符串\\反斜杠符号\'单引号\"双引号\a发出系统响铃声\b退格,把光标前移,覆盖删除前一个\0空字符一个\n换行,一般用于末尾,实现多行字符串的显示效果\v纵向制表符,使用率较低,print会打印出一个男性符号\t横向制表符,可以认为是一个间隔符\r回车,并把当前字符串之前的所有字符删掉\f换页,使用率较低,print会打印出一个女性符号info_n="myname\nisNeo"print("n:",info_n)info_t="myname\tisNeo"print("t:",info_t)info_v="myname\visNeo"print("v:",info_v) #在Terminal终端执行,才能出现对应效果info_a="myname\aisNeo"print("a:",info_a) #在Terminal终端执行,才能出现对应效果info_b="mynameisNeo\b"print("b:",info_b)info_r="mynameisNeo\r"print("r:",info_r,'--')info_f="mynameisNeo\f"print("f:",info_f) #在Terminal终端执行,才能出现对应效果print('Mynameis\'Neo\'')print("Mynameis\"Neo\"")
输出:n:mynameisNeot:mynameisNeov:mynameisNeoa:mynameisNeob:mynameisNe--mynameisNeof:mynameisNeo□Mynameis'Neo'Mynameis"Neo"字符串类型2. 字符串前缀在一个字符串前加一个字符r,表示该字符串是非转义的原始字符串在一个字符串前加一个字符u,表示对字符串进行Unicode编码在一个字符串前加一个字符f,表示格式化操作>>>r=r'c:\a.txt'>>>r'c:\\a.txt'3. 内置函数str()使用内置函数str(),可以把非字符串型的数据转换成字符串型请注意,当shell显示字符串的值时,它将字符序列放在单引号中这样让用户知道该值实际上是文本而不是数字(或其他数据类型)>>>a=23>>>b=str(a)>>>b'23'4. Unicode码Unicode把所有语言都统一到一套编码里,防止乱码问题的出现,因此Unicode也叫万国码。在Python3版本中,字符串是以Unicode编码的,也就是说,Python的字符串支持多语言。布尔类型对与错、0和1、正与反,都是传统意义上的布尔类型。但在Python语言中,布尔类型只有两个值,True(真)和False(假)。True和False是Python中的关键字,当作为Python代码输入时,一定要注意首字母要大写,不能是其它花式变型,否则解释器会报错。值得一提的是,布尔类型可以当作整数来对待,即True相当于整数值1,False相当于整数值0。使用内置函数bool(),可以根据传入参数的逻辑值创建一个新的布尔值。所有计算结果,或者调用返回值是True或者False的过程都可以称为布尔运算,例如比较运算。布尔值通常用来判断条件是否成立,是以Python布尔类型用于逻辑运算。赋值语句常量与变量的定义常量表示不变化的值,常用全大写字母表示;变量则表示可以变化的值,无特定表示方式。变量名的重要性与命名规则变量名用于标识变量,并在程序中引用。命名应遵循规则,如包含字母、数字、下划线,避免数字开头和空格,同时保持描述性。常量与变量赋值语句的基本结构<variable>=<value>赋值语句的基本结构是使用等号`=`将一个值赋给一个变量。左值、赋值运算符和右值的含义左侧的变量是一个标识符,该语句让变量指向右侧的值。赋值的语义是右侧的值与左侧命名的变量相关联。其中,左值必须是变量;右值可以是变量、值或结果为值的任何表达式。赋值语句的用途和示例赋值语句主要用于给变量赋值,并在程序中进行数据交换和计算。name="Eric"age=74x=3.9*x*(1-x)赋值语句有两个用途:一是定义新的变量;二是让已定义的变量指向特定值。010203赋值语句基础同时给多个变量赋值的方法Python中可以使用一行代码同时给多个变量赋值。其形式如下:<var1>,<var2>,...,<varn>=<expr1>,<expr2>,...,<exprn>>>>a,b='abc',[1,2,3]>>>print('a=',a)a=abc>>>print('b=',b)b=[1,2,3]序列拆解和元素对应关系除了同时赋值外,Python还允许将序列中的元素逐个赋值给多个变量#字符串序列>>>a,b,c='efg'>>>print('a=',a)a=e>>>print('b=',bb=f>>>print('c=',c)c=g#列表序列>>>a,b,c=[1,2,3]>>>print('a=',a)a=1>>>print('b=',b)b=2>>>print('c=',c)c=3利用*收集多余元素的方法当序列中的元素个数多于需要赋值的变量个数时,可以使用星号`*`来收集多余的元素#*放后>>>a,*b='abc'>>>print('a=',a)a=a>>>print('b=',b)b=['b','c']#*放前>>>*a,b='abc'>>>print('a=',a)a=['a','b']>>>print('b=',b)b=c多变量赋值命名错误当标识符引用错误时,Python解释器会报错,提供Traceback。Traceback是一条记录,指出了解释器尝试运行代码时,在什么地方陷入了困境。此处创建了一个名为message的变量,但是再次引用时,写成了mesage。解释器列出了这行代码,旨在帮助快速找出错误。在这里,解释器发现了一个名称错误,并指出打印的变量mesage未定义,Python无法识别提供的变量名。名称错误通常意味着两种情况,一是使用变量前忘记为其赋值,二是输入变量名时拼写不正确。Python解释器不会对代码作拼写检查,但要求变量名的拼写一致。因此,创建变量名和编写代码时,无需考虑英语中的拼写和语法规则。输入与输出输入函数input()输出函数print()数据的格式化输出input()函数用于获取用户的输入,其基本语法为<variable>=input(<prompt>)其中prompt是可选参数,用于提示用户输入。目的与基本语法input()函数默认获取的是文本输入,用户输入的内容会以字符串的形式返回。获取文本输入如果用户输入的是数字,`input()`函数会将其转换为字符串类型并返回;如果需要读取用户键入的数字,使用语法如下:<variable>=eval(input(<prompt>))外嵌的函数eval()将用户键入的文本被求值为一个表达式,以产生存储到变量中的值获取数字输入输入函数`input()`>>>name=input("Enteryourname:")Enteryourname:Eric>>>name"Eric">>>age=input("Enteryourage:")Enteryourage:27>>>age"27">>>age=eval(input("Enteryourage:"))Enteryourage:27
>>>print(age,type(age))27<class'int'>
>>>age=eval(input("Enteryourage:"))Enteryourage:25.5
>>>print(age,type(age))25.5<class'float'>
>>>ans=eval(input("Enteranexpression:"))Enteranexpression:3+2*4
>>>print(ans)11
用单个input从用户那里获取多个数值,这对于利用单个提示获取多个输入值很有作用如果想要一次性获得的不只是纯数字,而是原始文本,可以使用split()函数。该函数的语法如下:str.split(str="",num=string.count(str))split是一个内置函数,用来对字符串进行分割,也包括即时通过input获取的字符串。分割后的字符串以列表形式返回,再通过同时赋值语句赋值给各个变量split()不带参数,默认以空格为分割符,对键入的字符串进行分割。当split带参数时,则以该参数进行分割。同时赋值输入函数`input()`>>>score1,score2=eval(input("Entertwoscoresseparatedbyacomma:"))Entertwoscoresseparatedbyacomma:10,5
>>>average=(score1+score2)/2>>>print("Theaverageofthescoresis:",average)Theaverageofthescoresis:7.5
>>>a,b=input("请输入多个值:").split()请输入多个值:Eric28
>>>print('a=',a)a=Eric
>>>print('b=',b)b=28
>>>a,b=input("请输入多个值:").split(',')请输入多个值:Eric,27
>>>print('a=',a)a=Eric
>>>print('b=',b)b=27
控制间隔符`sep`可以通过`sep`参数来控制多个对象之间的分隔符,例如`print('Hello','world',sep='-')`会输出两个字符串'-Hello-world-'。控制结尾符`end`可以通过`end`参数来控制输出结束后的结尾符,例如`print('Helloworld',end='!')`会输出字符串'Helloworld!'。输出字符串print()函数也可以输出字符串类型的数据,例如print('Helloworld')会输出字符串'Helloworld'。输出函数`print()`基本语法形式print(*objects,sep='',end='\n',file=sys.stdout)对象之间要用逗号分隔。对象可以是相同的数据类型,也可以是不同的数据类型字符串间可以不使用逗号字符串间添加逗号分隔符,输出的字符串会有空格间隔数值类型可以使用print直接输出一次输出多个对象一行中直接输出字符串输出函数`print()`>>>print(1) 1>>>str1='helloguys'>>>print("输出:",str1,'Nicetomeetyou!')输出:helloguysNicetomeetyou!>>>a=2>>>b='cats'>>>print('Ihave',a,b)Ihave2cats>>>print('Hello''World') HelloWorld>>>print('Hello','World','!')HelloWorld!010203使用占位符`%`在Python中,`%`占位符用于数据的格式化输出。例如,`print('Hello%s'%'world')`会输出'Helloworld'。`%s`表示字符串类型的数据,对于其他类型的数据,如整数使用`%d`,浮点数使用`%f`。str.format()方法除了`%`占位符,还可以使用`str.format()`方法。例如,`'Hello{name}'.format(name='world')`会输出'Helloworld'。在`str.format()`中,大括号`{}`表示要格式化的数据,括号内指定变量值。f-string格式化输出Python3.6及以上版本支持f-string。它是一种在字符串字面值中嵌入表达式的格式化机制。例如,`f'Hello{name}'`会将变量`name`的值插入到字符串中,得到'Helloworld'这样的输出。数据的格式化输出使用占位符`%`使用语法如下:"%[(name)][flags][width][.precison]type"%待格式化数据符号说明+
右对齐,正数加正号,负数加负号-左对齐,正数无符号,负数加负号空格右对齐(默认的对齐方式),正数前加空格,负数前加负号0(数字)右对齐,以0填充,正数无符号,负数加负号,并将符号放置在0最左侧占位符%中的参数flags符号说明sstring,字符串;ddecimalinteger,十进制数;iinteger,用法同%d;uunsignedinteger,无符号十进制数;ffloat,浮点数(默认保留小数点后6位);FFloat,浮点数(默认保留小数点后6位);eexponent,将数字表示为科学计数法(小写e,默认保留小数点后6位);EExponent,将数字表示为科学计数法(大写E,默认保留小数点后6位);%%转义%,输出百分号。占位符%中的参数type使用占位符`%`使用语法如下:"%[(name)][flags][width][.precison]type"%待格式化数据不指定参数name时,带有转换说明符的字符串(如%s)与需要转换的值必须按照位置一一对应。指定参数name时,需要使用字典指明键值对。#单个数据>>>print("|Mynameis%s"%"Lily|")|MynameisLily|
#多个数据:使用元组>>>print("|Mynameis%s,I’m%dyearsold。|"%("Lily",18))|MynameisLily,I’m18yearsold。|
#单个数据>>>print("|Mynameis%(name)s|"%{"name":"Lily"})|MynameisLily|
#多个数据>>>print("|Mynameis%(name)s,I’m%(age)dyearsold.|"%{"name":"Lily","age":18})|MynameisLily,I’m18yearsold.|
使用占位符`%`使用语法如下:"%[(name)][flags][width][.precison]type"%待格式化数据参数flags和width的使用方式根据变量数据类型略有区别。例如(此处设置width=10)#字符串print("|%+10s|"%"Lily") #字符串右对齐print("|%-10s|"%"Lily") #字符串左对齐print("|%10s|"%"Lily") #字符串右对齐print("|%010s|"%"Lily") #字符串右对齐
输出:|Lily||Lily||Lily||Lily|
#正整数
print("|%+10d|"%26) #正整数右对齐,正数加正号print("|%-10d|"%26) #正整数左对齐,正数无符号print("|%10d|"%26) #正整数右对齐,正数前加空格print("|%010d|"%26) #正整数右对齐,正数无符号,以0填充
输出:|+26||26||26||0000000026|
#负整数print("|%+10d|"%-26) #负整数右对齐,负数加负号print("|%-10d|"%-26) #负整数左对齐,负数加负号print("|%10d|"%-26) #负整数右对齐,负数加负号print("|%010d|"%-26) #负整数右对齐,负数加负号,符号和数字之前填充0
输出:|-26||-26||-26||-000000026|使用占位符`%`使用语法如下:"%[(name)][flags][width][.precison]type"%待格式化数据参数flags和width的使用方式根据变量数据类型略有区别。例如(此处设置width=10)#正浮点数#如未指定浮点数精度,默认保留6位小数,其余均用空格填充(如指定0则用0填充)#若width小于浮点数的数位,则width无效。print("|%+10f|"%2.2) #正浮点数加正号右对齐,小数部分以0填充print("|%-10f|"%2.2) #正浮点数左对齐,小数点后为空格print("|%10f|"%2.2) #正浮点数右对齐,浮点数前为空格print("|%010f|"%2.2) #正浮点数右对齐,小数点前以0填充输出:|+2.200000||2.200000||2.200000||002.200000|使用占位符`%`使用语法如下:"%[(name)][flags][width][.precison]type"%待格式化数据参数flags和width的使用方式根据变量数据类型略有区别。例如(此处设置width=10)#负浮点数print("|%+10f|"%-2.2) #负浮点数加负号右对齐,小数部分以0填充print("|%-10f|"%-2.2) #负浮点数加负号左对齐,小数点后为空格print("|%10f|"%-2.2) #负浮点数加负号右对齐,其余用空格填充print("|%010f|"%-2.2) #负浮点数加负号右对齐,其余用0填充,注意符号在最左侧输出:|-2.200000||-2.200000||-2.200000||-02.200000|使用占位符`%`使用语法如下:"%[(name)][flags][width][.precison]type"%待格式化数据参数precision的使用方式根据变量数据类型略有区别。#如果待格式化数据为字符串则表示字符串截取>>>print("|%.2s|"%"python")|py|#对于浮点类型数据,保留小数点后.precision数字#注意:以上例举数存在“四舍六入五双”的情况>>>print("|%(num).2f|"%{"num":0.145})|0.14|>>>print("|%(num).2f|"%{"num":1.145})|1.15|>>>print("|%(num).2f|"%{"num":2.145})|2.15|>>>print("|%(num).2f|"%{"num":3.145})|3.15|#科学计数>>>print("|%.3f用科学计数法表示写作%.2E|"%(40.125,40.125))|40.125用科学计数法表示写作4.01E+01|使用占位符`%`#s:字符串>>>print("|Mynameis%s"%"Lily|")|MynameisLily|#d,i,u:十进制数字>>>print("|十进制数:%d|"%26)|十进制数:26|>>>print("|十进制数:%i|"%26)|十进制数:26|>>>print("|十进制数:%u|"%26)|十进制数:26|#f:浮点数(默认保留6位小数)>>>print("|这是一个浮点数%f|"%2.26)|这是一个浮点数2.260000|#e,E:科学计数>>>print("|%f用科学计数法表示写作%e|"%(0.145,0.145))|0.145000用科学计数法表示写作1.450000e-01|>>>print("|%.3f用科学计数法表示写作%.2E|"%(0.145,0.145))|0.145用科学计数法表示写作1.45E-01|#%%:转义%#如果有待格式化数据需要输出百分号(%),需要使用%%进行转义>>>print("|I'm%d%%sure.|"%100)|I'm100%sure.|str.format(1)可以设置格式化参数的顺序。例如:
#按照位置一一对应>>>print('{}asked{}todosomething'.format('Lucy','Lily'))LucyaskedLilytodosomething
>>>print('{}asked{}todosomething'.format('Lily','Lucy'))LilyaskedLucytodosomething
#format()函数支持多个占位符,可以为占位符指定的被转换数据的索引>>>print('{0}{1}{1}{0}'.format('a','b'))abba
str.format(2)可以设置名字。#直接设置名字进行调用>>>print('HappyBirthday{age},{name}!'.format(age=30,name='Mary'))HappyBirthday30,Mary!#通过字典设置参数>>>site={"name":"Mary","age":30}>>>print("祝:{name},{age}岁生日快乐!".format(**site))祝:Mary,30岁生日快乐!#通过列表索引设置参数>>>my_list=['Mary',30]>>>print("祝:{0[0]},{0[1]}岁生日快乐!".format(my_list))#"0"是必须的祝:Mary,30岁生日快乐!str.format(3)兼容性强、适配性强。>>>importnumpyasnp>>>A1=np.array([[1,2,3,4,5],[6,7,8,9,10],[11,12,13,14,15]],dtype='int8')>>>print('矩阵A1的行数和列数分别为(%d,%d)'%(A1.shape[0],A1.shape[1]))\\\矩阵A1的行数和列数分别为(3,5)>>>print('矩阵A1的行数和列数分别为{}'.format(A1.shape))矩阵A1的行数和列数分别为(3,5)str.format(4)可以指定填充、对齐和宽度,以及精度和进制。#{<索引>:<填充字符><对齐方式><宽度.精度><格式>}#^,<,>分别表示居中、左对齐、右对齐,后面的数字表示宽度。#:后填充的字符只能是一个字符,不指定则默认用空格填充>>>print('{0:*>8}'.format(10))#右对齐,共8个字符******10>>>print('{0:*<8}'.format(10))#左对齐,共8个字符10******>>>print('{0:*^8}'.format(10))#居中对齐,共8个字符***10***>>>print('{0:.2f}'.format(2/3))#值取两位小数0.67str.formatformat中的数字格式数字格式输出描述3.1415926{:.2f}3.14保留小数点后两位3.1415926{:.+2f}+3.14带符号保留小数点后两位-1{:+.2f}-1.00带符号保留小数点后两位3.1415926{:.0f}3不带小数5{:0>2d}05数字补零(填充左边,宽度为2)5{:x<4d}5xxx数字补x(填充右边,宽度为4)1000000{:,}1,000,000以逗号分隔的数字格式0.333{:.2%}33.30%百分比格式f-stringf-string即格式化字符串(formattingstring),它是str.format()的一个变种,其语法形式殊途同归。使用语法如下:f"{}{}{}"。即通过f或F开头的字符串,使用符号{}完成格式化输出。总结来说,Python字符串格式化的语法较多。%格式化可以满足大多常用的功能,但是不方便处理一些精密化或复杂的格式化需求,所以推荐使用str.format()或f-string格式化处理字符串。f-string是str.format()的一个分支,在一些特定情况下使用可以极大程度减少代码量,使代码更加清晰易懂,可以有选择性的使用f-string。>>>name="Eric">>>age=74>>>print(f"Hello,{name}.Youare{age}.")Hello,Eric.Youare74.运算符与表达式算术运算符关系运算符逻辑运算符运算符的优先级和结合性03乘号`*`用于乘法运算或字符串重复。01加号`+`用于加法运算或字符串拼接。当整数型和浮点数型相加时,求和结果也是浮点数型。+用于字符串时,能够对字符串进行拼接。02减号`-`用于减法运算或求负数。运算符与表达式算术运算符>>>a=1>>>b=1.0>>>print('a+b=',a+b)a+b=2.0>>>n=45>>>m=-n>>>x=-83.5>>>y=-x>>>print(m,"-",y,'=',m-y)-45-83.5=-128.503乘号`*`用于乘法运算或字符串重复。01加号`+`用于加法运算或字符串拼接。02减号`-`-可以用作减法运算,也可以用作求负运算,即正数变负数、负数变正数。运算符与表达式算术运算符>>>n=45>>>m=-n>>>x=-83.5>>>y=-x>>>print(m,"-",y,'=',m-y)-45-83.5=-128.503乘号`*`用于乘法运算或字符串重复。01加号`+`用于加法运算或字符串拼接。02减号`-`用于减法运算或求负数。运算符与表达式算术运算符>>>a=4*25>>>b=12.5*2>>>print(a,",",b)100,25.0>>>str="hello!">>>print(str*4)hello!hello!hello!hello!06次方**用于次方运算。04除号/和///表示普通除法,结果总是浮点数。//表示整数除法,结果取整。除数始终不能为0,否则会导致除数为零错误05求余%求得两个数相除的余数,包括整数和小数。%两边的数字都是整数时,求余的结果也是整数只要有一方数字是小数,求余的结果就是小数求余结果的正负由第二个数字决定运算符与表达式算术运算符#整数不能除尽>>>print("23/5=",23/5)23/5=4.6>>>print("23//5=",23//5)23//5=4>>>print("23.0//5=",23.0//5)23.0//5=4.0#整数能除尽>>>print("25/5=",25/5)25/5=5.0>>>print("25//5=",25//5)25//5=5>>>print("25.0//5=",25.0//5)25.0//5=5.0#小数除法>>>print("12.4/3.5=",12.4/3.5)12.4/3.5=3.542857142857143>>>print("12.4//3.5=",12.4//3.5)12.4//3.5=3.006次方**用于次方运算。04除号/和///表示普通除法,结果总是浮点数。//表示整数除法,结果取整。除数始终不能为0,否则会导致除数为零错误05求余%求得两个数相除的余数,包括整数和小数。%两边的数字都是整数时,求余的结果也是整数只要有一方数字是小数,求余的结果就是小数求余结果的正负由第二个数字决定运算符与表达式算术运算符#整数求余>>>print("15%6=",15%6)15%6=3>>>print("-15%6=",-15%6)-15%6=3>>>print("15%-6=",15%-6)15%-6=-3>>>print("-15%-6=",-15%-6)-15%-6=-3#小数求余>>>print("7.7%2.2=",7.7%2.2)7.7%2.2=1.0999999999999996>>>print("-7.7%2.2=",-7.7%2.2)-7.7%2.2=1.1000000000000005>>>print("7.7%-2.2=",7.7%-2.2)7.7%-2.2=-1.1000000000000005>>>print("-7.7%-2.2=",-7.7%-2.2)-7.7%-2.2=-1.0999999999999996#整数和小数运算>>>print("23.5%6=",23.5%6)23.5%6=5.5>>>print("23%6.5=",23%6.5)23%6.5=3.5>>>print("23.5%-6=",23.5%-6)23.5%-6=-0.5>>>print("-23%6.5=",-23%6.5)-23%6.5=3.0>>>print("-23%-6.5=",-23%-6.5)-23%-6.5=-3.506次方**用于次方运算。04除号/和///表示普通除法,结果总是浮点数。//表示整数除法,结果取整。除数始终不能为0,否则会导致除数为零错误05求余%求得两个数相除的余数,包括整数和小数。%两边的数字都是整数时,求余的结果也是整数只要有一方数字是小数,求余的结果就是小数求余结果的正负由第二个数字决定运算符与表达式算术运算符#次方运算>>>print('3^4=',3**4)3^4=81>>>print('2^5=',2**5)2^5=32#开方运算>>>print('81^(1/4)=',81**(1/4))81^(1/4)=3.0>>>print('32^(1/5)=',32**(1/5))32^(1/5)=2.0运算符与表达式算术运算符运算符说明示列运算结果+加法5+1015-减法100-595*乘法8*972/浮点数除法100/520.0//整数除法100//520%模(求余)9%41**幂2**38Python基本算术运算符关系运算符Python关系运算符运算符表达式描述实例运行结果==x==yx等于y'ABCD'=='ABCDEF'False!=x!=yx不等于y'ABCD'!='abcd'True>
x>yx大于y'ABC'>'ABD'False>=x>=yx大于等于y123>=23True<
x<yx小于y'ABC'<'DEF'True<=x<=yx小于等于y'123'<='23'Trueisxisyx、y引用同一对象,比较对象的id1isTrueFalseisnotxisnotyx、y引用不同对象,比较对象的id1isnotTrueTrue逻辑运算符Python布尔运算or运算and运算not运算逻辑量1逻辑量2结果逻辑量1逻辑量2结果逻辑量结果FalseFalseFalseFalseFalseFalseFalseTrueFalseTrueTrueFalseTrueFalseTrueFalseTrueTrueFalseFalseTrueFalseTrueTrueTrueTrueTrueTrue逻辑运算符示例代码#设置变量>>>a=1>>>b=2>>>c=3#and都真才真>>>print(a<bandb<c)True
>>>print(a<bandb>c)False
#or都假才假>>>print(a>borb<c)True
>>>print(a>borb>c)False
#not取反>>>print(notFalse)True
>>>print(notc>b)False
逻辑运算符Python逻辑运算逻辑运算符表达式A布尔值表达式B布尔值结果示例andFalse-A>>>print(0and1) 0True-B>>>print(1and2.0) 2.0>>>print('ABC'and0) 0orFalse-B>>>print(Noneor'ABC') 'ABC'>>>print(Noneor0) 0True-A>>>print([1,2,3]or0) [1,2,3]逻辑运算符Python运算符优先级和结合性优先级(高到低)运算符描述结合性1+x,-x正,负
2x**y幂从右向左3x*y,x/y,x%y乘,除,取模从左向右4x+y,x-y加,减从左向右5x<y,x<=y,x==y,x!=y,x>=y,x>y比较从左向右6notx逻辑否从左向右7xandy逻辑与从左向右8xory逻辑或从左向右实验:温度转换器温度转换器输入输出拓展:制作简单的EXE程序案例描述:由于计量单位的不同,人们很难对非常用计量数据有一个直观的认知,因此计量单位转换是一个必要的功能需求。请设计一个温度转换程序,其功能是将华氏度换算成摄氏度,以便使用者判断气温变化。案例分析:1. 分析问题:分析问题的计算部分;2. 确定问题:将问题划分为输入、处理及输出部分;3. 设计算法:计算部分的核心,根据华氏温度转摄氏温度的公式: (°F-32)×5/9=°C,确定输入和输出部分。实验:温度转换器代码TempConvert.py实验:温度转换器""" 输入华氏温度值,对应显示摄氏温度值 #④"""TempStr=int(input("请输入华氏温度值:")) #①C=(TempStr-32)/1.8 #②print("转换后的摄氏温度是{:.1f}C".format(C)) #③安装PyInstaller按<win
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年记者证考试权威试题及答案
- 描述性统计考点试题及答案
- 2024年考试文史知识试题及答案
- 2024统计师备考时间管理 试题及答案
- 特定区域产咖啡豆的试题及答案
- 2024食品安全员考试全面试题及答案
- 2024年数据驱动架构的设计试题及答案
- 咖啡师考试复习技巧试题及答案
- 档案与企业决策支持的关系试题及答案
- 2024年系统分析师考试解题技巧资源及试题与答案
- 消费者心理与行为分析PPT(第四版)完整全套教学课件
- 《普通高中化学课程标准》(2017年版)
- 城镇企业职工养老保险制度改革试点方案〉实施办法分享
- 中医医院医疗质量考核标准实施细则
- 2023年机动车检测站内部审核表(三合一)
- 办公住所托管使用合同协议书范本
- 2023福建中考道德与法治答题卡word版可编辑
- 上海市黄浦区2020-2021学年高一下学期期末语文试题
- 城乡规划管理与法规智慧树知到答案章节测试2023年同济大学
- 王怡宁-IQon Spectral CT 临床广泛应用与体会
- 乳牙和年轻恒牙的解剖形态与组织结构
评论
0/150
提交评论