* 类就是类型,实例是对应类型的对象。所有类型对象的类型都是type,type也是所有python类型的根和所有python标准类的默认元类。例子 Null对象,只有一个值,那就是none,不支持任何运算也没有任何内建方法,接近c的void。None没有什么有用的属性,他的bool值总是false * 对象值比较,各种比较操作符,== != >= <=等,python支持连续比较 4>3<5!=2<7 从前到后一次比较 true。使用当中不等于尽量使用!=,<>在以后的版本中很可能被废弃掉 对象身份比较:前面说过,对象的三个特性是身份、类型和值。用id()可以查看对象的身份(即对象的存储地址)。 每一个值都是一个对象(无处不在的引用) * >>>?cmp(1,?2) -1 >>>?cmp(1,?1) 0 >>>?cmp(5,?2) 1 >>>?cmp('abcd','a') 1 #注意:这时候它会先比较第一个字符,然后比较第二个字符,逐个比较知道能判断出大小为止。 * 但是实际上,数字、字符串都是可以修改的。这里说的不能修改,是值对象不能修改,而python中,变量名的赋值是引用的赋值,所以是创建了新的对象 例子 a=1;id(a);a += 1;id(a)两个id不同,说明前后两次指向了不同的对象 Alist=[2,3,4];id(alist);alist[0]=1;id(alist);前后两次id一致,说明指向的对象没有发生变化 * 整型和长整型:在python2.2之前,标准整型超过范围会溢出。Python2.2以后会自动转换成长整型 复数必须是实部和虚部的组合 a.Real a.imag Number = 2147483647 (整型的最大值) Python对复数提供内嵌支持,这是其他大部分软件所没有的。复数主要用来做抛物线计算。 * 其中,除法需要说明。传统除法:如果是整型,舍去小数部分。1/2=0 1.0/2.0=0.5 真正的除法:在未来版本的python中,这将是除法运算的标准(整型除法也应该得到小数的正确结果)。现在可以通过执行from __future__ import division 在执行1/2,就可以得到0.5的正确结果。 地板除/整除法:python2.2加入,不管操作数为何种类型,总是把小数部分舍掉,返回比真正的商小的最接近的数字 -1//2=-1 幂运算:3**2 -3**2=-9 表中优先级依次降低 * Int() long()两个函数可以有第二个参数,可选的进制参数 int(‘e’,16)=14 int(‘16’,8)=14 int(‘1011’,2)=11 Divmod(10,3) (3,1) Pow(2,5) 32 如果提供了第三个参数,则对mod取余运算,这样比pow(2,5)%z性能更高 Round(10.6) 11 round(1.4565465,3) 1.457 第二个参数表示小数点后保留几位 * 随机整数:>>> import random>>> random.randint(0,99)21随机选取0到100间的偶数:>>> import random>>> random.randrange(0, 101, 2)42随机浮点数:>>> import random>>> random.random()0.85415370477785668>>> random.uniform(1, 10)5.4221167969800881随机字符:>>> import random>>> random.choice('abcdefg%^*f')'d'多个字符中选取特定数量的字符:>>> import randomrandom.sample('abcdefghij',3)['a', 'd', 'b']多个字符中选取特定数量的字符组成新字符串:>>> import random>>> import string>>> string.join(random.sample(['a','b','c','d','e','f','g','h','i','j'], 3)).replace(" ","")'fih'随机选取字符串:>>> import random>>> random.choice ( ['apple', 'pear', 'peach', 'orange', 'lemon'] )'lemon'洗牌:>>> import random>>> items = [1, 2, 3, 4, 5, 6]>>> random.shuffle(items)>