python(二)数据类型

时间:2023-11-21 16:34:20

一、整数

创建方法

i = 10

i = int(10)

i = int("10",base=2)  #“”中是几进制的表示,base是选择要表示的进制,如base=2,用2进制的表示,那么“10”就是2进制的表示码

>>> int.bit_length(10)  #求数字用2进制表示最少用几位,如10的二进制:1010,需要4位

4

>>> bin(10)

'0b1010'

>>> int.__abs__(-10)     #求一个数的绝对值,也可用abs()来表示

10

>>> abs(-10)

10

>>> i.__add__(15)        #求i+15的和

25

>>> a = 98

>>> a.__divmod__(10)     #相除,得到商和余数组成的元组,在web页面分页的时候会用到。98篇文章,每页10篇,通过这个函数,得到元组,判断第二位,如果是0就是前边那个数的页面就能显示得了,如果不等于0,那么就得前边的数加1页才能显示完整。

(9, 8)

>>> divmod(a,10)

(9, 8)

>>> i.__float__()        #把init转换成float类型

10.0

>>> age = 18

>>> age.__format__("10") #格式化输出,10表示占10个字符,不够的用空格补齐

'        18'

>>> age.__neg__()        #求整数的负数

-18

总结:

1、创建整数的三种方式

2、__divmod__/__hash__/__index__/

二、长整型

如:1919191919218310238

功能与整数基本相同

三、浮点型

如:3.15

功能与整数基本相同

四、字符串

创建方式

str1 = 'biubiu'

str1 = ("biubiu")

功能如下:

>>> name = "didi"

>>> name.capitalize()          #首字母大写

'Didi'

>>> name.center(20,"*")     #20表示占多少个字符,将字符串居中显示,“*”星号表示,如果不足20个字符,则其他用星号来表示。“”双引号中可以是任意字符,如不加,默认用空格表示。

********didi********'

>>> name

'sdjfskdfjskjfskjfjsfjjj'

>>> name.count("s")           #看name中包含多少个s

5

>>> name.count("s",0,10)   #看name[0:10]中包含多少个s

3

>>> name.endswith("jjj")      #以什么什么结尾,如果是以jjj结尾,即返回True,否则False。

True

>>> name.endswith("k")

False

def expandtabs(self, tabsize=8): #把tab键转换成空格,默认是8个空格

如:

name.expandtabs(10)          #tab转换成10个空格

>>> name = "test"

>>> name.find('e')                #找字符的下标,如果字符在字符串中存在,则返回下标值,如果不存在,则返回-1.如果查找多个字符,以返回第一个字符的下标,如:name.find('didi')   返回d的下标

1

>>> name.find("d")

-1

>>> name = "i am {0}, age {1}"

>>> name.format("dididi",22)       #字符串格式化

'i am dididi, age 22'

>>> name = "i am {jj}, age {kk}"

>>> name.format(jj="dididi",kk=22)

'i am dididi, age 22'

>>> list = [222,333]                     #字符串格式化,列表传参

>>> name = "i m {0},age {1}"

>>> name.format(*list)

'i m 222,age 333'

>>> dic = {"ss":123,"dd":456}     #字符串格式化,字典传参。

>>> name = "i m {ss},age {dd}"

>>> name.format(**dic)

'i m 123,age 456'

以上需要注意的是:传入列表的时候是一个*,传入字典时是两个*

>>>name.index("d")                   #返回字符的下标,与find类似。唯一的区别是find找不到返回-1,index找不到会报错。

>>> name = "test"

>>> name.isalnum()                   #字符是否是字母和数字。是则返回True,否则返回False。

True

>>> name = "***"

>>> name.isalnum()

False

>>>name.isalpha()                    #是否是字母

>>>name.isdigit()                      #是否是数字

>>>name.islower()                    #是不是小写

>>>name.isspace()                   #是不是空格

>>>name.istitle()                       #是不是标题

>>>name.title()                          #字符串转换成标题(单词首字母大写)

>>> name = "di di"

>>> name.title()

'Di Di'

>>> name = "Di Di"                   #单词首字母大写,则就是标题

>>> name.istitle()

True

>>>name.isupper()                   #是否全部大写

>>>name.join()                          #连接

>>> list = ["di","di"]

>>> "___".join(list)

'di___di'

>>> name = "Hello,World!"       #左对齐

>>> name.ljust(30,"=")

'Hello,World!=================='

>>>s.lower()                             #字母全部变小写

>>> name = "DiDi1"

>>> name.lower()

'didi1'

>>>name.swapcase()               #小写变大写,大写变小写

>>>name.lstrip()                       #左边空白移除

>>>name.partition()                  #

>>> name = "hello,world"

>>>

>>>

>>> name.partition("ll")             #把字符串分成了三部分,ll一部分,ll前边,和后边一部分

('he', 'll', 'o,world')

>>>name.replace()                   #替换

>>> name = "hello,world"

>>> name.replace("l","L")         #会找里边所有符合的字符替换

'heLLo,worLd'

>>>name.find()                        #从右边开始找,字符的下标

>>>name.startswith                  #以什么开始

五、列表

如:[111,222,333]、['abc','bbb']

功能如下:

list.append()                              #追加到列表

>>> li = [11,22,33]

>>> li.count(22)                      #22在列表中出现的次数

1

>>>li.extend()                         #扩展列表

>>> li = [11,22,33]

>>> li.extend(['abd','jjj'])          #扩展列表li,添加abd,jjj

>>> li

[11, 22, 33, 'abd', 'jjj']

>>>li.index()                           #返回第一次出现的这个值的下标,如果这个值不存在,则触发一个异常(报错)

>>>li.insert()            #插入

>>> li.insert(0,'jjjlkjj')              #在0的下标处插入

>>> li

['jjjlkjj', 11, 22, 33, 'abd', 'jjj']

>>>li.pop([index])       #删除并返回指定下标的值,如果没有,则最后一个

>>> li

['jjjlkjj', 11, 22, 33, 'abd', 'jjj']

>>> li.pop()                         #不指定则删除最后一个,并返回

'jjj'

>>> li

['jjjlkjj', 11, 22, 33, 'abd']

>>> li.pop(0)                        #指定删除下标为0的值

'jjjlkjj'

>>> li

[11, 22, 33, 'abd']

可以这样使用:

>>> name = li.pop()

>>> name

'abd'

>>>li.remove(22)                   #删除指定的值,只删除第一个匹配的

>>> li = [22,22,33,3,333]

>>> li.remove(22)

>>> li

[22, 33, 3, 333]

>>> li

[22, 33, 3, 333]

>>> li.reverse()                     #把原列表反转

>>> li

[333, 3, 33, 22]

li.sort()                                 #排序,字母按ASCII来比较,数字按大小比较

六、元组

如:(11,22,33)

元组的元素不能被修改,但元组元素的元素是可以修改的。

功能与列表基本相同。

七、字典

如:{"name":"yang","age":12}

功能如下:

dic.clear()                            #清除内容

dic.copy()                            #浅拷贝

>>> dic = {'k1':1234}

>>> dic.get("k1")                 #获取key的value,如果没有这个值,就会返回None,也可以dic.get("k2","ok")这样如果没有这个值,就会返回ok。

1234

>>> dic.get("k2")

>>> print (dic.get("k2") )

None

>>> print (dic.get("k2","ok"))

ok

判断数据类型:

type(name_dic) is dict        #是字典则返回True,不是则False

type(name_dic) is int