Python基础教程(自学记录)_第1页
Python基础教程(自学记录)_第2页
Python基础教程(自学记录)_第3页
Python基础教程(自学记录)_第4页
Python基础教程(自学记录)_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

精品文档 1欢迎下载 第一章第一章快速改造 基础知识快速改造 基础知识 1 21 2 交互式解释器交互式解释器 在 IDLE 编辑器 在提示符后输入 help 然后按回车 也可以按下 F1 获得有关 IDLE 的帮助信息 1 41 4 数字和表达式数字和表达式 1 2 返回 0 整除除法 1 0 2 返回 0 5 用一个或者多个包含小 数点的数字参与计算 另外改变除法的执行方式 from future import division 可以实现整除 1 0 2 0 返回 0 0 取余数 幂运算 精品文档 2欢迎下载 1 2 0 1 0 2 0 5 1 0 2 0 0 0 10 3 1 9 1 2 1 9 1 0 2 3 0 2 75 0 5 0 25 9 4 3 3 2 精品文档 3欢迎下载 1 3 2 2 1 4 11 4 1 长整数长整数 普通整数不能大于 2147483647 也不能小于 2147483648 若更大 的数 可以使用长整数 长整数结尾有个 L 理论上小写也可以 不过为了便于识别 尽可能用大写 1 4 2 十六进制和八进制 0XAF 返回 175 十六进制 010 返回 8 八进制 0 xAF 175 010 8 1 51 5 变量变量 包含字母 数字和下划线 首字母不能是数字开头 1 81 8 函数函数 精品文档 4欢迎下载 Pow 计算乘方 pow 2 3 2 3 均返回 8 pow 等标准函数称为 内建函数 Abs 10 求绝对值 返回 10 round 1 0 2 0 返回 1 0 把浮点 数四舍五入为最接近的整数值 pow 2 3 8 2 3 8 abs 10 10 round 1 0 2 0 1 0 round 8 06 2 8 06 round 8 06 1 8 1 1 91 9 模块模块 importimport 精品文档 5欢迎下载 import math math floor 8 8 向下取整 8 0 math ceil 8 8 向上取整 9 0 int math ceil 32 1 33 int 32 9 32 flo math floor flo 33 9 33 0 使用了 from 模块 import 函数 这种方式的 import 命令之后 就 可以直接使用函数 而不需要使用模块名最为前缀了 但是要注意 在不同模块引用 可能导致函数冲突 精品文档 6欢迎下载 from math import sqrt sqrt 9 3 0 1 9 11 9 1 cmathcmath 和复数和复数 nan not a number 返回的结果 Cmath 即 complex math 复数模块 import cmath cmath sqrt 1 1j 返回的 1j 是个虚数 虚数以 j 结尾 这里没有使用 from cmath import sqrt 避免与 math 的 sqrt 冲突 1 10 31 10 3 注释符号 注释符号 1 111 11 字符串 使用字符串 使用 可以进行转义 可以进行转义 1 11 21 11 2 拼接字符串拼接字符串 Hello World Hello World 精品文档 7欢迎下载 Hello World Hello World Hello World Hello World Hello 5 Traceback most recent call last File line 1 in Hello 5 TypeError cannot concatenate str and int objects 需要保证两边是一样的字符串 而有其他格式要报错的 1 11 31 11 3 字符串表示字符串表示 str 和 repr 两个均为函数 事实上 str 是一 种类型 Str 会将值转换为合理形式的字符串 另外一种是通过 repr 函数 创建一个字符串 精品文档 8欢迎下载 Repr x 也可以写作 x 实现 注意 是反引号 python3 0 中已 经不适用反引号了 print hello world hello world print repr hello world hello world print str hello world hello world print 1000L 1000 1000L 1000L print repr 1000L 1000L print str 1000L 1000 精品文档 9欢迎下载 tmp 42 print The number is tmp Traceback most recent call last File line 1 in print The number is tmp TypeError cannot concatenate str and int objects print The number is tmp The number is 42 print The number is str tmp The number is 42 print The number is repr tmp The number is 42 1 11 41 11 4 inputinput 和和 raw inputraw input 的比较的比较 name input What s your name 精品文档 10欢迎下载 What s your name Gumby Traceback most recent call last File line 1 in name input What s your name File line 1 in NameError name Gumby is not defined name input What s your name What s your name Gumby 后面输入的字符串增加了引号不报错 input Enter a number Enter a number 3 3 name input What s your name What s your name Gumby raw input What s your name What s your name Gumby 精品文档 11欢迎下载 Gumby raw input What s your name What s your name Gumby Gumby raw input Enter a number Enter a number 3 3 1 11 51 11 5 长字符串 原始字符串和长字符串 原始字符串和 unicodeunicode 1 长字符串 使用三引号 转义的反斜杠用于行尾 print hello world hello world print hello world hello 精品文档 12欢迎下载 world 1 2 3 4 10 2 原始字符串 对于反斜线并不会特殊对待 以 r 开头 注意字 符串尾部 print c nowhere c owhere print r c nowhere SyntaxError invalid syntax print c nowhere c owhere print r c nowhere 精品文档 13欢迎下载 c nowhere print r This is illegal SyntaxError EOL while scanning string literal print r This is illegal This is illegal print r This is illegal This is illegal 3 Unicode 在字符串前增加前缀 U print u hello world hello world 第二章第二章列表和元组列表和元组 精品文档 14欢迎下载 序列中的每个元素被分配一个序号 即元素的位置 也被称为 索引 第一个索引为 0 最后一个元素可以使用 1 标记 2 12 1 序列概览序列概览 Python 包含 6 中内建的序列 列表 元组 字符串 unicode 字 符串 buffer 对象和 xrange 对象 列表和元组的主要区别 列表可以修改 元组则不能 内建函数 返回元组 几乎所有情况下都可以使用列表代替元组 特殊情况之 一 使用元组作为字典的键 因为键不可以更改 所以不能用列表 列表的各个元素通过逗号进行分隔 写在方括号内 edward Edward Gumy 42 john John Smith 50 database edward john database Edward Gumy 42 John Smith 50 精品文档 15欢迎下载 2 22 2 通用序列操作通用序列操作 包括 索引 分片 加 乘以及检查某个元素是否属于序列的成 员 除此之外还有计算长度 找出最大元素和最小元素的内建函数 迭代 依次对序列中的每个元素重复执行某些操作 2 2 12 2 1 索引索引 从 0 开始 最后一个元素可以使用 1 索引访问的单个元素 greeting Hello greeting 0 H greeting 1 o four raw input Year 3 Year 2005 four 5 精品文档 16欢迎下载 2 2 22 2 2 分片分片 冒号 第一个元素包含在分片内 第二个元素不包含在分片内 是 分片之后剩余部分的第一个元素编号 num 1 2 3 4 5 6 7 8 9 10 num 3 6 4 5 6 num 0 1 1 num 7 10 索引 10 指向第 11 个元素 这个元素不存在 8 9 10 num 3 1 8 9 num 3 0 精品文档 17欢迎下载 num 3 8 9 10 num 7 8 9 10 num 3 1 2 3 num 复制整个序列 1 2 3 4 5 6 7 8 9 10 num 0 10 2 1 3 5 7 9 num 3 6 3 4 num 4 1 5 9 num 8 3 1 9 8 7 6 5 num 10 0 2 精品文档 18欢迎下载 10 8 6 4 2 num 0 10 2 num 2 10 8 6 4 2 num 5 0 2 6 4 2 num 5 2 10 8 num 5 2 6 4 2 精品文档 19欢迎下载 2 2 32 2 3 序列相加序列相加 两种相同类型的序列才能进行链接操作 1 2 3 4 5 6 1 2 3 4 5 6 hello world hello world hello 1 2 Traceback most recent call last File line 1 in 精品文档 20欢迎下载 hello 1 2 TypeError cannot concatenate str and list objects 2 2 42 2 4 乘法乘法 数字 X 乘以一个序列会生成新的序列 原序列被重复 X 次 PH 3 PHPHPH 42 3 42 42 42 1 2 3 1 2 1 2 1 2 精品文档 21欢迎下载 none 3 注意 N 需要大写 不然报错 None 是一个内建值 它的含义是 什么也没有 Traceback most recent call last File line 1 in none 3 NameError name none is not defined None 3 None None None 2 2 52 2 5 成员资格成员资格 inin 检查一个值是否在一个序列中 条件为真返回 True 条件未假返回 精品文档 22欢迎下载 False pw abc a in pw True x in pw False database John 42 Smith 36 john 42 in database 大小写 要注意 False John 42 in database True num 1 2 3 4 5 1 2 in num False 1 in num False 精品文档 23欢迎下载 1 in num True 2 2 62 2 6 长度 最小值和最大值长度 最小值和最大值 内建函数 len min 和 max num 1 8 3 len num 3 max num 8 min num 1 max 2 3 3 精品文档 24欢迎下载 max 跟 min 的参数并不一定是序列 而是以多个数字直接作为参数 exm h 12 e 2 max exm h exm 12 e 2 h max exm h max A 1 1 a z z 这个有点意思了 需要以后注意查查 是根据 ascii 进行提取的吗 2 32 3 列表 列表 PythonPython 的的 苦力苦力 精品文档 25欢迎下载 讨论列表不同于元组跟字符串的地方 2 3 12 3 1 listlist 函数函数 ls list Hello ls H e l l o join ls Hello 2 3 22 3 2 基本的列表操作基本的列表操作 列表可以使用所有适用于序列的操作 而列表是可以修正的 本 节介绍可以改变列表的方法 元素赋值 元素删除 分片赋值以及 列表方法 请注意 并非所有的列表方法都真正地改变列表 1 1 改变列表 元素赋值改变列表 元素赋值 精品文档 26欢迎下载 x 1 1 1 x 1 2 x 1 2 1 注意 不能为一个位置不存在的元素进行赋值 2 2 删除元素删除元素 deldel num 1 2 3 4 del num 2 num 1 2 4 除了删除列表中的元素 del 还能用于删除其他元素 可以用于 字典元素甚至其他变量的删除操作 3 3 分片赋值分片赋值 nm list perl nm p e r l nm 2 list ar 精品文档 27欢迎下载 nm p e a r nm 2 list ckly 可以改变成长度 nm p e c k l y nm 1 5 nm 1 1 2 3 4 插入行的元素 nm 1 2 3 4 5 nm 1 4 删除一段元素 与 del 的结果一样 nm 1 5 nm 1 2 3 4 5 del nm 1 4 精品文档 28欢迎下载 nm 1 5 可以根据实际步长进行其他操作 测试的时候貌似要注意对应的位 置元素个数 num 1 2 3 4 5 num 1 4 2 8 10 num 1 8 3 10 5 2 3 32 3 3 列表方法列表方法 方法的调用方式 对象 方法 参数 1 appendappend 用于在列表末尾追加新的对象 直接修改原来的列表 lst 1 2 3 精品文档 29欢迎下载 lst append 4 lst 1 2 3 4 lst 1 2 3 lst append 4 5 Traceback most recent call last File line 1 in lst append 4 5 TypeError append takes exactly one argument 2 given lst append 4 5 lst 1 2 3 4 5 精品文档 30欢迎下载 2 countcount 方法方法 统计某个元素在列表中出现的次数 to be or not to be count to 2 x 1 2 1 1 2 1 1 2 x count 1 2 1 3 3 extendextend extend 方法可以在列表的末尾一次性追加另一个序列中的多个值 换句话说 可以用新列表扩展原有的列表 a 1 2 3 精品文档 31欢迎下载 b 4 5 6 a extend b extend 扩展了原来的序列 即 a a 1 2 3 4 5 6 a b 链接操作 仅仅返回一个全新的列表 1 2 3 4 5 6 4 5 6 a 1 2 3 4 5 6 a len a b 使用分片来实现相同的结果 但是代码的可读 性不如 extend a 1 2 3 4 5 6 4 5 6 a a b 此链接方法的效率要比 extend 方法低 a 1 2 3 4 5 6 4 5 6 4 5 6 精品文档 32欢迎下载 4 4 indexindex index 方法用于从列表中找出某个值第一个匹配项的索引位置 phase We are hero phase index hero 2 phase index ero Traceback most recent call last File line 1 in phase index ero ValueError ero is not in list 精品文档 33欢迎下载 5 5 insertinsert 用于将对象插入列表中 num 1 2 3 4 5 6 7 num insert 3 four num 1 2 3 four 4 5 6 7 num 1 2 3 4 5 6 7 num 3 3 four 意外发现 num 1 2 3 f o u r 4 5 6 7 num 1 2 3 4 5 6 7 num 3 3 four 可以分片处理 依然是可读性不如 insert 精品文档 34欢迎下载 num 1 2 3 four 4 5 6 7 6 6 poppop pop 方法会移出列表中的一个元素 默认是最后一个 并且返回 该元素的值 pop 方法是唯一一个既能修改列表又返回元素值 除了 None 的 列表方法 使用 pop 方法可以实现一种数据结构 栈 对于栈的两个操作 放入和移出 pop 跟 append 方法恰好相反 Python 没有入栈方 法 变通使用 append 方法 提示 对于先进先出的队列 可以使用 insert 0 来代替 append 方法 或者 也可以继续使用 append 方法 但必须使用 pop 0 来代替 pop 更好的解决方案是使用 collection 模块中的 精品文档 35欢迎下载 deque 对象 x 1 2 3 x pop 3 x 1 2 x pop 0 1 x 2 x 1 2 3 x append x pop x 1 2 3 精品文档 36欢迎下载 7 7 removeremove remove 方法用于移出列表中某个值的第一个匹配项 x to be or not to be x remove be x to or not to be x remove bee Traceback most recent call last File line 1 in x remove bee ValueError list remove x x not in list 精品文档 37欢迎下载 注意 remove 是一个没有返回值的原位置改变方法 8 8 reversereverse reverse 方法将列表中的元素反方向存放 x 1 2 3 x reverse x 3 2 1 9 9 sortsort sort 方法用于在原位置对列表进行排序 在 原位置排序 意味着 要改变原来的列表 从而让其中的元素能按一定的顺序排列 而不 是返回一个已经排序的列表副本 x 4 6 2 1 7 9 精品文档 38欢迎下载 x sort x 1 2 4 6 7 9 x 4 6 2 1 7 9 y x sort 因为 sort 方法修改了 x 缺返回了空值 print y None x 1 2 4 6 7 9 x 4 6 2 1 7 9 y x 有效的复制整个列表的方法 y sort x 4 6 2 1 7 9 y 精品文档 39欢迎下载 1 2 4 6 7 9 x 4 6 2 1 7 9 y x 简单的赋值是没有用的 仅仅让 x 跟 y 都指向同一个列 表 y sort x 1 2 4 6 7 9 y 1 2 4 6 7 9 精品文档 40欢迎下载 另外一种获取已排序的列表副本的方法是 使用 sorted 函数 x 4 6 2 1 7 9 y sorted x y 1 2 4 6 7 9 x 4 6 2 1 7 9 sorted Python sorted 可以用于任何序列 却总是返回一 个列表 精品文档 41欢迎下载 P h n o t y 如果要把一些元素按照相反的顺序排列 可以先使用 sort 或者 sorted 然后再调用 reserse 方法 或者使用 reverse 参数 Sorted x reverse 这样可以 10 10 高级排序高级排序 如果希望元素按照特定的方式进行排序 可以通过 compare x y 的 方式自定义比较函数 Compare x y x y 返回正数 x cmp 42 32 1 cmp 99 100 1 cmp 10 10 0 num 5 2 9 7 num sort cmp num 精品文档 42欢迎下载 2 5 7 9 cmp 42 32 1 num 5 2 9 7 num sort cmp num 2 5 7 9 Sort 方法还有另外两个参数 key 和 reverse 如果要使用它们 那么就要通过名字来指定 参数 key 与 cmp 类似 必须提供一个 在排序过程中使用的函数 然而该函数并不是直接用来确定对象大 小 而是为每个元素创建一个键 然后所有元素来排序 那么如果 根据元素的长度进行排序 那么使用 len 作为键函数 x 3aaa 1a 4aaaa 0 x sort key len x 0 1a 3aaa 4aaaa 另外一个关键字参数 reverse 是简单的布尔值 True 或者 false 用来知名列表是否进行反向排序 精品文档 43欢迎下载 num 5 2 9 7 num sort num 2 5 7 9 num sort reverse True num 9 7 5 2 cmp key reverse 参数都可以用于 sorted 函数 在多数情况下 为 cmp 或 key 提供自定义函数是非常有用的 2 42 4 元组 不可变序列元组 不可变序列 用逗号分隔了一些值 即使仅有一个值 也必须有逗号 元组跟列表一样 也是一种序列 唯一的不同是元组不能修改 字 符串也是如此 创建元组的语法很简单 使用逗号分隔一些值 那么就自动创建了 元组 大部分时候 元组是通过圆括号括起来的 精品文档 44欢迎下载 1 2 3 1 2 3 1 2 3 大部分时候是通过圆括号括起来的 1 2 3 空元组 42 不是元组 42 42 必须加个逗号 即时只有一个值 42

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论