《Python基础》PPT课件.ppt

上传人:jun****875 文档编号:7472640 上传时间:2020-03-21 格式:PPT 页数:281 大小:5.23MB
返回 下载 相关 举报
《Python基础》PPT课件.ppt_第1页
第1页 / 共281页
《Python基础》PPT课件.ppt_第2页
第2页 / 共281页
《Python基础》PPT课件.ppt_第3页
第3页 / 共281页
点击查看更多>>
资源描述
Python 第一章进入python3 5的精彩世界 前言 Python简介 Python安装 2 本节内容 进入Python编程世界 Python的官网网站 http www python orgUnix衍生系统可能已经安装了Python 在命令行对话框中键入 python 即可显示版本信息 Windows下安装Python和安装其他软件一样 很easy 编码方面 Python3 x默认utf 8 语法方面有改动 数据类型方面有调整 面向对象 异常处理和模块等方面也有改动 本教学使用Python3 5 Python下载与安装 Python2 xvsPython3 x Python安装 python官网有几个下载文件 有什么区别 Python3 6 0a1 2016 05 17DownloadWindowsx86web basedinstallerDownloadWindowsx86executableinstallerDownloadWindowsx86embeddablezipfileDownloadWindowsx86 64web basedinstallerDownloadWindowsx86 64executableinstallerDownloadWindowsx86 64embeddablezipfilex86是32位 x86 64是64位 可以通过下面3种途径获取python web basedinstaller是需要通过联网完成安装的executableinstaller是可执行文件 exe 方式安装embeddablezipfile嵌入式版本 可以集成到其它应用中 安装好python后 在开始菜单栏中会自动添加一个名为python3 5的文件夹 点击该文件夹会有如图下图所示的一些子目录 IDLE是Python集成开发环境 也称交互模式 Python3 5是Python的命令控制台 里面只能执行Python命令 第三个是帮助文档 点击后会弹出帮助文档 最后一个是Python的模块文档 本书若无特别指出 示例都是在IDLE中执行的 进入Python编程世界 打开交互模式 如下图所示 若看到 则表示是在Python交互式环境下 在Python交互式环境下 只能输入Python代码并立刻执行 在交互式环境下输入print Hello world 按回车 可以看到输出了Hello world 如下图 红色箭头指向为输入部分 红色框为输出 此处print后面带了括号 表示print是一个函数 单引号里面的叫字符串 如果要让Python打印出指定的文字 可以用print 函数 然后把希望打印的文字用单引号或者双引号括起来 但不能混用单引号和双引号 我们该怎么去刻意犯呢 我们以前面的 Hello world 为示例 如果将print Hello world 修改为print Hello world 去掉后面的单引号 在交互模式下测试一下 输入语句 print Hello world 可以看到屏幕打印结果如下图所示 这里打印意为在屏幕上输出文本 并非通过打印机打印出来 通过这个错误提示 就能很快就知道问题的原因 温故知新 学以致用 1 回顾一下Python的发展历程 起源和应用场景 2 在本地安装Python最新版本 安装好后卸载 卸载后再安装 尽量关注一下各个步骤的细节 3 尝试在不同操作系统上安装Python 4 在 Hellworld 示例中 尝试将print函数拼写错误 查看输出结果 5 不要用电脑测试 自己想想print 1 2 的输出结果 Windows下运行Python程序 HelloWorld py coding cp936 支持汉字注释print Hello world 我的第一个Python程序raw input 使cmd框不立刻退出三种运行方式打开源文件 用PythonShell运行 双击源文件 用CMD运行 在PythonShell中直接写程序运行 进入Python编程世界 其他的Python集成开发环境 1 开源PythonWin Win32Extensions 进入Python编程世界 Python学习资源 简明Python教程 啄木鸟社区 CSDN下载 其他 9081 doc abyteofpython cn chinese index html htp http www python orghttp www diveintopython org Python快速入门 输入输出 注释 本章主题 操作符 赋值 数据类型 缩进 循环语句 条件语句 文件操作 错误处理 函数 类 模块 print输出 注释 print Helloworld PythonShell提示符Helloworld abs 4 abs 内建函数 取绝对值4 myString Helloworld 单引号 双引号成对使用 printmyStringHelloworld myString Helloworld 显示结果带引号 下划线含义 表示最后一个表达式 Helloworld Python快速入门 print输出 注释 print sis dyearsold 李书豪 26 李书豪is26yearsold s字符串 d整型 f浮点型 Python非常灵活 即使将数字传递给 s 也不会引发严重后果 logFile open myLogFile txt a 打开文件 print logFile Python让程序员的工作更轻松 重定向输出符号 logFile close 关闭文件 Python快速入门 raw input 输入 userName raw input 输入登录名 输入登录名 李书豪 print 你的登录名为 userName你的登录名为李书豪 自动加空格 raw input 从用户那里得到数据输入 myNumber raw input 输入一个数字 输入一个数字 1024 print 你输入数字的2倍是 d int myNumber 2 你输入数字的2倍是 2048 int 字符串转换为整型 Python快速入门 操作符 标准算术操作符 取整 取余 乘方 print 2 3 2010 4 2 print 2 3 2010 4 2 括号增加可读性标准比较操作符 3 14 3 14 3 14 渐渐被淘汰False逻辑操作符 andornot 2 4 and 2 4 or not 3 4 5 False 3 4 5等价于3 4and4 5 简洁 Python快速入门 赋值 数据类型 Python变量名规则与其他编程语言一样 并且大小写敏感 pptname IntroctiontoPython pptName Python入门 height 1 71 age 26 n height n 100 等价于n n 100五种基本数字类型 intlongboolfloatcomplex复数0102 1280 x80 0XA9 12345678902010L 0 xABCDEF123456L TrueFalse 3 1415926 1 2E 1410 32 1e10 6 54 3 21j 1 23 45 6J0 1j99 88j 0 142857 0j Python快速入门 数据类型 字符串 字符串 索引操作符 切片操作符 连接运算 重复运算 strPython Python strIsCool iscool strPython 0 第一个字符strPython 2 5 tho P strIsCool 1 最后一个字符strIsCool 2 is strPython strIsCool n 回车 Pythoniscool 30 Python快速入门 数据类型 列表 元组 字典 列表 list 和元组 tuple 可以看成普通的 数组 numberList 1 2 3 4 5 6 7 8 9 0 mixList LiShuhao 26 1 71 mixTuple Python is cool 元组可以看成只读的列表 如 mixTuple 0 C 出错 printmixTuple 0 mixTuple 1 mixTuple 1 Pythoniscool字典 dictionary 由键值对 Key Value 构成 myDict name LiShuhao height 171 age 26 formKeyinmyDict printmKey myDict mKey 缩进 Tab 空格 Python快速入门 缩进 while循环语句 if条件语句 缩进 简洁 可读性好循环语句 whilewhileexpression expression条件表达式while suite 根据条件循环执行的语句条件语句 ifelifelseifexpression1 蓝色部分可以单独用if suiteelifexpression2 绿色部分可以省略 也可以重复多个elif suiteelseexpression3 用elif 最后必须有elseelse suite Python没有switch case Python快速入门 for循环语句 循环语句 forrange 内建函数Python中的for循环与传统的for循环不太一样 不是计数循环 更像迭代循环 如 fornItemin 123 email homework printnItemfornIteminrange 5 range 5 等价于 1 2 3 4 5 printnItem print不自动换行方法 加逗号fornCharinmyString myString abc printnCharforiinrange len myString len 字符串长度print d i myString i 输出 0 a Python快速入门 for循环语句 循环语句 forenumerate 内建函数 enumerate 突破约束 索引 元素双循环fori nCharinenumerate myString print d i myString i 列表解析 for语句squared item 2foriteminrange 5 014916complexTuple item 2foriteminrange 10 ifitem 2 19254981 Python快速入门 文件操作 文件操作 open file readlines close handle open file name access mode r 默认r r 读取 w 写入 a 添加 读写 b 二进制访问 filename raw input 请输入文件名 hFile file filename r fornLineinhFile printnLine hFile close close 是文件对象hfile的一个属性 属性可以是数据值 也可以是函数和方法 类 模块 文件和复数等都有属性 本示例适用于较小的文件 否则占用内存太大 Python快速入门 错误处理 错误和异常 try except Python编译时会检查语法错误 运行时检测其他错误 当遇到错误 Python解释器就引发异常 并显示详细信息 try 你打算管理的代码段 exceptIOError e print 出错原因 e 程序员也可以用raise有意引发一个异常 Python快速入门 函数 函数 deffunction name arguments 参数可为空 可有默认值 optionaldocumentationstring 可选的函数说明语句function suite 函数代码段returnfun obj 可以没有 自动返回None对象defaddMeToMe me 函数示例 神奇的 操作return me me 小括号不能省略printaddMeToMe 3 14 6 28printaddMeToMe 100 200printaddMeToMe Python PythonPythonprintaddMeToMe 1 abc 1 abc 1 abc Python快速入门 类 模块 类 相关数据及逻辑的容器 构建创建真实对象的蓝图 classclassName baseClass es optionaldocumentationstring 说明性文字 可选 static member declarations 静态成员定义method declarations 方法定义模块 一种组织形式 将有联系的代码组织到独立文件中 模块可以包含可执行代码 函数和类 importsys 导入方法 sys为模块名称 sys stdout write Helloworld sys platform win32 sys version 2 6 5 r265 79096 Python快速入门 第二章开启Python之旅 本章主要介绍一些Python的基本知识和一些基本概念的介绍 为后续章节学习相关内容做铺垫 2 1 旅行 第一步 认识程序 旅行前 我们要先熟悉地名 知道要去哪里 将会经过哪里 学习编程也一样 在学习之前要先了解程序 调试 语法错误 运行错误 语义错误等 2 1 1程序 程序是用语言写成的 语言分高级语言和低级语言 高级语言翻译成机器代码有两种方法 解释和编译 编译型语言则是将源代码完整的编译成目标代码后才能执行 以后在执行时就不需要编译了 下图显示了一个编译器的结构 这个有点类似我们乘坐的直达车 所有要乘车的人从起点上车 中途不搭载其他乘客 2 2数据类型 Python3中有六个标准的数据类型 Number 数字 String 字符串 List 列表 Tuple 元组 Sets 集合 Dictionary 字典 本节将讲解Number 数字 数据类型 其它五种数据类型由后续相关章节进行介绍 Python3支持三种不同的数值类型 整型 int 浮点型 float 复数 complex 2 2 1整型 整型 int 通常被称为是整型或整数 是正或负整数 不带小数点 例如交互模式下输入如下 5151这里使用的就是整型 整型加法如下 25 2550 整型减法 51 501整型乘法 51 2102整型除法 153 513 0 155 513 0392156862745097此处出现除不尽的情况了 在整数除法中 除法 计算结果是浮点数 即使是两个整数恰好整除 结果也是浮点数 如果只想得到整数的结果 丢弃可能的分数部分 可以使用地板除 整数的地板除 永远是整数 即使除不尽 改成如下写法 153 513 155 513 地板除 只取结果的整数部分 Python还提供一个余数运算 可以得到两个整数相除的余数 如下 153 510 155 512 2 2 2浮点型 浮点型 float 浮点型由整数部分与小数部分组成 浮点型也可以使用科学计数法表示 先看示例 3 3 102336 59999999999997按预计应该一位小数 但输出结果却有这么多位小数 是因为整数和浮点数在计算机内部存储的方式是不同的 整数运算永远是精确的 而浮点数运算则可能会有四舍五入的误差 如下输入 3 3 102 15 5352 09999999999997浮点除法 153 51 03 0 155 51 03 0392156862745097浮点地板除 155 51 03 0 155 51 02 0 2 2 3复数 复数 complex 复数由实数部分和虚数部分构成 可以用a bj 或者complex a b 表示 复数的实部a和虚部b都是浮点型 Python支持复数 Python的复数我们当前阶段使用或接触的比较少 此处就不做具体的讲解 读者有一个概念即可 有兴趣可以自行查阅相关资料 2 2 4数据类型转换 有时候 我们需要对数据内置的类型进行转换 数据类型的转换 你只需要将数据类型作为函数名即可 关于数据的类型转换 有如下几个函数可以使用 int x 将x转换为一个整数 float x 将x转换到一个浮点数 complex x 将x转换到一个复数 实数部分为x 虚数部分为0 complex x y 将x和y转换到一个复数 实数部分为x 虚数部分为y x和y是数字表达式 int x 示例 int 352 1 352float x 示例 float 352 1 352 1 float int 352 1 352 0这里先把352 1取整得到整数352 再用float将352转换成浮点数352 0 这样就得到我们需要的结果 2 2 5常量 所谓常量就是不能变的变量 比如常用的数学常数 就是一个常量 在Python中 通常用全部大写的变量名表示常量 Python中有两个比较常见的常量 分别为 PI和E PI 数学常量pi 圆周率 一般以 来表示 E 数学常量e e即自然常数 自然常数 这两个常量将会在后续章节中被使用 具体的用法在使用中进行体现 2 3变量和关键字 编程语言最强大的功能之一是操纵变量的能力 变量 variable 是一个需要熟知的概念 如果你觉得数学是让你抓狂的话 别担心 Python中的变量很好理解 变量基本上就是代表某值的名字 2 3 1变量 在Python中 变量的使用环境非常宽松 没有在Python中 等号 是赋值语句 可以把任意数据类型赋值给变量 如下为定义一个名为xiaohong的变量 xiaohong XiaoHong 此操作解释 xiaohong是我们创建的变量 是赋值语句 XiaoHong是变量值 需要用引号标记 整句话的意思为 创建变量xiaohong并赋值为XiaoHong 注意 字符串必须以引号标记开始 并以引号标记结束 打印变量结果 print xiaohong XiaoHong在使用变量前 需要对其赋值 没有值的变量是没有意义的 编译器也不会编译通过 例如我定义一个变量为abc 不赋任何值 输入及结果如下 abcTraceback mostrecentcalllast File line1 inabcNameError name abc isnotdefined 同一个变量可以反复赋值 而且可以是不同类型的变量 输入如下 a 123123 a ABC print a ABC这种变量本身类型不固定的语言称之为动态语言 与之对应的是静态语言 静态语言在定义变量时必须指定变量类型 如果赋值的时候类型不匹配 就会报错 和静态语言相比 动态语言更灵活 就是这个原因 当不能确定变量或数据的类型时 可以借助解释器内置的函数type进行确认 在交互模式下可以如下输入 type Hello world type 100 type 3 0 a testtype type a 请不要把赋值语句的等号等同于数学的等号 比如下面的代码 a 100a a 200在编程语言中 赋值语句先计算右侧的表达式a 200 得到结果300 再赋给变量a 由于a之前的值是100 重新赋值后 a的值变成300 我们通过交互模式验证 输入如下 a 100 a a 200 print a 300 理解变量在计算机内存中的表示也非常重要 当我们写 a ABC 时 Python解释器干了两件事情 1 在内存中创建了一个 ABC 的字符串 2 在内存中创建了一个名为a的变量 并把它指向 ABC 也可以把一个变量a赋值给另一个变量b 这个操作实际上是把变量b指向变量a所指向的数据 例如下面的代码 a ABC b a a XYZ print b 最后一行打印出变量b的内容到底是 ABC 呢还是 XYZ 如果从数学意义上理解 就会错误地得出b和a相同 也应该是 XYZ 但实际上b的值是 ABC 让我们一行一行地执行代码 就可以看到到底发生了什么事 执行a ABC 解释器创建了字符串 ABC 和变量a 并把a指向 ABC 如下图所示 执行b a 解释器创建了变量b 并把b指向a指向的字符串 ABC 如图2 4所示 执行a XYZ 解释器创建了字符串 XYZ 并把a的指向改为 XYZ 但b并没有更改 如图2 5所示 所以 最后打印变量b的结果自然是 ABC 了 2 3 2变量名称 变量名可以是由数字或字符组成的任意长度的字符串 但必须以字母开头 使用大写字母是合法的 但变量名使用小写字母开头是个好主意 python是区分大小写的 举个例子来说 Name和name是两个不同的变量名 交互模式中输入如下 name studypythonishappy Name Iaggreewithyou print name studypythonishappy print Name Iaggreewithyou 下划线 可以出现在变量名中 它经常用于连接多个词组 比如happy study do it with more practice 交互模式输入如下 happy study stayhungrystayfoolish print happy study stayhungrystayfoolish如果给变量取非法的名称 解释器显示语法错误 请看下面的示例 2wrongtest justfortest SyntaxError invalidsyntax该示例提示语法错误 错误信息为无效的语法 原因是它不是以字母开头 xiaoming me surprised SyntaxError can tassigntooperator该示例提示语法错误 错误信息为不能做指定操作 原因为它包含了一个非法字符 from from SyntaxError invalidsyntaxfrom是Python的一个关键字 解释器通过关键字来识别程序的结构 并且它们不能用来作为变量名称 Python3中共有33个关键字 FalseNoneTrueandasassertbreakclasscontinuedefdelelifelseexceptfinallyforfromglobalifimportinnonlocallambdaisnotorpassraisereturntrywhilewithyield 2 4语句 语句是Python解释器可以运行的一个代码单元 也可以理解为可以执行的命令 我们目前已经使用过了两种语句 print打印语句和赋值语句 赋值语句有两个作用 一是建立新的变量 二是将值赋予变量 任何变量在使用时 都必须赋值 否则 被视为不存在的变量 advice boss wewanthavealunch type advice 这个语句中的advice的类型是字符串 str 类型的 一般的情况下 我们用状态图表示变量的状态 左边是变量的名称 右边是变量值 中间的箭头指向值 状态图显示了赋值语句的最终操作结果 advice boss wewanthavealunch money 99999999 spend 1 11111111如上面几条语句对应的状态图如下图所示 2 5表达式 表达式是值 变量和操作符的组合 单独一个值也被看作一个表达式 单独的变量也可以看作一个表达式 表达式和语句一般不容易区分 很多人会将两者混在一起 那么语句和表达式之间有什么区别 表达式是某事 而语句是做某事 说的通俗点就是告诉计算机做什么 比如3 3是9 而print 3 3 打印出来是9 那么区别在哪里 比如我们在交互模式下输入如下 3 39 print 3 3 9 在交互模式下 其结果都是一样的 但这只是因为解释器总是把所有表达式的值打印出来而已 其内部都使用了相同的函数对结果进行呈现 后面会有细致的介绍 一般情况下 Python不会这么做 毕竟3 3这样的表达式并不能做什么有趣的事情 而编写print 3 3 会有一个显示的 语句和表达式之间的区别在赋值时会表现的更加明显一些 因为语句不是表达式 所以没有值可供交互式解释器打印出来 比如在交互模式下输入如下 a 100 10 10100打印出9的结果 赋值语句输入完成后 下面立刻出现了新的提示输入符 而表达式输入完成后 下面立刻得到了结果 不过对于赋值语句 有些东西已经变了 变量a现在绑定了一个值100 这个是语句特性的一般定义 它们改变了事物 比如 赋值语句改变了变量 print语句改变了屏幕显示的内容 赋值语句可能是任何计算机程序设计语言中最重要的语句类型 尽管现在还难以说清它们的重要性 2 6运算符和操作对象 运算符和操作对象是计算机中比较常见的 任何的计算 都涉及到运算符和操作对象 本节将介绍Python中的运算符和操作对象 2 6 1什么是运算符和操作对象 运算符我知道 我们前面学习的加 减 乘 除 地板除 取余 等都是运算符 是一些特殊符号的集合 操作对象就是由运算符连接起来的对象 Python支持以下8种运算符 1 算术运算符 2 比较 关系 运算符 3 赋值运算符 4 逻辑运算符 5 位运算符 6 成员运算符 7 身份运算符 8 运算符优先级 2 6 2算术运算符 以下变量a为10 变量b为5 交互模式下输入 2 32 1024 1024 10244 0 2 64 1024 1024 102417179869184 02 32是2的32次方 这个就是32位操作系统最大支持的内存的字节数 除以第一个1024是转换为KB 1KB 1024B 除以第二个1024是转换为MB 1MB 1024KB 除以第三个1024是转换为GB 1GB 1024MB 这个结果也就意味着32位的操作系统最大只能支持4GB的内存 现在大家都趋向于选择64位的了 64位的系统能支持多大内存 自己可以算一下 2 6 3比较运算符 以下变量a为10 变量b为20 在一些地方 会看到用1代表True 0代表False 这种是正确也是合理的表示方式 这个大家更多会理解为开和关的意思 就像我们物理中所学习的电流的打开和关闭一样 后面会有更多的地方用到用1和0代表True False的示例 另外 在Python2中 有时可能会看到这个符号 其和 一样 也表示不等于 在Python3中已去除 若以后有看到运算符 那应当使用的是Python2 2 6 4赋值运算符 以下变量a为10 变量b为20 2 6 5位运算符 按位运算符是把数字看作二进制来进行计算的 Python中的按位运算法则如下 以下变量a为60 变量b为13 2 6 6逻辑运算符 Python语言支持逻辑运算符 以下变量a为10 变量b为20 a 10b 3list 1 2 3 4 print ainlist print binlist 2 6 7成员运算符 Python还支持成员运算符 测试实例中包含了一系列的成员 包括字符串 列表或元组 a 10b 3print aisb print aisnotb 2 6 8身份运算符 身份运算符用于比较两个对象的存储单元 2 6 9运算符优先级 以下表格列出了从最高到最低优先级的所有运算符 2 7字符串操作 字符串是Python中最常用的数据类型 我们可以使用引号 或 来创建字符串 字符串可以使用操作符 但其功能和数学中的不一样 它会进行拼接 concatenation 操作 即将前后两个字符首尾连接起来 如 string1 hello string2 world print string1 string2 helloworld 如果想让字符串之间有空格 可以建一个空字符变量 插在相应的字符串之间让它们隔开 或是在字符串中加入相应的空格 交互模式下输入如下 string1 hello string2 world space print string1 space string2 helloworld或者 string1 hello string2 world print string1 string2 helloworld 计算机是美国人发明的 因此 最早只有127个字母被编码到计算机里 也就是大小写英文字母 数字和一些符号 这个编码表被称为ASCII编码 比如大写字母A的编码是65 小写字母z的编码是122 在最新的Python3版本中 字符串是以UTF 8编码的 也就是说 Python3的字符串支持多语言 Python2中默认的编码格式是ASCII格式 在没修改编码格式时无法正确打印汉字 在读取中文时会报错 Python2使用中文的语法是在字符串前面加上前缀u 2 8注释 当程序变的更大更复杂时 读起来也更困难 程序的各部分之间紧密衔接 想依靠部分的代码来了解整个程序要做的 是困难的 在现实中 经常会遇到一段代码 很难弄清楚它在做什么 为什么那么做 因此 在程序中加入自然语言的笔记来解释程序在做什么 是个不错的主意 这种笔记称为注释 comments 注释必须以符号 开始 注释可以单独占一行 也可以放在语句行的末尾 交互模式下输入如下 打印1 1的结果 print 1 1 2 print 1 1 打印1 1的结果2 比如如下的代码中注释与代码重复 毫无用处 r 10 将10赋值给r而下面这段代码注释则包含了代码中隐藏的信息 如果不加注释 很难让人看懂这个是什么意思 虽然在实际中可能可以根据上下文判定 但需要浪费不必要的思考时间 r 10 半径 单位是米选择好的变量名 可以减少注释的需要 但长名字也会让复杂表达式更难阅读 所以这两者之间需要衡量舍取 2 9调试 错误是好的 错误能帮助我们长进 1 还记得数字类型转换吗 若用int 转换一个字符 会得到怎样的结果 尝试一下 交互模式下输入如下 int hello Traceback mostrecentcalllast File line1 inint hello ValueError invalidliteralforint withbase10 hello 这个是什么意思呢 开动你的大脑 思考一下 2 在变量和关键字中 若变量被命名为关键字会怎样 输入如下 class 你好 SyntaxError invalidsyntax 3 在算术运算符中 若被除数为0 结果会怎样 输入如下 9 0Traceback mostrecentcalllast File line1 in9 0ZeroDivisionError divisionbyzero跟我们学习过的数学中的一样 被除数不能为0 2 10问题解答 1 关键字那么多 我都记住吗 这个可以不用去刻意记忆 随着你逐步的学习 会碰到一些常用关键字 碰多了自然就熟悉了 对于一些不常用的 碰到了再回头看是否是属于关键字 总之 关键字可以在学习和使用中慢慢记忆 2 这么多运算符 都需要熟练使用吗 能熟练使用当然最好了 若不能都熟练使用 也要有所了解 知道怎么使用 在实际解决问题时能知道应该使用什么运算符 该怎么用 当然 也可以碰到具体问题时再详细研究 这也是一个不错的办法 3 字符串的操作就只有这么一些吗 字符串还有很多的操作 这里只是一些简单的入门操作 具体在后面的章节会有详细介绍 2 11温故知新 学以致用 1 回顾数据类型相关概念 整型 浮点型 数据类型转换 2 回顾变量和关键字相关概念 并尝试记住这些关键字 3 回顾运算符和操作对象 并通过不断调试熟悉各种运算符 4 回顾字符串的操作及注释 了解编码方式 尝试写注释 5 小萌和小智约定 明天小智送一颗糖给小萌 并从后天起 小智每天送比前一天多一倍的糖给小萌 到第16天 包含这天 小萌一共可以收到多少颗糖 6 小萌 运算符都学完了 我来考考你 看看你学的怎样 用4个2以及各种运算符 你能得到最大的数是多少 7 结合本章所学 并查阅相关资料 看看下面的代码的输出结果是怎样的 并尝试解释其结果 habit Python是一门很有用的编程语言 n我想学好它 print habit 你认为的结果是 len habit 你认为的结果是 练习题 1 输入a b c d4个整数 计算a b c d的结果2 计算一个12 5m 16 7m的矩形房间的面积和周长3 怎么得到9 2的小数结果4 python计算中7 7 7 7 可以有多少种写法 1 输入a b c d4个整数 计算a b c d的结果a input pleaseinputanimber b input pleaseinputanumber c input pleaseinputanumber d input pleaseinputanumber print a b c d 注意类型转换int 输出结果 pleaseinputanimber 3pleaseinputanumber 3pleaseinputanumber 3pleaseinputanumber 3 3 2 计算一个12 5m 16 7m的矩形房间的面积和周长a 12 5b 16 7s a bc a a b bprint 面积是 f 周长是 f s c 输出结果是面积是208 750000 周长是58 4000003 怎么得到9 2的小数结果 float 9 2 4 0 第一种 7 7 7 72401第二种 pow 7 4 2401第三种 7 424401第四种 eval s s s s 7 7 7 7 2401eval参数是一个字符串 可以把这个字符串当成表达式来求值 第三章列表和元组 本章将引入一个新的概念 数据结构 数据结构是通过某种方式 例如对元素进行编号 组织在一起的数据元素的集合 这些元素可以是数字或者字符 在Python中 最基本的数据结构是序列 sequence Python包含6种内建的序列 即列表 元组 字符串 Unicode字符串 buffer对象和xrange对象 本章重点讨论最常用的两种 列表和元组 3 1通用序列操作 在讲解列表和元组之前 本节先介绍Python中序列的通用操作 这些操作在列表和元组中都会用到 Python中所有序列都可以进行某些特定的操作 这些操作包括 索引 indexing 分片 sliceing 序列相加 adding 乘法 multiplying 成员资格 长度 最小值和最大值 本节首先讲解对所有序列 包括元组和列表 都通用的操作 3 1 1索引 序列是Python中最基本的数据结构 序列中的每个元素都分配一个数字 代表它在序列中的位置 或索引 第一个索引是0 第二个索引是1 依此类推 序列中所有的元素都是有编号的 从0开始递增 可以通过编号分别对序列的元素进行访问 通过编号来取元素 greeting Hello 定义变量greeting 并赋值Hello greeting 0 根据编号取元素 使用格式为在中括号中输入所取元素编号值 H greeting 1 e greeting 2 l 序列中的元素是从0开始从左向右依自然顺序编号的 对元素的访问可以通过编号访问 获取元素的方式为变量后面跟上中括号 中括号中输入所取元素的编号值 这个格式需要记住 这里的所指的编号就是索引 可以通过索引获取元素 所有序列都可以通过这种方式进行索引 交互模式下输入如下 greeting 1 o greeting 2 l greeting 3 l greeting 4 e Python的序列也可以从右边开始索引 最右边的一个元素的索引为 1 向左开始递减 在Python中 从左向右索引称为正数索引 从右向左称为负数索引 使用负数索引时 Python会从最后1个元素开始计数 最后一个元素的位置编号是 1 最后一个元素的编号不是 0 这个跟数学中的概念一样的 0 0 0和0都是指向第一个元素 3 1 2分片 索引用来对单个元素进行访问 使用分片可以对一定范围内的元素进行访问 分片通过冒号相隔的两个索引来实现 在交互模式输入如下 number 1 2 3 4 5 6 7 8 9 10 number 1 3 取索引为第一和第二的元素 2 3 number 3 1 负数表明是从右开始计数 取得倒数第三和倒数第二的元素 8 9 分片操作既支持正数索引 也支持负数索引 并且分片操作对于提取序列的一部分是很方便的 分片操作的实现需要提供两个索引作为边界 第一个索引的元素是包含在分片内的 第二个则不包含在分片内 number 1 2 3 4 5 6 7 8 9 10 number 3 1 8 9 试试使用索引0作为最后一个元素的下一个元素 输入如下 number 3 0 3代表的是倒数第三个元素 0则代表的是第一个元素 倒数第3个比第一个晚出现 既比第一个排在更后面 所以得到的结果是空序列 number 0 从第一个元素开始输出 输出全部结果 1 2 3 4 5 6 7 8 9 10 number 0 最后一个元素为第一个 输出为空 number 3 取得前3个元素 1 2 3 若需要输出整个序列 可以将两个索引都设置为空 输入如下 number 取得整个数组 1 2 3 4 5 6 7 8 9 10 进行分片的时候 分片的开始和结束点都需要指定 不管是直接还是间接 用这种方式取连续的元素是没有问题的 但是若要取序列中不连续的元素就会比较麻烦了或是不能操作 比如要取序列number中的所有奇数 以一个序列展示出来 用前面的方法就不能实现了 对于这种情况 Python为我们提供了另外一个参数 步长 steplength 该参数通常是隐式设置的 在普通的分片中 步长是1 分片操作就是按照这个步长逐个遍历序列的元素 遍历后返回开始和结束点之间的所有元素 也可以理解为默认步长是1 既没有设置步长时 步长隐式设置值为1 输入如下 number 0 10 1 1 2 3 4 5 6 7 8 9 10 分片包含了另外一个数字 这种方式就是步长的显式设置 这个看起来和隐式设置步长没有什么区别 得到结果和之前也是一样的 但是若将步长设置为比1大的数 那结果会怎样呢 输入如下 number 0 10 2 1 3 5 7 9 由上面输出结果我们看到 对于number序列 设置步长为2时 得到的结果就是我们前面想要的奇数序列 步长设置为大于1的数 那会得到一个跳过某些元素的序列 例如我们上面设置的步长为2 得到的序列是从开始到结束每隔1个的元素序列 比如还可以如下进行使用 number 0 10 3 1 4 7 10 number 2 6 3 3 6 number 2 5 3 3 number 1 5 3 2 5 对于一个正数步长 Python会从序列的头部开始向右提取元素 直到最后一个元素 而对于负数步长 则是从序列的尾部开始向左提取元素 直到第一个元素 正数步长 必须让开始点小于结束点 而负数步长 则必须让开始点大于结束点 3 1 3序列相加 通过使用加号可以进行序列的连接操作 输入如下 1 2 3 4 5 6 1 2 3 4 5 6 a 1 2 b 5 6 a b 1 2 5 6 s hello w world s w hello world 数字序列可以和数字序列通过加号连接 连接后的结果还是数字序列 字符串序列也可以通过加号连接 连接后的结果还是字符串序列 那数字序列是否可以和字符序列相加呢 结果是怎样的 是数字序列还是字符串序列 输入如下 1 2 hello Traceback mostrecentcalllast File line1 in 1 2 hello TypeError canonlyconcatenatelist not str tolist type 1 2 取得 1 2 的类型为list type hello 取得hello的类型为字符串数字序列和字符串序列是不能通过加号连接的 只有类型相同的序列才能通过加号进行序列连接操作 不同类型的序列不能通过加号进行序列连接操作 3 1 4乘法 此处看到标题后不要误认为是数学中定义的乘法 用一个数字x乘以一个序列会生成新的序列 在新的序列中 原来的序列将被重复x次 这个就是序列中的乘法 交互模式下输入如下 hello 5 hellohellohellohellohello 7 10 7 7 7 7 7 7 7 7 7 7 序列被重复了对应的次数 而不是在数学中所理解的乘法 Python中序列的乘法有什么特殊之处呢 如果要创建一个重复的序列 我们就可以像上面的示例一样乘以一个想要得到的序列长度的数字 就可以快速得到需要的列表 这样非常方便的 空列表可以简单地通过两个中括号来表示 表示里面什么东西都没有 如果要初始化一个长度为x的序列 需要使每个编码位置上都是空值 此时需要一个值来代表空值 即里面没有任何元素 我们需要使用None None是Python的内建值 它的确切含义是 这里什么也没有 例如我们输入如下 sq None 5 初始化sq为含有5个None的序列 sq None None None None None 序列的乘法在做一些重复操作 空列表和None初始化上的操作还是挺方便的 3 1 5成员资格 in运算符用于检验某个条件是否为真 检查一个值是否在序列中 并返回检验结果 检验结果为真返回True 结果为假则返回False 下面我们尝试in的用法 交互模式输入如下 greeting hello world w ingreeting 检测w是否在字符串中True a ingreetingFalse使用in可以很好的检测出对于的字符或数字是否在对应的列表中 3 1 6长度 最小值和最大值 Python为我们提供了长度 最大值和最小值的内建函数 对应的内建函数分别为len max和min 交互模式输入如下 numbers 300 200 100 800 500 len numbers 5 max numbers 800 min numbers 100 max 5 3 10 7 10 min 7 0 3 1 1len函数返回序列中所包含的元素的数量 max函数和min函数则分别返回序列中最大和最小的元素 max和min函数的参数不是一个序列 而是以多个数字直接作为参数 3 2列表 在前面的例子中已经用了很多次列表 通过前面的示例我们看到列表的功用是比较强大的 本节将讨论列表不同于元组和字符串的地方 列表是可变的 mutable 即列表的内容是可改变的 列表有很多比较好用 比较独特的方法 3 2 1更新列表 我们在3 1节中所讲述的所有关于序列的操作 如索引 分片 相加 乘法等都适用于列表 本节将介绍一些序列中没有而列表中有的方法 这些方法的作用都是更新列表的 这些方法为 元素赋值 元素删除 分片赋值和列表方法 1 元素赋值通过编号来标记某个特定位置的元素 并对该位置元素重新赋值 如a 1 10 交互模式输入如下 a 1 2 3 2 1 a 1 10 a 1 10 3 2 1 a 3 10 a 1 10 3 10 1 可以对一个列表中的元素赋不同类型的值 输入如下 a 2 hello 对编号为2的元素赋值为一个字符串 a 1 10 hello 10 1 type a 1 别忘了查看类型的函数的使用 type a 2 需谨慎不能为一个不存在元素的位置赋值 2 增加元素由元素赋值的示例中看到 不能为一个不存在的位置赋值 这么说就是一旦初始化了一个列表 就不能再往这个列表中增加元素了 这样若需要往列表中增加元素 就非常麻烦了 需要对整个列表中的元素都复制一遍 再添加需要增加的元素 Python中有提供对应的方法来帮助我们做这件事情呢 看如下输入 tring 1 2 3 tring append 4 tring 1 2 3 4 可以使用append 方法来解决 append 方法是一个用于在列表末尾添加新的对象的方法 该方法的语法如下 list append obj 此语法中list代表的是列表 obj代表的是需要添加到list列表末尾的对象 3 删除元素上面学习了往列表中增加元素 那么是否可以往列表中删除元素呢 看如下示例 tring a b c d e len tring 5 deltring 1 print 删除第二个元素 tring 删除第二个元素 a c d e len tring 4可以使用del删除列表中的元素 4 分片赋值分片赋值是列表的一个强大的特性 先看如下示例 list 女排夺冠了 女 排 夺 冠 了 boil list 女排夺冠了 boil 女 排 夺 冠 了 show list hi boy show h i b o y show 3 list man show h i m a n 可以通过分片赋值直接对列表做变更 3 2 2嵌套列表 前面介绍的都是单层的列表 列表是否可以嵌套列表呢 我们做如下尝试 field a b c field a b c num 1 2 3 num 1 2 3 mix field num mix a b c 1 2 3 mix 0 a b c mix 1 1 2 3 在列表中可以嵌套列表 在列表中嵌套的列表取出后还是列表 3 2 3列表方法 方法是一个与某些对象有紧密联系的函数 对象可能是列表 数字 也可能是字符串或者其它类型的对象 方法的调用方式我们前面有一个示例 调用语法如下 对象 方法 参数 由上面的语法及前面append 方法的示例我们可知 方法的定义方式是将对象放到方法名之前 两者之间用一个点号隔开 方法后面的括号中可以根据需要带上参数 除语法上的一些不同 方法调用和函数调用很类似 列表中有count index sort等一些比较常用的方法 下面逐一进行介绍 1 append该方法前面已经介绍 其功能是在列表的末尾添加新的对象 使用方式为如前面讲解的 list append obj 2 countcount 方法用于统计某个元素在列表中出现的次数 count 方法的语法如下 list count obj 此语法中list代表的是列表 obj代表列表中统计的对象 该方法使用示例如下 field list hello world field h e l l o w o r l d print 列表field中 字母o的个数 field count o 统计列表中字符个数列表field中 字母o的个数 2 print 列表field中 字母l的个数 field count l 列表field中 字母l的个数 3 3 extendextend 方法用于在列表末尾一次性追加另一个序列中的多个值 用新列表扩展原来的列表 extend 方法的语法如下 list extend seq 此语法中list代表的是列表 seq代表元素列表 该方法使用示例如下 a hello world b python is funny a extend b a hello world python is funny append extend 1 append 向列表尾部追加一个新元素 列表只占一个索引位 在原有列表上增加 2 extend 向列表尾部追加一个列表 将列表中的每个元素都追加进来 在原有列表上增加 3 直接用 号看上去与用extend 一样的效果 但是实际上是生成了一个新的列表存这两个列表的和 只能用在两个列表相加上 4 效果与extend 一样 向原列表追加一个新元素 在原有列表上增加 4 indexindex 方法用于从列表中找出某个值第一个匹配项的索引位置 index 方法的语法如下 list index obj 此语法中list代表的是列表 obj代表查找的对象 field hello world python is funny print hello的索引位置为 field index hello hello的索引位置为 0 print python的索引位置为 field index python python的索引位置为 2 5 insertinsert 方法用于从列表中找出某个值第一个匹配项的索引位置 insert 方法的语法 list insert index obj 此语法中list代表的是列表 index代表对象obj需要插入的索引位置 obj代表要插入列表中的对象 该方法使用示例如下 num 1 2 3 print 插入之前的num num 插入之前的num 1 2 3 num insert 2
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!