11 2018 档案
摘要:想遍历一个可迭代对象,但是它开始的某些元素你并不感兴趣,想跳过它们 itertools 模块中有一些函数可以完成这个任务。首先介绍的是itertools.dropwhile() 函数。使用时,你给它传递一个函数对象和一个可迭代对象。它会返回一个迭代器对象,丢弃原有序列中直到函数返回True 之前的所
阅读全文
摘要:函数itertools.islice() 正好适用于在迭代器和生成器上做切片操作 迭代器和生成器不能使用标准的切片操作,因为它们的长度事先我们并不知道(并且也没有实现索引)。函数islice() 返回一个可以生成指定元素的迭代器,它通过遍历并丢弃直到切片开始索引位置的所有元素。然后才开始一个个的返回
阅读全文
摘要:1. 不用init()方法定义类 定义一个矩形的类,目的是求周长和面积。 从上例中可以看到,我们在类中并没有定义init()方法,但是也能够得到类似的要求,结果返回了矩形实例rect的周长及面积。 但是,我们通过print(rect.dict)来看这个实例的属性,竟然是空的,我定义了一个矩形,按理来
阅读全文
摘要:使用内置的reversed()函数 反向迭代仅仅当对象的大小可预先确定或者对象实现了 _reversed_()的特殊方法时才能生效。如果两者都不符合 ,必须将对象转换成一个列表才行。 定义一个反向迭代器可以使得代码非常的高效,因为它不再需要将数据填充到一个列表中然后再去反向迭代这个列表。
阅读全文
摘要:绝对引用 可以选中B1 用F4快捷键自己就给加绝对引用符号了 然后回车 复制或者拖拽
阅读全文
摘要:可能听说过,带有 yield 的函数在 Python 中被称之为 generator(生成器),何谓 generator ?我们先抛开 generator,以一个常见的编程题目来展示 yield 的概念。 如何生成斐波那契數列 斐波那契(Fibonacci)數列是一个非常简单的递归数列,除第一个和第
阅读全文
摘要:如何判断一个函数是否是一个特殊的 generator 函数?可以利用 isgeneratorfunction 判断:
阅读全文
摘要:原来是因为Python2.X和Python3.X不兼容。 我安装的是Python3.X,但是我试图运行的却是Python2.X 的代码。 所以上面的语法在python3中是错误的。在python3中,你需要将print后面的语句加括号,所以截图里直接放上了正确的敲法
阅读全文
摘要:使用一个生成器函数来定义一个函数模式。 可以用for循环(sum(),list()等)来迭代这个函数 一个函数中需要有一个yield 语句可以将其转换成一个生成器,生成器只用于迭代操作 一个生成器函数主要特征是它只会回应在迭代中使用到的next 操作
阅读全文
摘要:想遍历一个可迭代对象中的所有元素,但是却不想使用for 循环 为了手动的遍历可迭代对象,使用next() 函数并在代码中捕获StopIteration 异常。比如,下面的例子手动读取一个文件中的所有行 通常来讲, StopIteration 用来指示迭代的结尾。然而,如果你手动使用上面演示的next
阅读全文
摘要:有一个安排在2012 年12 月21 日早上9:30 的电话会议,地点在芝加哥。而朋友在印度的班加罗尔,那么他应该在当地时间几点参加这个会议呢? 对几乎所有涉及到时区的问题,你都应该使用pytz 模块。这个包提供了Olson 时区数据库,它是时区信息的事实上的标准,在很多语言和操作系统里面都可以找到
阅读全文
摘要:1. https://pypi.org/project/pytz/#files 2. 下载上图标黄的文件, 3. pip install 4. from pytz import timezone 导入使用
阅读全文
摘要:
阅读全文
摘要:应用程序接受字符串格式的输入,但是你想将它们转换为datetime 对象以便在上面执行非字符串操作。 使用Python 的标准模块datetime 可以很容易的解决这个问题。比如: datetime.strptime() 方法支持很多的格式化代码,比如%Y 代表4 位数年份, %m代表两位数月份。还
阅读全文
摘要:输出的是一个元组; 第一个元素,数字0是这个月的第一天是星期天(上一个月的最后一天为星期几(0-6)),星期天为0; 第二个元素,数字31是这个月的天数;
阅读全文
摘要:def weekday(self): """Return the day of the week as an integer, where Monday is 0 and Sunday is 6. :rtype: int """ return 0
阅读全文
摘要:需要执行简单的时间转换,比如天到秒,小时到分钟等的转换。 为了执行不同时间单位的转换和计算,请使用datetime 模块。比如,为了表示一个时间段,可以创建一个timedelta 实例,就像下面这样: 对大多数基本的日期和时间处理问题, datetime 模块以及足够了。如果你需要执行更加复杂的日期
阅读全文
摘要:想从一个序列中随机抽取若干元素,或者想生成几个随机数。 random 模块有大量的函数用来产生随机数和随机选择元素。比如,要想从一个序列中随机的抽取一个元素,可以使用random.choice() : 为了提取出N 个不同元素的样本用来做进一步的操作,可以使用random.sample() 如果你仅
阅读全文
摘要:bit是计算机中数据的最小单位,即二进制位,数字0和1 一个字节是八位(8个0和1 或 1 组成的一串二进制) 一个字是16位,等于2个字节 用八位二进制表示的字符叫单字节字符, 用16位二进制数表示的字符叫双字节字符
阅读全文
摘要:需要执行矩阵和线性代数运算,比如矩阵乘法、寻找行列式、求解线性方程组等等。 矩阵类似于3.9 小节中数组对象,但是遵循线性代数的计算规则。下面的一个例子展示了矩阵的一些基本特性: 可以在numpy中找到更多的操作函数 很显然线性代数是个非常大的主题,已经超出了本书能讨论的范围。但是,如果需要操作数组
阅读全文
摘要:1. 安装 1)去这里搜索https://pypi.org/ 2)搜索框输入numpy 3)一般第一个就是搜索到的 4)点进去 5) Download files 点进去,找自己的版本 6)numpy-1.13.3-cp36-none-win_amd64.whl, 文件名里面cp代表python3.
阅读全文
摘要:需要在大数据集(比如数组或网格) 上面执行计算,涉及到数组的重量级运算操作,可以使用NumPy 库。 下面是一个简单的小例子,展示标准列表对象和NumPy 数组对象之间的差别 正如所见,两种方案中数组的基本数学运算结果并不相同。特别的, NumPy 中的标量运算(比如ax * 2 或ax + 10
阅读全文
摘要:NumPy is the fundamental package for scientific computing with Python。就是科学计算包。 a powerful N-dimensional array object sophisticated (broadcasting) func
阅读全文
摘要:fractions 模块可以被用来执行包含分数的数学运算 在大多数程序中一般不会出现分数的计算问题,但是有时候还是需要用到的。比如,在一个允许接受分数形式的测试单位并以分数形式执行运算的程序中,直接使用分数可以减少手动转换为小数或浮点数的工作
阅读全文
摘要:想创建或测试正无穷、负无穷或NaN(非数字) 的浮点数 Python 并没有特殊的语法来表示这些特殊的浮点值,但是可以使用float() 来创建它们。比如: 跟比较和操作符相关的时候,无穷大数在执行数学计算的时候会传播,比如: 但是有些操作时未定义的并会返回一个NaN 结果 NaN 值的一个特别的地
阅读全文
摘要:写的最新的网络认证方案代码遇到了一个难题,唯一的解决办法就是使用复数空间,需要使用复数来执行一些计算操作。 复数可以用使用函数complex(real, imag) 或者是带有后缀j 的浮点数来指定。比如: 对应的实部、虚部和共轭复数可以很容易的获取。就像下面这样: 另外,所有常见的数学运算都可以工
阅读全文
摘要:Numpy是python的一种开源的数值计算扩展。这种工具可用来存储和处理大型矩阵,比python自身的嵌套列表结构要高效的多。但是在使用numpy时可能会出错(如上图)。 解决办法:下载安装对应版本的numpy程序, 学习并转载自:https://blog.csdn.net/javastart/a
阅读全文
摘要:为了将整数转换为二进制、八进制或十六进制的文本串,可以分别使用bin() ,oct() 或hex() 函数: 如果你不想输出0b , 0o 或者0x 的前缀的话,可以使用format() 函数 整数是有符号的,所以如果你在处理负数的话,输出结果会包含一个负号 如果你想产生一个无符号值,你需要增加一个
阅读全文
摘要:需要将数字格式化后输出,并控制数字的位数、对齐、千位分隔符和其他的细节。 1. 最简单的控制小数位数 2. 右对齐,总共10位,1位小数 3. 左对齐,总共10位,1位小数 4. 放中间,总共10位,1位小数 5. 千位符号 6. 指数计数法 7. 例子 8. 千位符translate 9. % 这
阅读全文
摘要:需要对浮点数执行精确的计算操作,并且不希望有任何小误差的出现. 浮点数的一个普遍问题是它们并不能精确的表示十进制数。并且,即使是最简单的数学运算也会产生小的误差,比如: ”False“是由于底层CPU和IEEE标准通过自己的浮点单位去执行算术导致的。Python的浮点数据类型使用底层表示存储数据,所
阅读全文
摘要:1. 背景 在分布式系统中,经常需要对大量的数据、消息、http请求等进行唯一标识。例如:在分布式系统之间http请求需要唯一标识,调用链路分析的时候需要使用这个唯一标识。这个时候数据自增主键已经不能满足需求,需要一个能够生成全局唯一ID的系统,这个系统需要满足两个需求: 全局唯一:不能出现重复ID
阅读全文