1, 在Python 2.x 中。Python的integer,有两种类型,normal和long。Normal一般是32位的。Long表示无限精度,由计算机决定。若是数字后面有l或者L,这会强制将该数字转换为long类型。但其实,用户没必要这样作,由于Python会在数值溢出的状况下自动将normal的类型转换为long类型。
然而,在Python 3.x中,normal和long合并了,没有区别了。此时不可再在数字尾部加入l或者L了。编程
2,integer能够用十进制(decimal)、十六进制(hexadecimal)、八进制(octal)、二进制(binary)来表示。后面三种在编程领域很常见。
十六进制(hexadecimal):以0x或者0X开头,接0~9或者A~F,大小写没有关系;
八进制(octal):以0o或者0O开头,接0~7;
二进制(binary):以0b或者0B开头,接0~1.
想要将数字转换为十进制的,能够用int(数值)方法:如int(0o100)=64;
想要将数字转换为八进制的,能够用oct(数值)方法,如oct(0x40)= 0o100;
想要将数字转换为十六进制的,能够用hex(数值)方法,如hex(64)= 0x40;
想要将数字转换为二进制的,能够用bin(数值)方法,如bin(64)= 0b1000000;数组
3,使用以下的方法能够将integer I 转换为十六进制数、八进制数、二进制数:
hex(I)、oct(I)、bin(I)。函数
4,复数 complex numbers。由实数+虚数组成。其中,虚数要以j或者J结尾。复数能够没有实数部分。ui
5, str()和repr()这两个方法都是能够将数值转换为字符串,不一样的是,str()对用户比较友好,repr()对Python比较友好。但一般状况下,它们都是相同的。.net
6,在Python中,除法分为三种:
6.1,true:表示真正的除法,返回值包含小数部分,属于float型,而无论除数和被除数是什么类型的数据。跟数学里面的除法概念吻合;
6.2,classic:若是除数或被除数之一是float类型的数据,classic除法的商保留小数部分,为float型数据。而若是除数和被除数皆为integer,则商会去掉小数部分,往下取整(好比,原本是2.6,取整后为2。而原本是-2.7,取整后为-3)。
6.3,floor:这种除法的商会去掉小数部分,向小的方向靠拢。若是除数和被除数皆为integer 类型,这商也是integer。而若是除数和被除数之一是float型,则商也是float型。code
7, 在Python 2.X中,/表示classic型除法,//表示floor型除法。
在Python 3.x中,/表示true型除法,//表示floor型除法。
Python 3.x已经没有classic型除法了。
ps: 若是在Python2.x中想要用到3.x的除法,能够在开头加入这样的statement:orm
from __future__ import division
8,为了让代码在Python2.x和3.x中都兼容,若是须要取整的操做,老是用//比较好。blog
9,在math模块中,提供了floor和trunc的方法。很是有用:ci
>>>import math >>>math.floor(2.5) # closest number below value 2 >>>math.floor(-2.5) -3 >>>math.trunc(2.5) # truncate fractional part 2 >>>math.trunc(-2.5) -2 注意:int(I)也有truncate的功能。
10, 在Python中,实部和虚部都是float型的,虚部以j或者J结尾。字符串
11,在Python 2.x中,八进制能够以0开头,可是在Python 3.x中,不能以0开头,必定要以0o或者0O开头!
12,位的运算bitwise operations
<<表示位向左移动 >>表示位向右移动 | 表示或运算 & 表示AND运算 ^ 表示异或运算(二者不一样为1,相同为0)
能够用bit_lenth()方法计算二进制数有多少位。或者len(bin())-2。由于len()会包含开头的0b这两位。
13,位的运算对Python这种高级语言不重要,若是须要作不少位运算,应该考虑低级语言如C语言。
14,round()方法能够作小数的四舍五入。如round(3.78)= 4.0, round(3,789, 2) = 3.79, round()里面的第二个参数表示的是保留多少位小数。
15,Python中的pow()函数用来计算指数。好比pow(2,4)=16, 和 2 ** 4同样的结果。
16,Python中,有自带的min和max()方法。min和max方法接受任意个单独的参数。如min(3, 1, 2, 4)= 1.
17,Python中有sum方法,能够将一列数相加起来,可是这列数应该写在括号内做为一个sequence,好比sum((1,2,3,4)) = 10,也能够是这样的sum([1, 2, 3, 4])。
18,abs函数能够取绝对值。
19,在Python中,有三种方法能够计算平方根:
A, math.sqrt(144) #Module B, 144 ** .5 #Expression C, pow(144, .5) #Built-in
20, 在Python中,计算0.1 + 0.1 + 0.1 – 0.3 并不会获得0这个准确的值。这是因为计算机因为缺乏精确度而没法精确地保存数据引发的。这个时候,decimal模块很好的解决了这个问题,经过调用decimal模块的Decimal构造函数,把数据转换为str型传入,再进行运算,结果就会返回精确的0,以下:
from decimal import Decimal print Decimal('0.1') + Decimal('0.1') + Decimal('0.1') - Decimal('0.3')
结果:0.0
若是传入的参数仍然是float型,将没法得到这个结果。
21,使用Decimal()函数的时候。也能够设定全局精确度:
decimal.getcontext().prec = 4 #设定全局精确度为4位小数。
22,使用Fraction()函数,也能够得到和Decimal()同样的精确效果。Fraction()函数位于fractions 模块中,须要先import才可使用。
Fraction(numerator, denominator),会自动的简化分数。
Fraction()还能够将str参数转换为分数,好比Fraction(‘.25’)=Fraction(1, 4)
23, 初始化一个空的set,使用S = set()。建立一个新的set而且赋值,使用 S = {1, 2, 3, 4}。后续若需再想set里面增长item,能够用S.add(‘…’)
24, set的运算,&表示交集,| 表示并集,- 表示差异,> 表示super set,返回布尔值。这些运算必须都是set类型。
25,union也能够用来创造出并集运算。Union里的参数能够是list,能够是set,还能够是tuple。
{1,2, 3}.union([3, 4])
{1,2, 3}.union({3, 4})
26,intersection也能够用来计算交集,参数能够是list,能够是set,还能够是tuple。
27,issubset()函数能够判断某set是不是令一个set的子集
28,set和tuple的区别:
Set在后续能够增长值,减小值,但tuple不能 Set里面的值必须是互不相同的,但tuple能够接受相同的值。 Set能够内嵌tuple,不能内嵌list,dictionary。
http://blog.csdn.net/u0103675...
29,set comprehensions
{x ** 2 for x in [1, 2, 3, 4]} {16, 1, 4, 9}
30, set能够用来过滤掉重复的item:
>>> L = [1, 2, 1, 3, 2, 4, 5] >>> set(L) {1, 2, 3, 4, 5}
31,set的运算:
>>> engineers = {'bob', 'sue', 'ann', 'vic'} >>> managers = {'tom', 'sue'} >>> 'bob' in engineers # Is bob an engineer? True >>> engineers & managers # Who is both engineer and manager? {'sue'} >>> engineers | managers # All people in either category {'bob', 'tom', 'sue', 'vic', 'ann'} >>> engineers - managers # Engineers who are not managers {'vic', 'ann', 'bob'} >>> managers - engineers # Managers who are not engineers {'tom'} >>> engineers > managers # Are all managers engineers? (superset) False >>> {'bob', 'sue'} < engineers # Are both engineers? (subset) True >>> (managers | engineers) > managers # All people is a superset of managers True >>> managers ^ engineers # Who is in one but not both? {'tom', 'vic', 'ann', 'bob'} >>> (managers | engineers) - (managers ^ engineers) # Intersection! {'sue'}