Python小笔记
wanqing_gao
不想做辣鸡的辣鸡
展开
-
Python碎片日记18——迭代:文件迭代器、其他可迭代对象、手动迭代iter和next
迭代 所有含有_next_方法(迭代协议)的对象都是可迭代的。 可以通过next()来迭代的,叫迭代器。 文件迭代器 文件是可迭代的,并且本身就是迭代器 例如readline(): f = open('a.txt') line0 = f.readline() #读第一行 line1 = f.readline() #读第二行 ... # 当最后一行时,返回空字符 # 类似的_next_()也能实现...原创 2019-10-21 09:14:57 · 225 阅读 · 0 评论 -
Python碎片日记17——while循环、for循环、range、zip、enumerate
white循环原创 2019-10-18 09:53:28 · 215 阅读 · 0 评论 -
Python碎片日记16——赋值语句、命名原则、and/or、if-else三元表达式
赋值语句 一些常用的赋值语句: 序列赋值:元组可以和任意序列相互进行赋值运算,但注意被赋值的变量名数和序列长度要一致; 扩展的序列解包:不带星号的变量赋值右面系列对应的一个元素,带星号的赋值多个剩余元素组合的列表(甚至可以是空列表),不带星号的变量可以多个(也可以没有,但必须在带星号变量后加逗号表明这是一个元组),可以任意位置,带星号的只能一个。这种方法也可以用于for循环中: 增强赋值:增强...原创 2019-10-16 16:45:04 · 275 阅读 · 0 评论 -
Python碎片日记15——对象的比较、True&False、None、Type对象、一部分语句
对象的比较 判断是否相等: “== ”、 “<”或“>” :比较值大小,返回True或False。 1. 对于数字:直接比较大小;2.对于字符串:按照字典序从左到右比较;3. 对于列表和元组:从左到右对每部分内容依次比较;4.字典不支持比较;5.混合类型不可比较 “is ” :判断是否为同一对象 True&False 整数0代表假,整数1代表真。除此之外,数字如果非零...原创 2019-10-14 16:42:17 · 217 阅读 · 0 评论 -
Python碎片日记14——字符串:代码转换、多次修改优化、格式化
代码转换 ord('s')# 将单个字符转换为ASCII码 chr(115)#将ASCII码转换为字符 int('1101',2)#将字符串以2进制翻译成int 多次修改优化 由于字符串时不可变的,每进行一次修改就要产生一个新对象,如果对一个超长字符串进行多次修改,为了优化性能,可以先将字符串转化为可变的类型,在修改后再转换回来。 S = 'sleeping' L = list(S) L[3] ...原创 2019-09-28 17:18:36 · 367 阅读 · 0 评论 -
Python碎片日记13——字符串:操作、反斜杠字符转义
在Python中,没有单个字符这种类型,只有使用一个字符的字符串。 操作 自动合并两个相邻字符串: t = 'ttdd''hhh'"ggd" #'ttddhhhggd' t = ('ttd' 'vvv') #'ttdvvv' 反斜杠字符 反斜杠字符并不真正和字符串一起存储在内存中,它们告诉Python字符串中保存的特殊字节值。 在Python中,空字符不会像C语言那样结束一个字符串,事实...原创 2019-09-04 09:56:44 · 1184 阅读 · 0 评论 -
Python碎片日记12——动态类型:变量&对象&引用、垃圾收集、缓存机制、循环引用、共享引用、拷贝方法(本文又称Python为什么这么强)
动态类型 动态类型是Python中很重要的概念,是Python灵活性和多态性的基础。 在Python中,类型并不需要提前进行声明,而是在运行中自动判定,这大大简化了编程的代码。 那么它是如何实现的呢? 变量&对象&引用 在Python中,变量是在赋值的时候才创建的。 ...原创 2019-08-31 11:46:23 · 141 阅读 · 0 评论 -
Python碎片日记11——少见的数字类型:小数、分数、布尔
除整数、浮点数、复数三大核心数字类型外,Python还有一些不常用的数字类型: 小数 需要导入decimal模块。小数对象就像是浮点数,但是有固定的位数和小数点,即有固定精度。 对于普通浮点数,由于存储数值的空间有限,是缺乏精确性的。对于以下例子: 0.1 + 0.1 + 0.1 - 0.3 #输出结果为5.551115123125783e-17 输出结果并不为0,存在一定缺陷。如果改用小数对象,...原创 2019-08-30 10:00:08 · 151 阅读 · 0 评论 -
Python碎片日记10——str和repr显示格式、三种除法、三种计算平方根方法、builtins模块
str和repr显示格式 str()是用户友好式显示,repr()是交互模式回显(《Python学习手册》上写两者运行结果不同,但是我运行结果是一样的。。。) num = 1/3 repr(num) #输出'0.3333333333333333' str(num) #输出'0.3333333333333333' 除法 除法有三种类型:传统除法、真除法和Floor除法。 传统除法对于整数会省去小...原创 2019-08-28 16:46:33 · 486 阅读 · 0 评论 -
Python碎片日记09——数字类型:表示方法、处理工具、操作符表达式(所有)
数字类型 Python数字类型的完整工具包括: 整数和浮点数 复数 固定精度的十进制数 有理分数 集合 布尔类型 无穷的整数精度 各种数字内置函数和模块 基本数字常量的表示方式: 其中,浮点数精度和C中的双精度一样。Python3里的整数没有长整数和一般整数的区别(Python2的概念)。 内置函数hex()、oct()和bin()可以把一个整数转换为十六进制、八进制和二进制。int(str...原创 2019-08-27 15:00:46 · 94 阅读 · 0 评论 -
Python碎片日记08——小数和分数(简要介绍);类型检验问题;用户定义类(简单例子)
小数和分数 Python添加了一些新的数值类型:十进制和分数,用来解决浮点数学的局限性和内在的不精确性;布尔值:False、True、None(通常用来初始化名字和对象的占位符对象) ...原创 2019-08-26 21:57:04 · 174 阅读 · 0 评论 -
Python碎片日记07——元组:方法;文件:基本操作、pickle块、struct块;集合set
元组tuple 元组是序列,具有不可变性,支持任意类型、任意嵌套。(Python手册上讲,元组是不可变的序列。)它的不可变性是它存在的最大意义。 元组专用方法 没有列表辣么多 T = (1, 2, 3, 4) T.index(4) # 返回内容为4 的序号,此处返回3 T.count(4) # 返回内容为4 的出现次数 文件 没有特定的常量语法创建文件 # 写文件 f = open('data.t...原创 2019-10-12 10:58:17 · 153 阅读 · 0 评论 -
Python碎片日记06——字典:创建方法、常用方法、字典视图、判断key是否存在、key的排序;迭代协议(简述)
字典原创 2019-08-26 09:39:00 · 191 阅读 · 0 评论 -
Python碎片日记04——序列、可变性与不可变性、判断可变性的一个误区、主要对象类型的分类和可变性、对象灵活性
序列 序列包括:字符串、列表和元组。 序列的操作 # s是一个序列 len(s) # 获取长度 s[0] # 索引 s[1:3] # slice分片[I:J]取出从偏移量为I开始,直到但不包括偏移量为J的内容,左边默认为0,右边默认序列长度 s + s # 合并 s * 5 # 重复 可变性与不可变性 ...原创 2019-07-22 20:14:04 · 273 阅读 · 0 评论 -
Python碎片日记05——列表:操作、边界检查、解析
列表 操作 除序列的基本操作外,列表还有许多特殊操作,详见help()。 常见特殊操作有11个: L.append('NI') # 尾部插入 L.pop(2) # 去除位置为2的元素 L.remove('NI') # 去除内容为2的元素 L.insert(2,'bb') # L.extend(itr) #尾部插入迭代器的内容 L.sort() # 升序排列 L.copy() L.count('bb...原创 2019-08-24 11:45:19 · 647 阅读 · 0 评论 -
Python碎片日记03——流重定向(stream redirection)、reload函数、载入属性、dir函数
流重定向(stream redirection) 使用shell命令启动python程序,并将输出结果定向输出到一个文件中,从而保存起来以备以后查看或使用: % python script.py > saveit.txt 同理,对于输入也可以使用流重定向: % python spam.py < input.txt 摘自《Python学习手册》P56 reload函数 在默认情况下,...原创 2019-10-16 15:21:49 · 378 阅读 · 0 评论 -
Python碎片日记02——zip()、lambda表达式、map()
并行遍历zip 在基本运算中,zip会取得一个或多个序列为参数,然后返回元组的列表,将这些序列中的并排的元素配成对——摘自《python学习手册》P354,电子页码387 ##zip的用法 a = [1,2,3] b = [3,4,5] list(zip(a,b)) 输出结果 [(1, 3), (2, 4), (3, 5)] zip可以像range一样进行迭代: for (x,y) in zip...原创 2019-07-16 11:34:18 · 205 阅读 · 0 评论 -
python碎片日记01——引号
单引号、双引号、三引号的区别 在python中,单引号和双引号的功能一致,除了避免对应转义符外,几乎没有区别。所谓避免对应转义符,即是在双引号里的字符串含双引号时需要转义,在单引号里的字符串含单引号时需要转义,为了避免转义的麻烦,在遇到含单引号的字符串时最好用双引号,反之亦然。 三引号(三对)的三单引号和三双引号的区别同上。三引号的功能有两个: 长段注释的功能,用于书写某功能和类的解释。 表示字...原创 2019-07-15 16:18:05 · 109 阅读 · 0 评论