├── 00 Python100题目录.md ├── 01 怎么计算2的3次方.md ├── 02.怎么找出序列中的最大最小值?.md ├── 03 怎么将字符列表转为字符串.md ├── 04 怎么快速打印出包含所有 ASCII 字母(大写和小写)的字符串.md ├── 05怎么让字符串居中.md ├── 06 怎么在字符串中找到子串.md ├── 07 怎么让字符的首字母大写,其他字母小写.md ├── 08 怎么清空列表内容.md ├── 09 怎么计算指定的元素在列表中出现了多少次.md ├── 10 怎么在列表末尾加入其它元素.md ├── 100 进度条显示.md ├── 11 extend 和列表相加的区别?.md ├── 12 怎么查找列表中某个元素第一次出现的索引,从 0 开始.md ├── 13 怎么将一个对象插入到列表中.md ├── 14 怎么删除列表中元素.md ├── 15 怎么删除列表中指定元素.md ├── 16 怎么让列表按相反顺序排列?.md ├── 17 怎么表示只包含一个元素的元组.md ├── 18 怎么批量替换字符串中的元素.md ├── 19 怎么把字符串按照空格进行拆分.md ├── 20 怎么去除字符串首位的空格.md ├── 21 怎么给字典中不存在的key指定默认值.md ├── 22 怎么快速求 1 到 100 所有整数相加之和.md ├── 23 怎么查出模块包含哪些属性?.md ├── 24 怎么快速查看某个模块的帮助文档.md ├── 25 怎么快速启动浏览器打开指定网站.md ├── 26 Python里占位符怎么表示?.md ├── 27 怎么给函数编写文档?.md ├── 28 怎么定义私有方法?.md ├── 29 怎么判断一个类是否是另一个类的子类?.md ├── 30 怎么从一个非空序列中随机选择一个元素?.md ├── 31 怎么查出通过 from xx import xx导入的可以直接调用的方法?.md ├── 32 花括号{} 是集合还是字典?.md ├── 33 怎么求两个集合的并集?.md ├── 34 求两个集合的交集.md ├── 35 求两个集合中不重复的元素?.md ├── 36 求两个集合的差集?.md ├── 37 从一个序列中随机返回 n 个不同值的元素.md ├── 38 怎么生成两个数之间的随机实数.md ├── 39 怎么在等差数列中随机选择一个数.md ├── 40 怎么在文件里写入字符?.md ├── 41 怎么读取文件内容?.md ├── 42 怎么把程序打包成 exe 文件.md ├── 43 怎么获取路径下所有目录名称?.md ├── 44 Python 环境下怎么执行操作系统命令?.md ├── 45 怎么将当前时间转为字符串?.md ├── 46 怎么将秒数转为时间数组.md ├── 47 将时间元组转换为从新纪元后的秒数.md ├── 48 怎么将字符串转为时间元组.md ├── 49 怎么随机打乱列表的顺序.md ├── 50 怎么用for循环实现把字符串变成Unicode码位的列表.md ├── 51 怎么用列表推导式实现把字符串变成Unicode码位的列表.md ├── 52 怎么用列表推导式实现把字符串变成Unicode码位的列表.md ├── 53 可迭代对象拆包时,怎么赋值给占位符.md ├── 54 Python3 中,用什么方式接收不确定值或参数.md ├── 55 用切片将对象倒序.md ├── 56 怎么查看列表的 ID.md ├── 57 可变序列用*=(就地乘法)后,会创建新的序列吗?.md ├── 58 不可变序列用*=(就地乘法)后,会创建新的序列吗?.md ├── 59 关于+=的一道谜题.md ├── 60 sort() 和 sorted() 区别.md ├── 61 怎么通过 reverse 参数对序列进行降序排列.md ├── 62 numpy 怎么把一维数组变成二维数组.md ├── 63 快速插入元素到列表头部.md ├── 64 字典的创建方法.md ├── 65 通过一次查询给字典里不存的键赋予新值.md ├── 66 怎么统计字符串中元素出现的个数?.md ├── 67 列表去重.md ├── 68 求m中元素在n中出现的次数.md ├── 69 新建一个Latin-1字符集合,该集合里的每个字符的Unicode名字里都有“SIGN”这个单词,用集合推导式完成。.md ├── 70 查询系统默认编码方式.md ├── 71 修改编码方式.md ├── 72 用递归实现阶乘.md ├── 73 >>> all([])的输出结果是多少?.md ├── 74 >>> any([])的输出结果是多少?.md ├── 75 怎么判断对象是否可被调用?.md ├── 76 怎么列出对象的所有属性.md ├── 77 怎么得到类的实例没有而函数有的属性列表.md ├── 78 函数中,不想支持数量不定的定位参数,但是想支持仅限关键字参数,参数怎么定义.md ├── 79 怎么给函数参数和返回值注解.md ├── 80 不使用递归,怎么高效写出阶乘表达式.md ├── 81 Python什么时候执行装饰器?.md ├── 82 判断下面语句执行是否会报错?.md ├── 83 怎么强制把函数中局部变量变成全局变量.md ├── 84 闭包中,怎么对数字、字符串、元组等不可变元素更新.md ├── 85 Python2 怎么解决访问外部变量报错的问题.md ├── 86 测试代码运行的时间.md ├── 87 怎么优化递归算法,减少执行时间.md ├── 88 比较两个对象的值(对象中保存的数据)是否相等.md ├── 89 比较两个对象的内存地址 id 是否相等.md ├── 90 怎么格式化显示对象?.md ├── 91 复制一个序列并去掉后 n 个元素.md ├── 92 Python中怎么定义私有属性。.md ├── 93 怎么随机打乱一个列表里元素的顺序.md ├── 94 怎么判断某个对象或函数是一个已知的类型.md ├── 95 怎么打印出分数.md ├── 96 + 和 += 区别.md ├── 97 怎么列出一个目录下所有的文件名和子文件名.md ├── 98 怎么返回 1 到 10 的阶乘列表.md ├── 99 怎么快速拼接字符串和序列形成新的列表.md └── README.md /00 Python100题目录.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | - 怎么计算2的3次方 5 | - 怎么找出序列中的最大最小值? 6 | - 怎么将字符列表转为字符串 7 | - 怎么快速打印出包含所有 ASCII 字母(大写和小写)的字符串 8 | - 怎么让字符串居中 9 | - 怎么在字符串中找到子串 10 | - 怎么让字符的首字母大写,其他字母小写 11 | - 怎么清空列表内容 12 | - 怎么计算指定的元素在列表中出现了多少次? 13 | - 怎么在列表末尾加入其它元素 14 | - extend 和列表相加的区别? 15 | - 怎么查找列表中某个元素第一次出现的索引,从 0 开始 16 | - 怎么将一个对象插入到列表中 17 | - 怎么删除列表中元素 18 | - 怎么删除列表中指定元素 19 | - 怎么让列表按相反顺序排列? 20 | - 怎么表示只包含一个元素的元组 21 | - 怎么批量替换字符串中的元素 22 | - 怎么把字符串按照空格进行拆分 23 | - 怎么去除字符串首位的空格 24 | - 怎么给字典中不存在的key指定默认值 25 | - 怎么快速求 1 到 100 所有整数相加之和 26 | - 怎么查出模块包含哪些属性? 27 | - 怎么快速查看某个模块的帮助文档 28 | - 怎么快速启动浏览器打开指定网站 29 | - Python里占位符怎么表示? 30 | - 怎么给函数编写文档? 31 | - 怎么定义私有方法? 32 | - 怎么判断一个类是否是另一个类的子类? 33 | - 怎么从一个非空序列中随机选择一个元素? 34 | - 怎么查出通过 from xx import xx导入的可以直接调用的方法? 35 | - 花括号{} 是集合还是字典? 36 | - 怎么求两个集合的并集? 37 | - 求两个集合的交集 38 | - 求两个集合中不重复的元素? 39 | - 求两个集合的差集? 40 | - 从一个序列中随机返回 n 个不同值的元素 41 | - 怎么生成两个数之间的随机实数 42 | - 怎么在等差数列中随机选择一个数 43 | - 怎么在文件里写入字符? 44 | - 怎么读取文件内容? 45 | - 怎么把程序打包成 exe 文件 46 | - 怎么把程序打包成 Mac 系统可运行的 .app 文件 47 | - 怎么获取路径下所有目录名称? 48 | - Python 环境下怎么执行操作系统命令? 49 | - 怎么将当前时间转为字符串? 50 | - 怎么将秒数转为时间数组 51 | - 将时间元组转换为从新纪元后的秒数 52 | - 怎么将字符串转为时间元组 53 | - 怎么随机打乱列表的顺序 54 | - 怎么用for循环实现把字符串变成Unicode码位的列表 55 | - 怎么用列表推导式实现把字符串变成Unicode码位的列表 56 | - 打印出两个列表的笛卡尔积 57 | - 可迭代对象拆包时,怎么赋值给占位符 58 | - Python3 中,用什么方式接收不确定值或参数 59 | - 用切片将对象倒序 60 | - 怎么查看列表的 ID 61 | - 可变序列用*=(就地乘法)后,会创建新的序列吗? 62 | - 不可变序列用*=(就地乘法)后,会创建新的序列吗? 63 | - 关于+=的一道谜题 64 | - sort() 和 sorted() 区别 65 | - 怎么通过 reverse 参数对序列进行降序排列 66 | - numpy 怎么把一维数组变成二维数组 67 | - 快速插入元素到列表头部 68 | - 字典的创建方法 69 | - 通过一次查询给字典里不存的键赋予新值 70 | - 怎么统计字符串中元素出现的个数? 71 | - 列表去重 72 | - 求m中元素在n中出现的次数 73 | - 新建一个Latin-1字符集合,该集合里的每个字符的Unicode名字里都有“SIGN”这个单词,用集合推导式完成。 74 | - 查询系统默认编码方式 75 | - 修改编码方式 76 | - 用递归实现阶乘 77 | - all([])的输出结果是多少? 78 | - any([])的输出结果是多少? 79 | - 怎么判断对象是否可被调用? 80 | - 怎么列出对象的所有属性 81 | - 怎么得到类的实例没有而函数有的属性列表 82 | - 函数中,不想支持数量不定的定位参数,但是想支持仅限关键字参数,参数怎么定义 83 | - 怎么给函数参数和返回值注解 84 | - 不使用递归,怎么高效写出阶乘表达式 85 | - Python什么时候执行装饰器? 86 | - 判断下面语句执行是否会报错? 87 | - 怎么强制把函数中局部变量变成全局变量 88 | - 闭包中,怎么对数字、字符串、元组等不可变元素更新 89 | - Python2 怎么解决访问外部变量报错的问题 90 | - 测试代码运行的时间 91 | - 怎么优化递归算法,减少执行时间 92 | - 比较两个对象的值(对象中保存的数据)是否相等 93 | - 比较两个对象的内存地址 id 是否相等 94 | - 怎么格式化显示对象? 95 | - 复制一个序列并去掉后 n 个元素 96 | - Python中怎么定义私有属性。 97 | - 怎么随机打乱一个列表里元素的顺序 98 | - 怎么判断某个对象或函数是一个已知的类型 99 | - 怎么打印出分数 100 | - + 和 += 区别 101 | - 怎么列出一个目录下所有的文件名和子文件名 102 | - 怎么返回 1 到 10 的阶乘列表 103 | - 怎么快速拼接字符串和序列形成新的列表 104 | - 进度条显示 105 | 106 | -------------------------------------------------------------------------------- /01 怎么计算2的3次方.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | ## 怎么计算2的3次方 5 | 6 | 解法1:直接用运算符 ** 7 | 8 | 9 | ``` 10 | >>> 2**3 11 | 8 12 | ``` 13 | 解法2:用函数 pow 14 | 15 | 16 | ``` 17 | >>> pow(2,3) 18 | 8 19 | ``` -------------------------------------------------------------------------------- /02.怎么找出序列中的最大最小值?.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | ## 怎么找出序列中的最大最小值? 5 | 6 | 用内置函数 max 和 min 7 | 8 | 9 | ``` 10 | >>> l = (123, 888, 666) 11 | >>> max(l) 12 | 888 13 | >>> min(l) 14 | 123 15 | ``` -------------------------------------------------------------------------------- /03 怎么将字符列表转为字符串.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | 5 | ## 怎么将字符列表转为字符串 6 | 7 | 用 join 方法,合并序列的元素 8 | 9 | 10 | ``` 11 | >>> l = ['Python', 'Circle', 'is', 'ok'] 12 | >>> j = ' '.join(l) 13 | >>> j 14 | 'Python Circle is ok' 15 | ``` 16 | -------------------------------------------------------------------------------- /04 怎么快速打印出包含所有 ASCII 字母(大写和小写)的字符串.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | 5 | ## 怎么快速打印出包含所有 ASCII 字母(大写和小写)的字符串 6 | 7 | 用 string 模块的方法 8 | 9 | ``` 10 | >>> import string 11 | >>> string.ascii_letters 12 | 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ' 13 | ``` -------------------------------------------------------------------------------- /05怎么让字符串居中.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | ## 怎么让字符串居中 5 | 6 | 用字符串中的 center 方法,他会在两边自动填充字符(默认为空格),让字符串居中 7 | 8 | ``` 9 | >>> k = '更多精彩,请关注公众号「Python知识圈」' 10 | >>> k.center(50) 11 | ' 更多精彩,请关注公众号「Python知识圈」 ' 12 | >>> k.center(50, '*') 13 | '**************更多精彩,请关注公众号「Python知识圈」**************' 14 | ``` 15 | -------------------------------------------------------------------------------- /06 怎么在字符串中找到子串.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | ## 怎么在字符串中找到子串 5 | 6 | 用 find 方法,如果找到,就返回子串的第一个字符的索引,否则返回 -1 7 | 8 | ``` 9 | >>> ss = 'I Love Python' 10 | >>> ss.find('I') 11 | 0 12 | >>> ss.find('Python') 13 | 7 14 | ``` 15 | -------------------------------------------------------------------------------- /07 怎么让字符的首字母大写,其他字母小写.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | ## 怎么让字符的首字母大写,其他字母小写 5 | 6 | 解法1:用 title 方法。 7 | 8 | ``` 9 | >>> ss = 'i love python' 10 | >>> ss.title() 11 | 'I Love Python' 12 | ``` 13 | 14 | 解法2:用 string 模块里的 capwords 方法。 15 | 16 | 17 | ``` 18 | >>> import string 19 | >>> ss = 'i love python' 20 | >>> string.capwords(ss) 21 | 'I Love Python' 22 | ``` 23 | 24 | 25 | -------------------------------------------------------------------------------- /08 怎么清空列表内容.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | 5 | ## 怎么清空列表内容 6 | 7 | 解法1:用 clear 方法 8 | 9 | ``` 10 | >>> l = [1, 2, 3] 11 | >>> l.clear() 12 | >>> l 13 | [] 14 | ``` 15 | 16 | 解法2:用切片赋值的方法 17 | 18 | ``` 19 | >>> k = [1, 2, 3] 20 | >>> k[:] = [] 21 | >>> k 22 | [] 23 | ``` -------------------------------------------------------------------------------- /09 怎么计算指定的元素在列表中出现了多少次.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | ## 怎么计算指定的元素在列表中出现了多少次? 5 | 6 | 用 count 方法 7 | 8 | ``` 9 | >>> l = ['i', 'am', 'ok', 'ok'] 10 | >>> l.count('ok') 11 | 2 12 | ``` 13 | -------------------------------------------------------------------------------- /10 怎么在列表末尾加入其它元素.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | ## 怎么在列表末尾加入其它元素 5 | 6 | 用 extend 方法 7 | 8 | ``` 9 | >>> l = [1, 2, 3] 10 | >>> j = [4, 5, 6] 11 | >>> l.extend(j) 12 | >>> l 13 | [1, 2, 3, 4, 5, 6] 14 | ``` 15 | -------------------------------------------------------------------------------- /100 进度条显示.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | 5 | ## 进度条显示 6 | 7 | 用 tqdm 库 8 | 9 | 10 | ``` 11 | >>> import time 12 | >>> from tqdm import tqdm 13 | >>> for i in tqdm(range(1000)): 14 | time.sleep(.01) 15 | 16 | 17 | 18 | 0%| | 0/1000 [00:00>> l = [1, 2, 3] 10 | >>> j = [4, 5, 6] 11 | >>> l + j 12 | [1, 2, 3, 4, 5, 6] 13 | ``` 14 | extend 是直接在 l 列表里加入元素,相加会生成一个新元素,并不会对 l 做修改。 15 | -------------------------------------------------------------------------------- /12 怎么查找列表中某个元素第一次出现的索引,从 0 开始.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | ## 怎么查找列表中某个元素第一次出现的索引,从 0 开始 5 | 6 | 用 index 方法 7 | 8 | ``` 9 | >>> l = ['are', 'you', 'ok'] 10 | >>> l.index('you') 11 | 1 12 | ``` 13 | -------------------------------------------------------------------------------- /13 怎么将一个对象插入到列表中.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | ## 怎么将一个对象插入到列表中 5 | 6 | 解法1:用 insert 方法 7 | 8 | 9 | ``` 10 | >>> num = [1, 2, 4, 5] 11 | >>> num.insert(2, 'three') 12 | >>> num 13 | [1, 2, 'three', 4, 5] 14 | ``` 15 | 解法2:用切片的方式插入 16 | 17 | ``` 18 | >>> num = [1, 2, 4, 5] 19 | >>> num[2:2] = ['three'] 20 | >>> num 21 | [1, 2, 'three', 4, 5] 22 | ``` 23 | -------------------------------------------------------------------------------- /14 怎么删除列表中元素.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | ## 怎么删除列表中元素 5 | 6 | pop 方法可以删除指定元素,不指定位置的话默认删除最后一个元素 7 | 8 | ``` 9 | >>> num = [1, 2, 4, 5] 10 | >>> num.pop() 11 | 5 12 | >>> num 13 | [1, 2, 4] 14 | >>> num.pop(1) 15 | 2 16 | >>> num 17 | [1, 4] 18 | ``` 19 | -------------------------------------------------------------------------------- /15 怎么删除列表中指定元素.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | ## 怎么删除列表中指定元素 5 | 6 | 用 remove 方法 7 | 8 | ``` 9 | >>> num 10 | [1, 4] 11 | >>> num = [1, 2, 4, 5, 4] 12 | >>> num.remove(4) 13 | >>> num 14 | [1, 2, 5, 4] 15 | ``` 16 | remove 方法只会删除第一次出现的元素 17 | -------------------------------------------------------------------------------- /16 怎么让列表按相反顺序排列?.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | ## 怎么让列表按相反顺序排列? 5 | 6 | 解法1:用 reverse 方法 7 | 8 | ``` 9 | >>> num = [1, 22, 45, 99, 49] 10 | >>> num.reverse() 11 | >>> num 12 | [49, 99, 45, 22, 1] 13 | ``` 14 | 解法2:用切片的方式 15 | 16 | ``` 17 | >>> num = [1, 22, 45, 99, 49] 18 | >>> num[::-1] 19 | [49, 99, 45, 22, 1] 20 | ``` 21 | -------------------------------------------------------------------------------- /17 怎么表示只包含一个元素的元组.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | ## 怎么表示只包含一个元素的元组 5 | 6 | 1个元素的元组,必须在唯一的元素后加上逗号,否则不是元组 7 | 8 | ``` 9 | >>> t= (1) 10 | >>> type(t) 11 | 12 | >>> t= (1,) 13 | >>> type(t) 14 | 15 | ``` 16 | -------------------------------------------------------------------------------- /18 怎么批量替换字符串中的元素.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | 5 | ## 怎么批量替换字符串中的元素 6 | 7 | 用 replace 方法 8 | 9 | ``` 10 | >>> 'i love Python'.replace('o', 'ee') 11 | 'i leeve Pytheen' 12 | ``` -------------------------------------------------------------------------------- /19 怎么把字符串按照空格进行拆分.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | 5 | ## 怎么把字符串按照空格进行拆分 6 | 7 | 用 split 方法,括号为空的情况下默认以空格拆分 8 | 9 | 10 | ``` 11 | >>> 'i love Python'.split() 12 | ['i', 'love', 'Python'] 13 | ``` -------------------------------------------------------------------------------- /20 怎么去除字符串首位的空格.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | 5 | ## 怎么去除字符串首位的空格 6 | 7 | 用 strip 方法 8 | 9 | ``` 10 | >>> ' i love Python '.strip() 11 | 'i love Python' 12 | ``` -------------------------------------------------------------------------------- /21 怎么给字典中不存在的key指定默认值.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | 5 | ## 怎么给字典中不存在的key指定默认值 6 | 7 | 8 | ``` 9 | >>> d = {'age': 42, 'name': 'g'} 10 | >>> d.get('aa', 'N/A') 11 | 'N/A' 12 | ``` -------------------------------------------------------------------------------- /22 怎么快速求 1 到 100 所有整数相加之和.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | 5 | ## 怎么快速求 1 到 100 所有整数相加之和 6 | 7 | ``` 8 | >>> sum(range(1, 101)) 9 | 5050 10 | ``` -------------------------------------------------------------------------------- /23 怎么查出模块包含哪些属性?.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | ## 怎么查出模块包含哪些属性? 5 | 6 | 用 dir 方法 7 | 8 | ``` 9 | >>> dir(requests) 10 | ['ConnectTimeout', 'ConnectionError', 'DependencyWarning', 'FileModeWarning', 'HTTPError', 'NullHandler', 'PreparedRequest', 'ReadTimeout', 'Request', 'RequestException', 'RequestsDependencyWarning', 'Response', 'Session', 'Timeout', 'TooManyRedirects', 'URLRequired', '__author__', '__author_email__', '__build__', '__builtins__', '__cached__', '__cake__', '__copyright__', '__description__', '__doc__', '__file__', '__license__', '__loader__', '__name__', '__package__', '__path__', '__spec__', '__title__', '__url__', '__version__', '_check_cryptography', '_internal_utils', 'adapters', 'api', 'auth', 'certs', 'chardet', 'check_compatibility', 'codes', 'compat', 'cookies', 'delete', 'exceptions', 'get', 'head', 'hooks', 'logging', 'models', 'options', 'packages', 'patch', 'post', 'put', 'request', 'session', 'sessions', 'status_codes', 'structures', 'urllib3', 'utils', 'warnings'] 11 | ``` 12 | -------------------------------------------------------------------------------- /24 怎么快速查看某个模块的帮助文档.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | 5 | ## 怎么快速查看某个模块的帮助文档 6 | 7 | 8 | ``` 9 | >>> range.__doc__ 10 | 'range(stop) -> range object 11 | range(start, stop[, step]) -> range object 12 | 13 | Return an object that produces a sequence of integers from start (inclusive) 14 | to stop (exclusive) by step. range(i, j) produces i, i+1, i+2, ..., j-1. 15 | start defaults to 0, and stop is omitted! range(4) produces 0, 1, 2, 3. 16 | These are exactly the valid indices for a list of 4 elements. 17 | When step is given, it specifies the increment (or decrement). 18 | 19 | Process finished with exit code 0 20 | ' 21 | ``` -------------------------------------------------------------------------------- /25 怎么快速启动浏览器打开指定网站.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | 5 | ## 怎么快速启动浏览器打开指定网站 6 | 7 | 使用 webbrowser 库 8 | ``` 9 | import webbrowser 10 | webbrowser.open('http://www.python.org') 11 | 12 | ``` -------------------------------------------------------------------------------- /26 Python里占位符怎么表示?.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | 5 | ## Python里占位符怎么表示? 6 | 7 | 用 pass 占位,当你还没想好代码块的逻辑时,你需要运行代码调试其他功能,需要加占位符,不然会报错 8 | 9 | 10 | ``` 11 | if name == '小明': 12 | print('听我的') 13 | elif name == '小花': 14 | pass 15 | ``` -------------------------------------------------------------------------------- /27 怎么给函数编写文档?.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | ## 怎么给函数编写文档? 5 | 6 | 在 def 语句后面把注释文档放在引号(单引、双引、三引都可以)里面就行,这个文档可以通过 function.__doc__访问。 7 | 8 | ``` 9 | >>> def square(x): 10 | """返回平方值""" 11 | return x*x 12 | 13 | >>> square.__doc__ 14 | '返回平方值' 15 | ``` -------------------------------------------------------------------------------- /28 怎么定义私有方法?.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | ## 怎么定义私有方法? 5 | 6 | 在方式名称前加两个下斜杠 __ 7 | 8 | 9 | ``` 10 | >>> class Person: 11 | def __name(self): 12 | print('私有方法') 13 | ``` 14 | 15 | 用 from module import * 导入时不会导入私有方法。 16 | -------------------------------------------------------------------------------- /29 怎么判断一个类是否是另一个类的子类?.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | ## 怎么判断一个类是否是另一个类的子类? 5 | 6 | 用 issubclass 方法,2 个参数,如果第一个参数是第二个参数的子类,返回 True,否则返回 False 7 | 8 | ``` 9 | >>> class A: 10 | pass 11 | 12 | >>> class B(A): 13 | pass 14 | 15 | >>> issubclass(B, A) 16 | True 17 | ``` -------------------------------------------------------------------------------- /30 怎么从一个非空序列中随机选择一个元素?.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | 5 | ## 怎么从一个非空序列中随机选择一个元素? 6 | 7 | 用 random 中的 choice 方法 8 | ``` 9 | >>> import random 10 | >>> random.choice([1, 'two', 3, '肆']) 11 | 3 12 | ``` -------------------------------------------------------------------------------- /31 怎么查出通过 from xx import xx导入的可以直接调用的方法?.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | 5 | ## 怎么查出通过 from xx import xx导入的可以直接调用的方法? 6 | 7 | 用 __all__ 方法,这个方法查出的是模块下不带_的所有方法,可以直接调用。 8 | 9 | ``` 10 | >>> import random 11 | >>> random.__all__ 12 | ['Random', 'seed', 'random', 'uniform', 'randint', 'choice', 'sample', 'randrange', 'shuffle', 'normalvariate', 'lognormvariate', 'expovariate', 'vonmisesvariate', 'gammavariate', 'triangular', 'gauss', 'betavariate', 'paretovariate', 'weibullvariate', 'getstate', 'setstate', 'getrandbits', 'choices', 'SystemRandom'] 13 | 14 | ``` -------------------------------------------------------------------------------- /32 花括号{} 是集合还是字典?.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | ## 花括号{} 是集合还是字典? 5 | 6 | 字典 7 | 8 | 9 | ``` 10 | >>> type({}) 11 | 12 | ``` -------------------------------------------------------------------------------- /33 怎么求两个集合的并集?.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | ## 怎么求两个集合的并集? 5 | 6 | 解法1:用 union 方法 7 | 8 | 9 | ``` 10 | >>> a = {6, 7, 8} 11 | >>> b = {7, 8, 9} 12 | >>> a.union(b) 13 | {6, 7, 8, 9} 14 | ``` 15 | 16 | 解法2:使用按位或运算符 | 17 | 18 | ``` 19 | >>> a = {6, 7, 8} 20 | >>> b = {7, 8, 9} 21 | >>> a | b 22 | {6, 7, 8, 9} 23 | ``` -------------------------------------------------------------------------------- /34 求两个集合的交集.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | 5 | ## 求两个集合的交集 6 | 7 | 解法1: 8 | 9 | 10 | ``` 11 | >>> a = {6, 7, 8} 12 | >>> b = {7, 8, 9} 13 | >>> a&b 14 | {8, 7} 15 | ``` 16 | 解法2:用 intersection 方法 17 | 18 | 19 | ``` 20 | >>> a = {6, 7, 8} 21 | >>> b = {7, 8, 9} 22 | >>> a.intersection(b) 23 | {8, 7} 24 | ``` -------------------------------------------------------------------------------- /35 求两个集合中不重复的元素?.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | 5 | ## 求两个集合中不重复的元素? 6 | 7 | 差集指的是两个集合交集外的部分 8 | 9 | 解法1: 使用运算符 ^ 10 | 11 | 12 | ``` 13 | >>> a = {6, 7, 8} 14 | >>> b = {7, 8, 9} 15 | >>> a ^ b 16 | {9, 6} 17 | ``` 18 | 19 | 解法2:使用 symmetric_difference 方法 20 | 21 | 22 | ``` 23 | >>> a = {6, 7, 8} 24 | >>> b = {7, 8, 9} 25 | >>> a.symmetric_difference(b) 26 | {9, 6} 27 | ``` -------------------------------------------------------------------------------- /36 求两个集合的差集?.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | 5 | ## 求两个集合的差集? 6 | 7 | 解法1:用运算符 - 8 | 9 | 10 | ``` 11 | >>> a = {6, 7, 8} 12 | >>> b = {7, 8, 9} 13 | >>> a-b 14 | {6} 15 | ``` 16 | 17 | 解法2:用 difference 方法 18 | 19 | ``` 20 | >>> a = {6, 7, 8} 21 | >>> b = {7, 8, 9} 22 | >>> a.difference(b) 23 | {6} 24 | ``` -------------------------------------------------------------------------------- /37 从一个序列中随机返回 n 个不同值的元素.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | 5 | ## 从一个序列中随机返回 n 个不同值的元素 6 | 7 | 用 random 中的 sample 方法 8 | 9 | ``` 10 | >>> import random 11 | >>> t = (2020, 7, 3, 21, 48, 56, 4, 21, 0) 12 | >>> random.sample(t, 2) 13 | [56, 0] 14 | ``` -------------------------------------------------------------------------------- /38 怎么生成两个数之间的随机实数.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | ## 怎么生成两个数之间的随机实数 5 | 6 | 用 random 中的 uniform 方法 7 | 8 | 9 | ``` 10 | >>> random.uniform(10, 20) 11 | 11.717127223103947 12 | ``` -------------------------------------------------------------------------------- /39 怎么在等差数列中随机选择一个数.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | 5 | ## 怎么在等差数列中随机选择一个数 6 | 7 | 用 random 中的 randrange 方法 8 | 9 | ``` 10 | >>> random.randrange(0, 100, 10) 11 | 70 12 | ``` -------------------------------------------------------------------------------- /40 怎么在文件里写入字符?.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | 5 | ## 怎么在文件里写入字符? 6 | 7 | 用 open 函数,模式用 w 8 | 9 | 10 | ``` 11 | >>> with open('bruce.txt', 'w') as f: 12 | f.write('hello world') 13 | 14 | 15 | 11 16 | ``` -------------------------------------------------------------------------------- /41 怎么读取文件内容?.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | 5 | ## 怎么读取文件内容? 6 | 7 | 用 open 函数,模式用 r(默认情况下是r) 8 | 9 | ``` 10 | >>> with open('bruce.txt', 'r') as f: 11 | f.read() 12 | 13 | 14 | 'hello world' 15 | ``` -------------------------------------------------------------------------------- /42 怎么把程序打包成 exe 文件.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | 5 | ## 怎么把程序打包成 exe 文件 6 | 7 | 用 Setuptools 里的 py2exe 库 8 | 9 | ## 怎么把程序打包成 Mac 系统可运行的 .app 文件 10 | 11 | - 安装py2app 12 | 13 | ``` 14 | pip3 install py2app 15 | ``` 16 | 17 | - cd 到Demo.py文件所在的目录 18 | 19 | - py2applet --make-setup Demo.py 20 | 完成显示生成setup.py -------------------------------------------------------------------------------- /43 怎么获取路径下所有目录名称?.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | 5 | ## 怎么获取路径下所有目录名称? 6 | 7 | 用 sys 下的 path 方法,返回的是目录名称的字符串列表 8 | 9 | ``` 10 | >>> sys.path 11 | ['', '/Users/brucepk/Documents', '/usr/local/Cellar/python/3.7.3/Frameworks/Python.framework/Versions/3.7/lib/python37.zip', '/usr/local/Cellar/python/3.7.3/Frameworks/Python.framework/Versions/3.7/lib/python3.7', '/usr/local/Cellar/python/3.7.3/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload', '/usr/local/lib/python3.7/site-packages'] 12 | ``` 13 | -------------------------------------------------------------------------------- /44 Python 环境下怎么执行操作系统命令?.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | 5 | ## Python 环境下怎么执行操作系统命令? 6 | 7 | 用 os 模块下的 system 方法 8 | 9 | ``` 10 | >>> os.system('cd /Users/brucepk/Desktop && mkdir aaa.txt') 11 | 256 12 | ``` -------------------------------------------------------------------------------- /45 怎么将当前时间转为字符串?.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | 5 | ## 怎么将当前时间转为字符串? 6 | 7 | 用 time 模块里的 asctime 方法 8 | 9 | 10 | ``` 11 | >>> import time 12 | >>> time.asctime() 13 | 'Sat Jul 4 17:36:00 2020' 14 | ``` -------------------------------------------------------------------------------- /46 怎么将秒数转为时间数组.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | 5 | ## 怎么将秒数转为时间数组 6 | 7 | 用 time 模块里的 localtime 方法 8 | 9 | 10 | ``` 11 | >>> import time 12 | >>> time.localtime(1888888888) 13 | time.struct_time(tm_year=2029, tm_mon=11, tm_mday=9, tm_hour=11, tm_min=21, tm_sec=28, tm_wday=4, tm_yday=313, tm_isdst=0) 14 | ``` -------------------------------------------------------------------------------- /47 将时间元组转换为从新纪元后的秒数.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | 5 | ## 将时间元组转换为从新纪元后的秒数 6 | 7 | 用 time 模块里的 mktime 方法 8 | 9 | ``` 10 | >>> time.mktime((2020, 7, 3, 21, 48, 56, 4, 21, 0)) 11 | 1593784136.0 12 | ``` -------------------------------------------------------------------------------- /48 怎么将字符串转为时间元组.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | 5 | ## 怎么将字符串转为时间元组 6 | 7 | 用 time 模块里的 strptime 方法 8 | 9 | ``` 10 | >>> import time 11 | >>> time.strptime('Sun Jul 5 08:29:51 2020') 12 | time.struct_time(tm_year=2020, tm_mon=7, tm_mday=5, tm_hour=8, tm_min=29, tm_sec=51, tm_wday=6, tm_yday=187, tm_isdst=-1) 13 | ``` -------------------------------------------------------------------------------- /49 怎么随机打乱列表的顺序.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | 5 | ## 怎么随机打乱列表的顺序 6 | 7 | 用 random 模块里的 shuffle 方法 8 | ``` 9 | >>> import random 10 | >>> t = list(range(20)) 11 | >>> t 12 | [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19] 13 | >>> random.shuffle(t) 14 | >>> t 15 | [16, 3, 13, 7, 6, 12, 17, 4, 15, 2, 5, 8, 18, 10, 9, 19, 14, 0, 1, 11] 16 | ``` -------------------------------------------------------------------------------- /50 怎么用for循环实现把字符串变成Unicode码位的列表.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | ## 怎么用for循环实现把字符串变成Unicode码位的列表 5 | 6 | 7 | ``` 8 | >>> st = '!@#$%^&*' 9 | >>> codes = [] 10 | >>> for s in st: 11 | codes.append(ord(s)) 12 | 13 | >>> codes 14 | [33, 64, 35, 36, 37, 94, 38, 42] 15 | ``` -------------------------------------------------------------------------------- /51 怎么用列表推导式实现把字符串变成Unicode码位的列表.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | 5 | ## 怎么用列表推导式实现把字符串变成Unicode码位的列表 6 | 7 | 8 | ``` 9 | >>> st = '!@#$%^&*' 10 | >>> codes = [ord(s) for s in st] 11 | >>> codes 12 | [33, 64, 35, 36, 37, 94, 38, 42] 13 | ``` 14 | 15 | 很明显,用列表推导式实现比 for 循环加 append 更高效简洁,可读性更好。 -------------------------------------------------------------------------------- /52 怎么用列表推导式实现把字符串变成Unicode码位的列表.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | 5 | ## 打印出两个列表的笛卡尔积 6 | 7 | 解法1:使用生成器表达式产生笛卡尔积,可以帮忙省掉运行 for 循环的开销。 8 | 9 | ``` 10 | >>> colors = ['blacks', 'white'] 11 | >>> sizes = ['S', 'M', 'L'] 12 | >>> for tshirt in ('%s %s'%(c, s) for c in colors for s in sizes): 13 | print(tshirt) 14 | 15 | blacks S 16 | blacks M 17 | blacks L 18 | white S 19 | white M 20 | white L 21 | ``` 22 | 解法2:使用 itertools 里的 product 生成器函数。 23 | 24 | 25 | ``` 26 | >>> import itertools 27 | >>> list(itertools.product(['blacks', 'white'], ['S', 'M', 'L'])) 28 | [('blacks', 'S'), ('blacks', 'M'), ('blacks', 'L'), ('white', 'S'), ('white', 'M'), ('white', 'L')] 29 | ``` -------------------------------------------------------------------------------- /53 可迭代对象拆包时,怎么赋值给占位符.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | 5 | ## 可迭代对象拆包时,怎么赋值给占位符 6 | 7 | 我们经常用 for 循环提取元组里的元素,对于我们不想接收的元素,我们可以用占位符 _ 接收。 8 | 9 | 10 | ``` 11 | >>> player_infos = [('Kobe', '24'), ('James', '23'), ('Iverson', '3')] 12 | >>> for player_names, _ in player_infos: 13 | print(player_names) 14 | 15 | Kobe 16 | James 17 | Iverson 18 | ``` -------------------------------------------------------------------------------- /54 Python3 中,用什么方式接收不确定值或参数.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | 5 | ## Python3 中,用什么方式接收不确定值或参数 6 | 7 | 用 *args 的方式,*args 位置可以在任意位置。 8 | 9 | ``` 10 | >>> a, b, *c = range(8) 11 | >>> a, b, c 12 | (0, 1, [2, 3, 4, 5, 6, 7]) 13 | ``` 14 | 15 | 16 | ``` 17 | >>> a, *b, c, d = range(5) 18 | >>> a,b,c,d 19 | (0, [1, 2], 3, 4) 20 | ``` 21 | 22 | 23 | 24 | ``` 25 | >>> *a, b, c, d = range(5) 26 | >>> a,b,c,d 27 | ([0, 1], 2, 3, 4) 28 | ``` -------------------------------------------------------------------------------- /55 用切片将对象倒序.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | 5 | ## 用切片将对象倒序 6 | 7 | 8 | ``` 9 | >>> s = 'basketball' 10 | >>> s[::-1] 11 | 'llabteksab' 12 | ``` 13 | -------------------------------------------------------------------------------- /56 怎么查看列表的 ID.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | 5 | ## 怎么查看列表的 ID 6 | 7 | 8 | ``` 9 | >>> l = [1, 2, 3] 10 | >>> id(l) 11 | 4507638664 12 | ``` 13 | 14 | -------------------------------------------------------------------------------- /57 可变序列用*=(就地乘法)后,会创建新的序列吗?.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | 5 | ## 可变序列用*=(就地乘法)后,会创建新的序列吗? 6 | 7 | 不会,可变序列用*=(就地乘法)后,不会创建新的序列,新元素追加到老元素上,以列表为例,我们看下新老列表的id,相等的。 8 | 9 | 10 | ``` 11 | >>> l = [1, 2, 3] 12 | >>> id(l) 13 | 4507939272 14 | >>> l *= 2 15 | >>> l 16 | [1, 2, 3, 1, 2, 3] 17 | >>> id(l) 18 | 4507939272 19 | ``` -------------------------------------------------------------------------------- /58 不可变序列用*=(就地乘法)后,会创建新的序列吗?.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | 5 | ## 不可变序列用*=(就地乘法)后,会创建新的序列吗? 6 | 7 | 会,不可变序列用*=(就地乘法)后,会创建新的序列,以元组为例,我们看下新老元组的id,是不同的。 8 | 9 | 10 | ``` 11 | >>> t = (1, 2, 3) 12 | >>> id(t) 13 | 4507902240 14 | >>> t *= 2 15 | >>> t 16 | (1, 2, 3, 1, 2, 3) 17 | >>> id(t) 18 | 4507632648 19 | ``` 20 | 21 | 所以,对不可变序列进行重复拼接操作的话,效率会很低,因为每次都有一个新对象,而解释器需要把原来对象中的元素先复制到新的对象里,然后再追加新的元素。 22 | 23 | -------------------------------------------------------------------------------- /59 关于+=的一道谜题.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | 5 | ## 关于+=的一道谜题 6 | 7 | 8 | ``` 9 | t = (1, 2, [30, 40]) 10 | t[2] += [50, 60] 11 | ``` 12 | 13 | 到底会发生下面4种情况中的哪一种? 14 | 15 | a. t变成(1, 2, [30, 40, 50, 60])。 16 | 17 | b.因为tuple不支持对它的元素赋值,所以会抛出TypeError异常。 18 | 19 | c.以上两个都不是。 20 | 21 | d. a和b都是对的。 22 | 23 | 答案是d,请看下运行结果。 24 | 25 | 26 | ``` 27 | >>> t = (1, 2, [30, 40]) 28 | >>> t[2] += [50, 60] 29 | Traceback (most recent call last): 30 | File "", line 1, in 31 | t[2] += [50, 60] 32 | TypeError: 'tuple' object does not support item assignment 33 | >>> t 34 | (1, 2, [30, 40, 50, 60]) 35 | ``` 36 | 37 | 38 | -------------------------------------------------------------------------------- /60 sort() 和 sorted() 区别.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | 5 | ## sort() 和 sorted() 区别 6 | 7 | 8 | ``` 9 | l = [1, 9, 5, 8] 10 | j = l.sort() 11 | k = sorted(l) 12 | ``` 13 | 14 | 通过 Python Tutor 工具我们可以看到,sort() 会就地在原序列上排序,sorted() 新建了一个新的序列。 15 | 16 | list.sort方法会就地排序列表,也就是说不会把原列表复制一份。这也是这个方法的返回值是None的原因,提醒你本方法不会新建一个列表。在这种情况下返回None其实是Python的一个惯例:如果一个函数或者方法对对象进行的是就地改动,那它就应该返回None,好让调用者知道传入的参数发生了变动,而且并未产生新的对象。 -------------------------------------------------------------------------------- /61 怎么通过 reverse 参数对序列进行降序排列.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | 5 | ## 怎么通过 reverse 参数对序列进行降序排列 6 | reverse 参数一般放在 sorted() 方法里面,reverse 默认值为 False,序列默认升序排列,降序排列的话需要将 reverse 值设置为 True。 7 | 8 | 9 | ``` 10 | >>> l = [1, 9, 5, 8] 11 | >>> j = sorted(l, reverse=True) 12 | >>> j 13 | [9, 8, 5, 1] 14 | ``` 15 | 16 | -------------------------------------------------------------------------------- /62 numpy 怎么把一维数组变成二维数组.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | 5 | ## numpy 怎么把一维数组变成二维数组 6 | 7 | 8 | ``` 9 | >>> a = numpy.arange(12) 10 | >>> a 11 | array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]) 12 | >>> a.shape = 3, 4 13 | >>> a 14 | array([[ 0, 1, 2, 3], 15 | [ 4, 5, 6, 7], 16 | [ 8, 9, 10, 11]]) 17 | ``` 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /63 快速插入元素到列表头部.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | 5 | ## 快速插入元素到列表头部 6 | 7 | 可以通过切片指定位置插入,头部就是[0:0] 8 | 9 | ``` 10 | >>> l = [1, 2, 3, 4, 5] 11 | >>> l[0:0] = 'Python' 12 | >>> l 13 | ['P', 'y', 't', 'h', 'o', 'n', 1, 2, 3, 4, 5] 14 | ``` 15 | 还可以通过 insert() 方法插入,第一个参数是位置的坐标,从 0 开始。 16 | 17 | ``` 18 | >>> l = [1, 2, 3, 4, 5] 19 | >>> l.insert(0, 'first') 20 | >>> l 21 | ['first', 1, 2, 3, 4, 5] 22 | ``` 23 | 24 | 在第一个元素之前添加一个元素之类的操作是很耗时的,因为这些操作会牵扯到移动列表里的所有元素。有没有更高效的方法?用双向队列 deque 类。 25 | 26 | deque 类可以指定这个队列的大小,如果这个队列满员了,还可以从反向端删除过期的元素,然后在尾端添加新的元素。 27 | 28 | 29 | ``` 30 | >>> from collections import deque 31 | >>> dp = deque(range(10), maxlen=15) 32 | >>> dp 33 | deque([0, 1, 2, 3, 4, 5, 6, 7, 8, 9], maxlen=15) 34 | >>> dp.appendleft(-1) 35 | >>> dp 36 | deque([-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9], maxlen=15) 37 | ``` -------------------------------------------------------------------------------- /64 字典的创建方法.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | 5 | ## 字典的创建方法 6 | Python中,你知道怎么创建字典吗 7 | 8 | ``` 9 | a = dict(one=1, two=2, three=3) 10 | b = {'one': 1, 'two': 2, 'three': 3} 11 | c = dict(zip(['one', 'two', 'three'], [1, 2, 3])) 12 | d = dict([('two', 2), ('one', 1), ('three', 3)]) 13 | e = dict({'one': 1, 'two': 2, 'three': 3}) 14 | 15 | 16 | ``` 17 | 18 | 用字典推导(dictcomp)构建字典 19 | 20 | ``` 21 | dial_code = [ 22 | (86, 'China'), 23 | (91, 'India'), 24 | (1, 'US'), 25 | (55, 'Brazil'), 26 | (7, 'Russia'), 27 | (81, 'Japan') 28 | ] 29 | 30 | coutry_code = {coutry:code for code, coutry in dial_code} 31 | ``` 32 | 33 | -------------------------------------------------------------------------------- /65 通过一次查询给字典里不存的键赋予新值.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | 5 | ## 通过一次查询给字典里不存的键赋予新值 6 | 7 | 用setdefault方法,只查询一次,效果更快 8 | ``` 9 | coutry_code = {'China': 86, 'India': 91, 'US': 1, 'Brazil': 55, 'Russia': 7, 'Japan': 81} 10 | 11 | coutry_code.setdefault('china', []).append(86) 12 | ``` 13 | 14 | 如果用下面这种方法,需要查询三次 15 | 16 | 17 | ``` 18 | if 'china' not in coutry_code: 19 | coutry_code['china'] = [] 20 | coutry_code['china'].append(86) 21 | print(coutry_code) 22 | ``` 23 | 24 | 像k in my_dict.keys( )这种操作在Python 3中是很快的,而且即便映射类型对象很庞大也没关系。这是因为dict.keys( )的返回值是一个“视图”。视图就像一个集合,而且跟字典类似的是,在视图里查找一个元素的速度很快。在“Dictionary view objects”里可以找到关于这个细节的文档。Python 2的dict.keys( )返回的是个列表,因此虽然上面的方法仍然是正确的,它在处理体积大的对象的时候效率不会太高,因为k in my_list操作需要扫描整个列表。 25 | 26 | -------------------------------------------------------------------------------- /66 怎么统计字符串中元素出现的个数?.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | 5 | ## 怎么统计字符串中元素出现的个数? 6 | 7 | 用collections中的Counter方法统计,返回的结果是对应元素和个数形成的键值对。 8 | 9 | ``` 10 | ct = collections.Counter('adcfadcfgbsdcv') 11 | ``` 12 | 13 | 结果: 14 | 15 | 16 | ``` 17 | Counter({'d': 3, 'c': 3, 'a': 2, 'f': 2, 'g': 1, 'b': 1, 's': 1, 'v': 1}) 18 | ``` 19 | 20 | 21 | 怎么统计出排名前n的元素? 22 | 23 | 用most_common方法,参数里填n,比如前两名的话 24 | 25 | 26 | ``` 27 | ct.most_common(2) 28 | ``` 29 | 30 | 结果 31 | 32 | ``` 33 | [('d', 3), ('c', 3)] 34 | ``` 35 | 36 | -------------------------------------------------------------------------------- /67 列表去重.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | 5 | ## 列表去重 6 | 7 | 8 | ``` 9 | >>> l = ['A', 'B', 'A', 'B'] 10 | >>> list(set(l)) 11 | ['A', 'B'] 12 | 13 | ``` 14 | 15 | -------------------------------------------------------------------------------- /68 求m中元素在n中出现的次数.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | 5 | ## 求m中元素在n中出现的次数 6 | 7 | 基础解法: 8 | 9 | 10 | ``` 11 | >>> m = {'A', 'B', 'C'} 12 | >>> n = {'B', 'C', 'D'} 13 | >>> found = 0 14 | >>> for i in m: 15 | if i in n: 16 | found += 1 17 | 18 | >>> found 19 | 2 20 | ``` 21 | 高级解法: 22 | 23 | ``` 24 | >>> m = {'A', 'B', 'C'} 25 | >>> n = {'B', 'C', 'D'} 26 | >>> len(m & n) 27 | 2 28 | ``` 29 | 30 | 如果m和n不是集合的话,直接转换后再取交集 31 | 32 | ``` 33 | >>> m = {'A', 'B', 'C'} 34 | >>> n = {'B', 'C', 'D'} 35 | >>> len(set(m) & srt(n)) 36 | 2 37 | ``` 38 | 39 | 高级解法的另一种写法: 40 | 41 | 42 | ``` 43 | >>> m = {'A', 'B', 'C'} 44 | >>> n = {'B', 'C', 'D'} 45 | >>> len(set(m).intersection(n)) 46 | 2 47 | ``` -------------------------------------------------------------------------------- /69 新建一个Latin-1字符集合,该集合里的每个字符的Unicode名字里都有“SIGN”这个单词,用集合推导式完成。.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | 5 | ## 新建一个Latin-1字符集合,该集合里的每个字符的Unicode名字里都有“SIGN”这个单词,用集合推导式完成。 6 | 7 | 8 | ``` 9 | >>> from unicodedata import name 10 | >>> {chr(i) for i in range(32, 256) if 'SIGN' in name(chr(i), '')} 11 | {'§', '%', '#', '+', '¬', '£', '<', '$', '=', 'µ', '®', '÷', '©', '±', '°', '¤', '¥', '¶', '×', '>', '¢'} 12 | ``` 13 | -------------------------------------------------------------------------------- /70 查询系统默认编码方式.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | 5 | ## 查询系统默认编码方式 6 | 7 | 8 | ``` 9 | >>> fp = open('test.txt', 'w') 10 | >>> fp.encoding 11 | 'cp936' 12 | ``` 13 | -------------------------------------------------------------------------------- /71 修改编码方式.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | 5 | ## 修改编码方式 6 | 7 | 8 | ``` 9 | >>> fp = open('test.txt', 'w', encoding='utf-8') 10 | >>> fp.encoding 11 | 'utf-8' 12 | ``` 13 | 14 | -------------------------------------------------------------------------------- /72 用递归实现阶乘.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | 5 | ## 用递归实现阶乘 6 | 7 | 8 | ``` 9 | def factorial(n): 10 | """:return n!""" 11 | return 1 if n < 2 else n * factorial(n-1) 12 | ``` 13 | 14 | -------------------------------------------------------------------------------- /73 >>> all([])的输出结果是多少?.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | 5 | ## >>> all([])的输出结果是多少? 6 | 7 | ``` 8 | True 9 | ``` 10 | -------------------------------------------------------------------------------- /74 >>> any([])的输出结果是多少?.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | 5 | ## >>> any([])的输出结果是多少? 6 | 7 | ``` 8 | False 9 | ``` 10 | 11 | -------------------------------------------------------------------------------- /75 怎么判断对象是否可被调用?.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | 5 | ## 怎么判断对象是否可被调用? 6 | 7 | 用 Python 内置的函数 callable() 判断 8 | ``` 9 | >>> [callable(obj) for obj in (abs, str, 2)] 10 | [True, True, False] 11 | ``` 12 | 13 | 14 | -------------------------------------------------------------------------------- /76 怎么列出对象的所有属性.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | 5 | ## 怎么列出对象的所有属性 6 | 7 | 使用 dir 函数来获取对象的所有属性。 8 | ``` 9 | >>> import requests 10 | >>> dir(requests) 11 | ['ConnectTimeout', 'ConnectionError', 'DependencyWarning', 'FileModeWarning', 'HTTPError', 'NullHandler', 'PreparedRequest', 'ReadTimeout', 'Request', 'RequestException', 'RequestsDependencyWarning', 'Response', 'Session', 'Timeout', 'TooManyRedirects', 'URLRequired', '__author__', '__author_email__', '__build__', '__builtins__', '__cached__', '__cake__', '__copyright__', '__description__', '__doc__', '__file__', '__license__', '__loader__', '__name__', '__package__', '__path__', '__spec__', '__title__', '__url__', '__version__', '_check_cryptography', '_internal_utils', 'adapters', 'api', 'auth', 'certs', 'chardet', 'check_compatibility', 'codes', 'compat', 'cookies', 'cryptography_version', 'delete', 'exceptions', 'get', 'head', 'hooks', 'logging', 'models', 'options', 'packages', 'patch', 'post', 'put', 'pyopenssl', 'request', 'session', 'sessions', 'status_codes', 'structures', 'urllib3', 'utils', 'warnings'] 12 | ``` 13 | 14 | -------------------------------------------------------------------------------- /77 怎么得到类的实例没有而函数有的属性列表.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | 5 | ## 怎么得到类的实例没有而函数有的属性列表 6 | 7 | 创建一个空的用户定义的类和空的函数,计算差集,然后排序。 8 | 9 | ``` 10 | >>> class C: 11 | pass 12 | 13 | >>> obj = C() 14 | >>> def func(): 15 | pass 16 | 17 | >>> sorted(set(dir(func)) - set(dir(obj))) 18 | ['__annotations__', '__call__', '__closure__', '__code__', '__defaults__', '__get__', '__globals__', '__kwdefaults__', '__name__', '__qualname__'] 19 | ``` 20 | 21 | -------------------------------------------------------------------------------- /78 函数中,不想支持数量不定的定位参数,但是想支持仅限关键字参数,参数怎么定义.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | 5 | ## 函数中,不想支持数量不定的定位参数,但是想支持仅限关键字参数,参数怎么定义 6 | 7 | 那就要在关键字参数前加一个 *。 8 | 9 | 10 | ``` 11 | >>> def f(a, *, b): 12 | return a, b 13 | 14 | >>> f(1, b=2) 15 | (1, 2) 16 | ``` 17 | 这样的话,b 参数强制必须传入实参,否则会报错。 -------------------------------------------------------------------------------- /79 怎么给函数参数和返回值注解.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | 5 | ## 怎么给函数参数和返回值注解 6 | 7 | 代码执行时,注解不会做任何处理,只是存储在函数的__annotations__属性(一个字典)中。 8 | 9 | 10 | ``` 11 | def function(text: str, max_len: 'int > 0' = 80) -> str: 12 | ``` 13 | 14 | 函数声明中的各个参数可以在:之后增加注解表达式。如果参数有默认值,注解放在参数名和=号之间。如果想注解返回值,在)和函数声明末尾的:之间添加->和一个表达式。 15 | 16 | Python对注解所做的唯一的事情是,把它们存储在函数的__annotations__属性里。仅此而已,Python不做检查、不做强制、不做验证,什么操作都不做。换句话说,注解对Python解释器没有任何意义。注解只是元数据,可以供IDE、框架和装饰器等工具使用 17 | 18 | -------------------------------------------------------------------------------- /80 不使用递归,怎么高效写出阶乘表达式.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | 5 | ## 不使用递归,怎么高效写出阶乘表达式 6 | 7 | 通过 reduce 和 operator.mul 函数计算阶乘 8 | ``` 9 | >>> from functools import reduce 10 | >>> from operator import mul 11 | >>> def fact(n): 12 | return reduce(mul, range(1, n+1)) 13 | 14 | >>> fact(5) 15 | 120 16 | ``` 17 | 18 | 19 | -------------------------------------------------------------------------------- /81 Python什么时候执行装饰器?.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | 5 | ## Python什么时候执行装饰器? 6 | 7 | 函数装饰器在导入模块时立即执行,而被装饰的函数只在明确调用时运行。这突出了Python程序员所说的导入时和运行时之间的区别。 8 | 9 | 10 | -------------------------------------------------------------------------------- /82 判断下面语句执行是否会报错?.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | 5 | ## 判断下面语句执行是否会报错? 6 | 7 | ``` 8 | >>> b = 3 9 | >>> def fun(a): 10 | print(a) 11 | print(b) 12 | b = 7 13 | 14 | 15 | >>> fun(2) 16 | ``` 17 | 18 | 会报错,Python编译函数的定义体时,先做了一个判断,那就是 b 是局部变量,因为在函数中给它赋值了。但是执行 print(b) 时,往上又找不到 b 的局部值,所以会报错。 19 | 20 | Python 设计如此,Python 不要求声明变量,但是假定在函数定义体中赋值的变量是局部变量。 21 | 22 | 23 | ``` 24 | 2 25 | Traceback (most recent call last): 26 | File "", line 1, in 27 | fun(2) 28 | File "", line 3, in fun 29 | print(b) 30 | UnboundLocalError: local variable 'b' referenced before assignment 31 | ``` 32 | 33 | 34 | -------------------------------------------------------------------------------- /83 怎么强制把函数中局部变量变成全局变量.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | 5 | ## 怎么强制把函数中局部变量变成全局变量 6 | 7 | 用 global 声明 8 | 9 | 10 | ``` 11 | >>> b = 3 12 | >>> def fun(a): 13 | global b 14 | print(a) 15 | print(b) 16 | b = 7 17 | 18 | 19 | >>> b = 5 20 | >>> fun(2) 21 | 2 22 | 5 23 | ``` 24 | 25 | -------------------------------------------------------------------------------- /84 闭包中,怎么对数字、字符串、元组等不可变元素更新.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | 5 | ## 闭包中,怎么对数字、字符串、元组等不可变元素更新 6 | 7 | 我们知道,在闭包中,声明的变量是局部变量,局部变量改变的话会报错。 8 | 9 | 10 | ``` 11 | >>> def make_averager(): 12 | count = 0 13 | total = 0 14 | def averager (new_value): 15 | count += 1 16 | total += new_value 17 | return total / count 18 | return averager 19 | 20 | >>> avg = make_averager() 21 | >>> avg(10) 22 | Traceback (most recent call last): 23 | File "", line 1, in 24 | avg(10) 25 | File "", line 5, in averager 26 | count += 1 27 | UnboundLocalError: local variable 'count' referenced before assignment 28 | ``` 29 | 30 | 为了解决这个问题,Python 3引入了 nonlocal 声明。它的作用是把变量标记为自由变量 31 | 32 | 33 | ``` 34 | >>> def make_averager(): 35 | count = 0 36 | total = 0 37 | def averager (new_value): 38 | nonlocal count, total 39 | count += 1 40 | total += new_value 41 | return total / count 42 | return averager 43 | 44 | >>> avg = make_averager() 45 | >>> avg(10) 46 | 10.0 47 | ``` 48 | 49 | 50 | -------------------------------------------------------------------------------- /85 Python2 怎么解决访问外部变量报错的问题.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | 5 | ## Python2 怎么解决访问外部变量报错的问题 6 | 7 | https://www.python.org/dev/peps/pep-3104/ 8 | 9 | -------------------------------------------------------------------------------- /86 测试代码运行的时间.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | 5 | ## 测试代码运行的时间 6 | 7 | 用 time 模块里的 perf_counter 方法。 8 | 9 | ``` 10 | >>> t0 = time.perf_counter() 11 | >>> for i in range(10000): 12 | pass 13 | 14 | >>> t1 = time.perf_counter() 15 | >>> t1-t0 16 | ``` 17 | 18 | 或者,直接用 time.time() 19 | 20 | 21 | ``` 22 | >>> import time 23 | >>> t0 = time.time() 24 | >>> for i in range(10000): 25 | pass 26 | 27 | >>> t1 = time.time() 28 | >>> t1-t0 29 | ``` 30 | 31 | -------------------------------------------------------------------------------- /87 怎么优化递归算法,减少执行时间.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | 5 | ## 怎么优化递归算法,减少执行时间 6 | 7 | 使用装饰器 functools.lru_cache() 缓存数据 8 | 9 | ``` 10 | >>> import functools 11 | >>> @functools.lru_cache() 12 | 13 | def fibonacci(n): 14 | if n < 2: 15 | return n 16 | return fibonacci(n-2)+fibonacci(n-1) 17 | 18 | >>> fibonacci(6) 19 | 8 20 | ``` 21 | 22 | 23 | 标准库singledispatch官方文档:https://www.python.org/dev/peps/pep-0443/ 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /88 比较两个对象的值(对象中保存的数据)是否相等.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | 5 | ## 比较两个对象的值(对象中保存的数据)是否相等 6 | 7 | 用 == 运算符比较 8 | 9 | 10 | ``` 11 | >>> a = [1, 2, 3] 12 | >>> b = [1, 2, 3] 13 | >>> a==b 14 | True 15 | ``` 16 | 17 | 18 | -------------------------------------------------------------------------------- /89 比较两个对象的内存地址 id 是否相等.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | 5 | ## 比较两个对象的内存地址 id 是否相等 6 | 7 | 用 is 比较,ID一定是唯一的数值标注,而且在对象的生命周期中绝不会变 8 | 9 | 10 | ``` 11 | >>> a = [1, 2, 3] 12 | >>> b = [1, 2, 3] 13 | >>> a is b 14 | False 15 | ``` 16 | 17 | 18 | -------------------------------------------------------------------------------- /90 怎么格式化显示对象?.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | 5 | ## 怎么格式化显示对象? 6 | 7 | 可以用内置的 format( )函数和str.format( )方法。 8 | 9 | format(my_obj, format_spec)的第二个参数,或者str.format( )方法的格式字符串,{}里代换字段中冒号后面的部分。 10 | 11 | 12 | ``` 13 | >>> from datetime import datetime 14 | >>> now = datetime.now() 15 | >>> format(now, '%H:%M:%S') 16 | '08:18:21' 17 | >>> "It's now {:%I:%M%p}".format(now) 18 | "It's now 08:18AM" 19 | ``` 20 | 21 | 22 | -------------------------------------------------------------------------------- /91 复制一个序列并去掉后 n 个元素.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | 5 | ## 复制一个序列并去掉后 n 个元素 6 | 7 | 可能有同学会想到用 pop(),但这个方法会就地删除原序列,不会复制出一个新的序列。 8 | 9 | 可以用切片的思想,比如复制后去掉后两个元素。 10 | 11 | ``` 12 | >>> l = [1, 2, 3, 4, 5] 13 | >>> j = l[:-2] 14 | >>> j 15 | [1, 2, 3] 16 | ``` 17 | -------------------------------------------------------------------------------- /92 Python中怎么定义私有属性。.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | 5 | ## Python中怎么定义私有属性。 6 | 7 | 在属性前加两个前导下划线,尾部没有或最多有一个下划线 8 | 9 | -------------------------------------------------------------------------------- /93 怎么随机打乱一个列表里元素的顺序.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | 5 | ## 怎么随机打乱一个列表里元素的顺序 6 | 7 | 用 random 里的 shuffle 方法 8 | 9 | 10 | ``` 11 | >>> from random import shuffle 12 | >>> l = list(range(30)) 13 | >>> shuffle(l) 14 | >>> l 15 | [28, 15, 3, 25, 16, 18, 23, 10, 11, 21, 12, 7, 4, 0, 24, 6, 5, 22, 8, 13, 29, 9, 27, 17, 2, 20, 1, 26, 19, 14] 16 | >>> 17 | ``` 18 | -------------------------------------------------------------------------------- /94 怎么判断某个对象或函数是一个已知的类型.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | 5 | ## 怎么判断某个对象或函数是一个已知的类型 6 | 7 | 用 Python 的内置函数 isinstance() 判读 8 | 9 | 10 | ``` 11 | >>> isinstance('aa', str) 12 | True 13 | ``` 14 | 15 | -------------------------------------------------------------------------------- /95 怎么打印出分数.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | 5 | ## 怎么打印出分数 6 | 7 | 用 fractions 中的 Fraction 方法 8 | 9 | 10 | ``` 11 | >>> from fractions import Fraction 12 | >>> print(Fraction(1, 3)) 13 | 1/3 14 | ``` 15 | -------------------------------------------------------------------------------- /96 + 和 += 区别.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | 5 | ## + 和 += 区别 6 | 7 | + 两边必须是同类型的对象才能相加,+= 右操作数往往可以是任何可迭代对象。 8 | 9 | ``` 10 | >>> l = list(range(6)) 11 | >>> l += 'qwer' 12 | >>> l 13 | [0, 1, 2, 3, 4, 5, 'q', 'w', 'e', 'r'] 14 | >>> j = l + (6, 7) 15 | Traceback (most recent call last): 16 | File "", line 1, in 17 | j = l + (6, 7) 18 | TypeError: can only concatenate list (not "tuple") to list 19 | ``` 20 | 21 | -------------------------------------------------------------------------------- /97 怎么列出一个目录下所有的文件名和子文件名.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | 5 | ## 怎么列出一个目录下所有的文件名和子文件名 6 | 7 | 用 os.walk 生成器函数,我用 site-packages 目录举例。 8 | 9 | 10 | ``` 11 | >>> import os 12 | >>> dirs = os.walk('C:\Program Files\Python36\Lib\site-packages') 13 | >>> for dir in dirs: 14 | print(dir) 15 | 16 | 17 | ('C:\\Program Files\\Python36\\Lib\\site-packages', ['ad3', 'ad3-2.2.1.dist-info', 'adodbapi', 'aip', 'appium', 'AppiumLibrary', 'Appium_Python_Client-0.46-py3.6.egg-info', 'apscheduler', 'APScheduler-3.6.0.dist-info', 'atomicwrites', 'atomicwrites-1.3.0.dist-info', ...) 18 | ``` 19 | -------------------------------------------------------------------------------- /98 怎么返回 1 到 10 的阶乘列表.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | 5 | ## 怎么返回 1 到 10 的阶乘列表 6 | 7 | 高效的方法需要用到 itertools 和 operator 模块,导包后一行代码搞定。 8 | 9 | ``` 10 | >>> import itertools 11 | >>> import operator 12 | >>> list(itertools.accumulate(range(1, 11), operator.mul)) 13 | [1, 2, 6, 24, 120, 720, 5040, 40320, 362880, 3628800] 14 | ``` 15 | 16 | -------------------------------------------------------------------------------- /99 怎么快速拼接字符串和序列形成新的列表.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙点个赞哈,点赞越多,更新越快~ 3 | 4 | 5 | ## 怎么快速拼接字符串和序列形成新的列表 6 | 7 | 用 itertools 里的 chain 方法可以一行代码搞定。 8 | 9 | 10 | ``` 11 | >>> import itertools 12 | >>> list(itertools.chain('ABC', range(5))) 13 | ['A', 'B', 'C', 0, 1, 2, 3, 4] 14 | ``` 15 | 16 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Python100 2 | ### 把Python知识点整理成100道习题,知识点来自两本书:Python基础教程(第3版)和流畅的Python,以后会定期加入更多的习题,大家帮忙给这个github项目**点个start**,**来个三连**哈,点赞越多,更新得越快~peace~ 3 | 4 | ### 为了方便大家收藏,我已经把 Python 100题整理成了 PDF 文档,需要文档的可以关注下方公众号「Python知识圈」并回复:“100” 获取PDF文档。 5 | 6 | ![](http://blog.pyzhishiquan.com/img/20201010161129.jpg) 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | --------------------------------------------------------------------------------