python数据类型(二)字典与集合

python使用对象模型来存储数据,每个数据类型都有一个内置类,每新建一个数据就是在初始化生成一个对象,既所有数据都是对象

三个特性

  1.身份:内存地址,用id()获取查看

  2.类型:决定了该对象可以保存什么类型值,可执行哪种操作,要遵循什么规则,用type()获取

  3.值:对象保存的真实数据

标准类型:数字、字符串、列表、元组、字典

其他类型:类型type、Null、文件、集合、函数(方法)、类、模块

 

数字定义 n=1 

  分为:整型、长整型、浮点、复数

  特性:

    1.只能存放一个值

    2.定以后不可更改

    3.直接访问

 

  print(bin(10))  ->  0b1010  (bin函数用来转换成二进制)

  print(oct(10)) ->    0o12(oct函数用来装换成八进制)

  print(hex(10)) ->   0xa (hex函数用来装换成十六进制)

python3  整型长度没有限制

python2  32位  取值范围-2**31~2**31-1(-2147483648~2147483647)

      64位   取值范围-2**63~2**63-1(-9223372036854775808~9223372036854775807)

 

长整型(long)

  python3中统一为整型

  python2中Python的长整型没有指定位宽,也就是说Python没有限制长整型数值的大小,
但是实际上由于机器内存有限,所以我们使用的长整型数值不可能无限大。区分时通常的做法是在数字尾部加上一个大写字母L或小写字母l以表示该整数是长整型的,例如:
a = 928L,注意,自从Python2起,如果发生溢出,Python会自动将整型数据转换为长整型,
所以如今在长整型数据后面不加字母L也不会导致严重后果了。

 

浮点数(float):

Python的浮点数就是数学中的小数,类似C语言中的double。
浮点数可以用数学写法,如1.23,3.14,-9.01,等等。但是对于很大或很小的浮点数,
就必须用科学计数法表示,把10用e替代,1.23*109就是1.23e9,或者12.3e8,0.000012
可以写成1.2e-5,1.3e3=1300
整数和浮点数在计算机内部存储的方式是不同的,整数运算永远是精确的而浮点数运算则可能会有
四舍五入的误差。

布尔(bool):

  只有真或者假两种状态:True   False     (   1          0)

复数(complex):

复数由实数部分和虚数部分组成,一般形式为x+yj,其中的x是复数的实数部分,y是复数的虚数部分,这里的x和y都是实数。
注意,虚数部分的字母j大小写都可以,
>>> 1.7 + 3.2j == 1.7 + 3.2J
True

 

字符串:

用引号包起来的字符集合

特性:

  1.只能存放一个值

  2.不能改变

  3.从左到右顺序,下标从0开始

字符串的单引号和双引号都无法取消特殊字符的含义,如果想让引号内所有字符均取消特殊意义,在引号前面加r,如name=r'l\thf'

unicode字符串与r连用必需在r前面,如name=ur'l\thf'

字符串操作:

a=‘hello’  其实就是 a =str('hello')

  索引:print(a[0])  取到h     反之 print(a[-1]) 取到o    注:超范围报错

      切片:  print(a[1:3]) 取到el    print(a[1:5:2])以步长2进行切   取到el

str.strip():    去除字符串str左右两边的字符,默认是空格

str.capitalize():    将字符串str中首字母大写

str.upper() :   将str中所有字母大写

str.lower() :   将str中所有字母小写

str.isupper(): 判断str内容是不是全部大写

str.islower():    判断str内容是不是全部小写

str.isspace():   判断str内容是不是全部都是空格

str.istitle():   判断str内容是不是首字母大写

str.title():     将首字母变大写

str.ljust():       列:a.ljust(20,'*')  左对齐一共20位,空位置用*号填上

str.rjust() :             a.ljust(20,'*')  右对齐一共20位,空位置用*号填上

str.swapcase():   将内容大小写翻转

str.center() :   str.center(20,*) 居中显示,左右两边填*,整体长度共20位

str.conut() :   统计字符串中某个字符出现的次数   列:a = "hello"  a.count(‘l’)   输出2

                               a.count('l',0,3)  从h开始到第三位l,  只有一个l,输出1

str.endswith() :  以什么为结尾,必须有参数    a.endswith('a')看字符串a是不是 以a为结尾,返回False,反之为True

str.startswith():   以什么开头  ,同上

str.find():   查找      a.find('a')找字符串a中有没有a,返回负数,失败;a.find('e') 返回 1 ,找到的是 e 在 hello 中的索引位置;有两个相同字符的情况下,找到第一个就停止

str.format(): 格式化字符串  列:  1.  s='name:{},age:{},sex:{}'                

                                                  print(s.format('shuai',23','man'))

                                            2.   s='name:{0},age:{1},sex:{0}'

                                                  print(s.format('qwe','rty'))

                                           3.   s='name:{a},age:{b},sex:{c}'

                                                print(s.format(a='qwe',b='rty',c='fh'))

str.index():   查看字符索引         a.index('o')取到4

str.isdigit():      x='123'   x.isdigit()    判断x内容是不是数字  是的话返回True,反之False

str.replace(): 替换        x.replace('1','8') 将1替换成8;   若有多个1,那么都会替换成8

                                          x.replace('1','8',1)  值替换第一个1变为8

str.split() :                       x=('hello shuai')

                                     print(x.split())  ---->    输出为['hello','shuai']

                                     括号里可以指定字符来切分

len(str) :    字符串长度(有多少字符)

posted @ 2017-06-13 19:52  恸哭女妖  阅读(151)  评论(0)    收藏  举报