《Python学习手册》(二)
《Python学习手册》(二)
——类型和运算
数字
| 十六进制 | 八进制 | 二进制 |
|---|---|---|
| 0x | 0o | 0b |
| hex() | oct() | bin() |
>>>int('10',2)
2
>>>int('10',16)
16
>>>int(3.14159)
3
>>>float(3)
3.0
about yield:
http://www.cnblogs.com/tqsummer/archive/2010/12/27/1917927.html
about lambda:non-understanding
about str,repr:
http://www.guokr.com/post/91890/
| 5/-2 | python 2.6 | python 3.0 |
|---|---|---|
| '/' | -3 | -2.5 |
| '//' | -3 | -3 |
for both 3.0 & 2.6:
>>>import math
>>>math.trunc(5/-2)
-2
将整数转化为8进制和16进制的字符串:
>>> '{0:o}, {1:x}, {2:b}'.format(64, 64, 64)
'100, 40, 1000000'
>>> '%o, %x, %X' % (64, 255, 255)
'100, ff, FF'
求二进制的位数
>>>X = 99
>>>bin(X), X.bit_length()
('0b1100011', 7)
python内置函数:
pow(), abs(), sum((1, 2, 3, 4)), max(), min(), round()...
>>>round(2.567, 2)
2.57
>>> '%.1f' %2.567, '{0:.2f}'.format(2.567)
('2.6', '2.57')
math模块:
math.pi, math.e
math.sin(),math.sqrt(), math.floor(), math.trunc()
random模块:
import random
random.random()
random.randint(1, 10)
random.choice(['Brian', 'Grail', 'Life'])
小数
>>> 0.1 + 0.1 + 0.1 - 0.3
5.551115123125783e-17
>>> from decimal import Decimal
>>> Decimal('0.1') + Decimal('0.1') + Decimal('0.1') - Decimal('0.3')
Decimal('0.0')
>>> Decimal('0.1') + Decimal('0.1') + Decimal('0.1') - Decimal('0.30')
Decimal('0.00')
从一个浮点对象创建一个小数对象:
decimal.Decimal.from_float(1.25)
设全局精度:适用于调用线程中创建的所有小数
decimal.getcontext().prec = 4
设临时精度:
>>> with decimal.localcontext() as ctx:
... ctx.prec = 2
... decimal.Decimal('1.00') / decimal.Decimal('3.00')
...
Decimal('0.33')
分数
>>> from fractions import Fraction
>>> x = Fraction(1, 3)
>>> x
Fraction(1, 3)
>>> print(x)
1/3
>>> Fraction('.25')
Fraction(1, 4)
转换和混合类型
>>> (2.5).as_integer_ratio()
(5, 2)
>>> f = 2.5
>>> z = Fraction(*f.as_integer_ratio())
>>> z
Fraction(5, 2)
>>>Fraction.from_float(1.75)
Fraction(7, 4)
>>> x = Fraction(1, 3)
>>> a = x + Fraction(*(4.0 / 3).as_integer_ratio())
>>> a
Fraction(22517998136852479, 13510798882111488) # Precision loss from float
>>> a.limit_denominator(10) # 限制最大分母
Fraction(5, 3)
集合
in python 2.6
x = set('abcde')
>>> x
set(['a', 'c', 'b', 'e', 'd'])
# operations
(
'e' in x
x - y # difference
x | y # union
x & y # intersection
x ^ y #symmetric difference (XOR)
x > y, x < y # superset, subset
# methods
(
x.interaction(y) # same as x & y; '-', '|', '^' just like so
x.issubset(range(1, 5))
z.add('SPAM') # insert one item
z.update(set(['X', 'Y'])) # merge
z.remove('b') # delete one item
>>> for item in set('abc'): print(item * 3)
...
aaa
bbb
ccc
notice: set([1, 2, 3]) is set, [1, 2, 3] is list
in python 3.0
We can also build a set in this way:
{1, 2, 3, 5}
>>> type({})
<class 'dict'>
创建空集合:
s = set()
集合解析:
>>> {x ** 2 for x in [1, 2, 3, 4]}
{16, 1, 4, 9}
for both python 2.6 & 3.0:
集合只能包含不可变(即可散列的)对象,因此,列表和字典不能嵌入集合
若需要在另一个集合中存储一个集合,可以调用frozenset,创建一个不可变集合且能嵌套到其他集合中。
集合应用
去除重复项
L = [1, 2, 1, 3, 2, 4, 5]
L = list(set(L))
遍历图形或其他回环结构时,用来记录已经访问过的位置
处理较大的数据集合(例如数据库查询结果)
数字扩展
NumPy 提供了高级的数字编程工具,例如矩形数据类型、向量处理和高级的计算库
《Python学习手册》(二)的更多相关文章
- PHP面向对象编程 对象的基本概念 PHP面向对象的基本实践 PHP面向对象的高级实践 PHP面向对象的特殊实践
再次梳理一下面向对象编程的要点. 此文是以php为例,但思想是通用的. 总结的PHP面向对象编程笔记 对象的基本概念 对象的基本构成 对象包含两部分 一.对象的组成元素 是对象的数据模型,用于描述对象 ...
- 【Scrum】-NO.40.EBook.1.Scrum.1.001-【敏捷软件开发:原则、模式与实践】- Scrum
1.0.0 Summary Tittle:[Scrum]-NO.40.EBook.1.Scrum.1.001-[敏捷软件开发:原则.模式与实践]- Scrum Style:DesignPattern ...
- (转) 面向对象设计原则(二):开放-封闭原则(OCP)
原文:https://blog.csdn.net/tjiyu/article/details/57079927 面向对象设计原则(二):开放-封闭原则(OCP) 开放-封闭原则(Open-closed ...
- 敏捷软件开发:原则、模式与实践——第11章 DIP:依赖倒置原则
第11章 DIP:依赖倒置原则 DIP:依赖倒置原则: a.高层模块不应该依赖于低层模块.二者都应该依赖于抽象. b.抽象不应该依赖于细节.细节应该依赖于抽象. 11.1 层次化 下图展示了一个简单的 ...
- 敏捷软件开发:原则、模式与实践——第9章 OCP:开放-封闭原则
第9章 OCP:开放-封闭原则 软件实体(类.模块.函数等)应该是可以扩展的,但是不可修改. 9.1 OCP概述 遵循开放-封闭原则设计出的模块具有两个主要特征: (1)对于扩展是开放的(open f ...
- OOP 面向对象 七大原则 (二)
OOP 面向对象 七大原则 (二) 上一篇写到了前四个原则,这一篇继续~~ 接口隔离:客户端不应该依赖它不需要的接口:一个类对另一个类的依赖应该建立在最小的接口上. 又是一句大白话~就是说接口尽量 ...
- 手机淘宝轻店业务 Serverless 研发模式升级实践
一.前言 随着 Serverless 在业界各云平台落地,阿里内部 Serverless 研发平台.各种研发模式也在业务中逐步落地,如火如荼.在此契机下,淘系团队启动了轻店 Serverless 研发 ...
- ASP.NET MVC5 网站开发实践(二) Member区域–管理列表、回复及删除
本来想接着上次把这篇写完的,没想到后来工作的一些事落下了,放假了赶紧补上. 目录: ASP.NET MVC5 网站开发实践 - 概述 ASP.NET MVC5 网站开发实践(一) - 项目框架 ASP ...
- ASP.NET MVC5 网站开发实践(二) Member区域–我的咨询列表及添加咨询
上次把咨询的架构搭好了,现在分两次来完成咨询:1.用户部分,2管理部分.这次实现用户部分,包含两个功能,查看我的咨询和进行咨询. 目录: ASP.NET MVC5 网站开发实践 - 概述 ASP.NE ...
- ASP.NET MVC5 网站开发实践(二) Member区域 - 咨询管理的架构
咨询.留言.投诉等功能是网站应具备的基本功能,可以加强管理员与用户的交流,在上次完成文章部分后,这次开始做Member区域的咨询功能(留言.投诉都是咨询).咨询跟文章非常相似,而且内容更少.更简单. ...
随机推荐
- 修改Chem 3D模型的化学键属性的方法有哪些
很多的用户在绘制化学图形过程中发现很多的图形都是立体结构的,这个时候就需要用Chem3D,它是ChemOffice的核心组件之一,在绘制立体模型和计算化学数据方面具有不可替代的作用.虽然ChemDra ...
- CSV转PDF(C++)
CSV : Comma Separate Values 特点: 每条记录占一行 以逗号为分隔符 逗号前后的空格会被忽略 字段中包含有逗号,该字段必须用双引号括起来 字段中包含有换行符,该字段必须用双引 ...
- Lumen 队列
队列 简介 连接 Vs. 队列 驱动的必要设置 创建任务类 生成任务类 任务类结构 分发任务 延迟分发 任务链 自定义队列 & 连接 指定任务最大尝试次数 / 超时值 频率限制 错误处理 运行 ...
- [Go语言]从Docker源码学习Go——指针和Structs
这两天在看reflect这个包在Docker中的使用时,遇到了各种问题,最后虽然知道怎么用了. 但是对于这块的原理还不是太懂,于是把"THE WAY TO GO"中关键的几章看了下 ...
- dlut1188(wanghang的迷宫)
题目链接:传送门 题目大意:从起点到终点需要最少多少步(必须要关掉所有开关才能出去) 题目思路:用一个3维数组 dp[x][y][t]表示到达当前位置x,y,已经关掉了t个开关走的最少步数,然后就 ...
- 【BZOJ4152】[AMPPZ2014]The Captain 最短路
[BZOJ4152][AMPPZ2014]The Captain Description 给定平面上的n个点,定义(x1,y1)到(x2,y2)的费用为min(|x1-x2|,|y1-y2|),求从1 ...
- mysql返回字符串在另外一个字符串中第n次出现的方法。
SELECT SUBSTRING_INDEX("迟到50分钟,早退15分钟","分钟",2); 返回:迟到50分钟,早退15
- HTML5标签(语义化)
HTML语义化是什么? HTML语义化是指根据内容的结构化,选择合适的标签.举个例子:之前所有的都用div, span等标签实现页面结构,而这些标签都没有实际的意义, 而新的HTML5标签<he ...
- Less-@import 导入选项
//@import 导入选项 --@import 可以至于任何你需要导入的地方 在标准的CSS,@import在规则必须先于所有其他类型的规则.但Less.js不关心 example: .test() ...
- 用Python xlwt建立excel表格
1.下载xlwt的Python库 (This is a library for developers to use to generate spreadsheet files compatible w ...