Python基础教程(自学记录)

上传人:gbs****77 文档编号:9917903 上传时间:2020-04-08 格式:DOCX 页数:38 大小:252.88KB
返回 下载 相关 举报
Python基础教程(自学记录)_第1页
第1页 / 共38页
Python基础教程(自学记录)_第2页
第2页 / 共38页
Python基础教程(自学记录)_第3页
第3页 / 共38页
点击查看更多>>
资源描述
第一章 快速改造 基础知识 1 2 交互式解释器 在 IDLE 编辑器 在提示符后输入 help 然后按回车 也可以按下 F1 获得有关 IDLE 的帮助信息 1 4 数字和表达式 1 2 返回 0 整除除法 1 0 2 返回 0 5 用一个或者多个包含小数 点的数字参与计算 另外改变除法的执行方式 from future import division 可以实现整除 1 0 2 0 返回 0 0 取余数 幂运算 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 1 3 2 2 1 4 1 长整数 普通整数不能大于 2147483647 也不能小于 2147483648 若更大 的数 可以使用长整数 长整数结尾有个 L 理论上小写也可以 不过为了便于识别 尽可能用大写 1 4 2 十六进制和八进制 0XAF 返回 175 十六进制 010 返回 8 八进制 0 xAF 175 010 8 1 5 变量 包含字母 数字和下划线 首字母不能是数字开头 1 8 函数 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 9 模块 import 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 命令之后 就 可以直接使用函数 而不需要使用模块名最为前缀了 但是要注意 在不同模块引用 可能导致函数冲突 from math import sqrt sqrt 9 3 0 1 9 1 cmath 和复数 nan not a number 返回的结果 Cmath 即 complex math 复数模块 import cmath cmath sqrt 1 1j 返回的 1j 是个虚数 虚数以 j 结尾 这里没有使用 from cmath import sqrt 避免与 math 的 sqrt 冲突 1 10 3 注释符号 1 11 字符串 使用 可以进行转义 1 11 2 拼接字符串 Hello World Hello World 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 3 字符串表示 str 和 repr 两个均为函数 事实上 str 是一种类 型 Str 会将值转换为合理形式的字符串 另外一种是通过 repr 函数 创 建一个字符串 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 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 4 input 和 raw input 的比较 name input What s your name 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 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 5 长字符串 原始字符串和 unicode 1 长字符串 使用三引号 转义的反斜杠用于行尾 print hello world hello world print hello world hello 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 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 第二章 列表和元组 序列中的每个元素被分配一个序号 即元素的位置 也被称为 索引 第一个索引为 0 最后一个元素可以使用 1 标记 2 1 序列概览 Python 包含 6 中内建的序列 列表 元组 字符串 unicode 字 符串 buffer 对象和 xrange 对象 列表和元组的主要区别 列表可以修改 元组则不能 内建函数 返回元组 几乎所有情况下都可以使用列表代替元组 特殊情况之 一 使用元组作为字典的键 因为键不可以更改 所以不能用列表 列表的各个元素通过逗号进行分隔 写在方括号内 edward Edward Gumy 42 john John Smith 50 database edward john database Edward Gumy 42 John Smith 50 2 2 通用序列操作 包括 索引 分片 加 乘以及检查某个元素是否属于序列的成 员 除此之外还有计算长度 找出最大元素和最小元素的内建函数 迭代 依次对序列中的每个元素重复执行某些操作 2 2 1 索引 从 0 开始 最后一个元素可以使用 1 索引访问的单个元素 greeting Hello greeting 0 H greeting 1 o four raw input Year 3 Year 2005 four 5 2 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 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 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 2 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 hello 1 2 TypeError cannot concatenate str and list objects 2 2 4 乘法 数字 X 乘以一个序列会生成新的序列 原序列被重复 X 次 PH 3 PHPHPH 42 3 42 42 42 1 2 3 1 2 1 2 1 2 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 5 成员资格 in 检查一个值是否在一个序列中 条件为真返回 True 条件未假返回 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 1 in num True 2 2 6 长度 最小值和最大值 内建函数 len min 和 max num 1 8 3 len num 3 max num 8 min num 1 max 2 3 3 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 3 列表 Python 的 苦力 讨论列表不同于元组跟字符串的地方 2 3 1 list 函数 ls list Hello ls H e l l o join ls Hello 2 3 2 基本的列表操作 列表可以使用所有适用于序列的操作 而列表是可以修正的 本 节介绍可以改变列表的方法 元素赋值 元素删除 分片赋值以及 列表方法 请注意 并非所有的列表方法都真正地改变列表 1 改变列表 元素赋值 x 1 1 1 x 1 2 x 1 2 1 注意 不能为一个位置不存在的元素进行赋值 2 删除元素 del num 1 2 3 4 del num 2 num 1 2 4 除了删除列表中的元素 del 还能用于删除其他元素 可以用于 字典元素甚至其他变量的删除操作 3 分片赋值 nm list perl nm p e r l nm 2 list ar 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 nm 1 5 可以根据实际步长进行其他操作 测试的时候貌似要注意对应的位 置元素个数 num 1 2 3 4 5 num 1 4 2 8 10 num 1 8 3 10 5 2 3 3 列表方法 方法的调用方式 对象 方法 参数 1 append 用于在列表末尾追加新的对象 直接修改原来的列表 lst 1 2 3 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 2 count 方法 统计某个元素在列表中出现的次数 to be or not to be count to 2 x 1 2 1 1 2 1 1 2 x count 1 2 1 3 extend extend 方法可以在列表的末尾一次性追加另一个序列中的多个值 换句话说 可以用新列表扩展原有的列表 a 1 2 3 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 4 index 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 5 insert 用于将对象插入列表中 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 num 1 2 3 four 4 5 6 7 6 pop pop 方法会移出列表中的一个元素 默认是最后一个 并且返回 该元素的值 pop 方法是唯一一个既能修改列表又返回元素值 除了 None 的 列表方法 使用 pop 方法可以实现一种数据结构 栈 对于栈的两个操作 放入和移出 pop 跟 append 方法恰好相反 Python 没有入栈方 法 变通使用 append 方法 提示 对于先进先出的队列 可以使用 insert 0 来代替 append 方法 或者 也可以继续使用 append 方法 但必须使用 pop 0 来代 替 pop 更好的解决方案是使用 collection 模块中的 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 7 remove 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 注意 remove 是一个没有返回值的原位置改变方法 8 reverse reverse 方法将列表中的元素反方向存放 x 1 2 3 x reverse x 3 2 1 9 sort sort 方法用于在原位置对列表进行排序 在 原位置排序 意味着 要改变原来的列表 从而让其中的元素能按一定的顺序排列 而不 是返回一个已经排序的列表副本 x 4 6 2 1 7 9 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 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 另外一种获取已排序的列表副本的方法是 使用 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 可以用于任何序列 却总是返回一个列 表 P h n o t y 如果要把一些元素按照相反的顺序排列 可以先使用 sort 或者 sorted 然后再调用 reserse 方法 或者使用 reverse 参数 Sorted x reverse 这样可以 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 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 用来 知名列表是否进行反向排序 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 4 元组 不可变序列 用逗号分隔了一些值 即使仅有一个值 也必须有逗号 元组跟列表一样 也是一种序列 唯一的不同是元组不能修改 字 符串也是如此 创建元组的语法很简单 使用逗号分隔一些值 那么就自动创建了 元组 大部分时候 元组是通过圆括号括起来的 1 2 3 1 2 3 1 2 3 大部分时候是通过圆括号括起来的 1 2 3 空元组 42 不是元组 42 42 必须加个逗号 即时只有一个值 42 42 42 42 等同于 42 非元组 42 2 4 1 tuple 函数序列转元组 tuple 函数的功能跟 list 函数基本上一致 以一个序列作为参数并把 它转换为元组 如果参数就是元组 那么该参数就会被原样返回 tuple 1 2 3 1 2 3 tuple abc a b c tuple 1 2 3 1 2 3 tuple 1 2 3 注意参数 Traceback most recent call last File line 1 in tuple 1 2 3 TypeError tuple takes at most 1 argument 3 given 2 4 2 基本元组操作 元组的分片还是元组 就像列表的分片还是列表一样 除了创建元组和访问元组元素外 也没有太多其他操作 可以参考 序列来实现 x 1 2 3 x 1 2 x 0 3 1 2 3 x 1 1 c Traceback most recent call last File line 1 in x 1 1 c TypeError tuple object does not support item assignment x 1 2 3 序列可以修改 x 1 1 c x 1 c 2 3 本章函数 cmp x y len seq list seq max args min args reversed seq sorted seq tuple seq 第三章 使用字符串 本章将介绍如何使用字符串格式化其他的值 并简单了解一下用字 符串的分割 连接 搜索等方法能够做哪些 3 1 基本字符串操作 序列的基本操作 索引 分片 乘法 判断成员资格 求长度 取最小值和最大值 对字符串同样适用 但是字符串是不可以改变 的 分片赋值是不合法的 3 2 字符串格式化 精简版 字符串格式化使用字符串格式化操作符 即百分号 来实现 注意 也 可以做去摸运算符 在 的左侧放置一个字符串 格式化字符串 而右侧则放置希望被 格式化的值 第四章
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案


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

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


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