首页 > 代码库 > python数据类型及其操作

python数据类型及其操作

一、数字

常用类型:int,float

age = 10  # int型

salary = 3000.5  # float型

进制:

二进制:

11 = 1*21 + 1*20 = 3

八进制:

11 = 1*81 + 1*80 = 9

十进制:

11 = 1*101 + 1*100 = 11

十六进制:

11 = 1*161 + 1*160 = 17

进制转换:

十进制转为二进制:

age = 10

print(bin(age)) => 0b1010

二进制转为十进制:

1010 = 1*23 + 0*22 + 1*21 + 0*20 = 10

十进制转为八进制:

print(oct(age)) => 0o12

十进制转为十六进制:

print(hex(age)) => 0xa

二、字符串

创建字符串:

>>> name = johnny   # name = str(‘johnny‘)
>>> print(type(name))
str
>>> print(name[0])
j

基本操作:

移除空白

>>> name = input(username:)
>>> print(name)
username:      johnny        
      johnny   
>>> name = name.strip()
>>> print(name)
username: johnny
johnny

>>> name = input(‘username‘).strip()
>>> print(name)

>>> name = ‘***johnny*****‘
>>> print(name.strip(‘*‘))
johnny
>>> print(name.lstrip(‘*‘))
johnny*****
>>> print(name.rstrip(‘*‘))
***johnny

切分

>>> user_info = root:x:0:0::/root:/bin/bash

>>> print(user_info.split(:))

[root,x,0,0,‘‘,/root,/bin/bash]

>>> print(user_info.split(:)[5])

/root
>>> msg = ‘name johnny age 10‘
>>> print(msg.split())
[‘name‘,‘johnny‘,‘age‘,‘10‘]

统计长度

>>> name = johnny

>>> print(len(name))  #相当于 name.__len__()

6

切片

>>> name = hello world

>>> print(name[1:3])

el

>>> print(name[1])

e

>>> print(name[1:9:2])

el o

其它操作

#startswith,endwith

>>> name = johhny_dd

>>> print(name.endswith(dd))

True

>>> print(name.startswith(j))

True


#replace

>>> name =  Today is a good day,choose you like

>>> print(name.replace(Today,Tomorrow))

Tomorrow is a good day,choose you like


#format

>>> print({} {} {}.format(johnny,18,male))

johnny 18 male

>>> print({0} {1} {0}.format(johnny,18,male))

johnny 18 johnny

>>> print({name} {age} {sex}.format(name=johnny,age=18,sex=male))

johnny 18 male
>>> print(NAME:{name} AGE:{age} SEX:{sex}.format(name=johnny,age=18,sex=male))
NAME:johnny AGE:
18 SEX:male #isdigit >>> num = 123 >>> print(num.isdigit()) True who_age = 10 whileTrue: age = input(>>:).strip() if len(age) == 0:continue if age.isdigit(): age = int(age) print(age,type(age))
#find,index,count >>> name = johnny >>> print(name.find(o)) 1 >>> print(name.find(x)) -1 >>> print(name.index(o)) 1 >>> print(name.find(x)) 报错 >>> name = johnny hello >>> print(name.find(o,2,4)) -1 >>> print(name.count(o)) 2 >>> print(name.count(o,0,3)) 1 #join 都必须是字符串 >>> l = [johnny,say,hello,world] >>> print(:.join(l)) johnny:say:hello:world >>> l1 = [johnny,11] >>> print(;,join(l1)) 报错

#center,ljust,rjust,zfill >>> name = johnny >>> print(name.center(30,*)) ************johnny************ >>> print(name.ljust(30,*)) johnny************************ >>> print(name.rjust(30,*)) ************************johnny >>> print(name.zfill(30)) 000000000000000johnny #lower,upper >>> name = JOHNNY >>> print(name.lower()) johnny >>> name = johnny >>> print(name.upper()) JOHNNY #capitalize,title >>> msg = johnny say ji >>> print(msg.capitalize()) Johnny say hi >>> print(msg.title) >>> Johnny Say Hi #isalnum,isalpha >>> name = johnny123 >>> print(name.isalnum()) True >>> print(name.isalpha()) False


#in
>>> msg = ‘my name is johnny‘
>>> print(‘johnny‘ in msg)

>>> msg = ‘hello‘
>>> a,b,c,d,e = msg
>>> print(a,b,c,d,e)
h e l l o

三、列表

创建列表:

name = [‘unknown‘,‘working‘,‘safe‘]

name = list([‘unknown‘,‘working‘,‘safe‘])

基本操作:

索引

>>> name = [unknown,working,safe,4,6,1]

>>> print(name[1])

working

切片

>>> print(name[1:3])

[working,safe]

追加,一次只能追加一个值

>>> name.append(hobby)

>>> print(name)

[unknown,working,safe,4,6,1,hobby]

插入

>>> name = [ruwee,johnny,ruwee,nihao,hello,world]

>>> name.insert(2,mo)

>>> print(name)

[ruwee,johnny,mo,ruwee,nihao,hello,world]

删除 pop

>>> name.pop()      #默认从后面删除,按照索引进行删除

[unknown,working,safe,4,6,1]

>>> name.pop(0)

[working,safe,4,6,1,hobby]

删除 remove  按照值进行删除

>>> name.remove(working)

[safe,4,6,1,hobby]

长度

>>> name = [unknown,working,safe]

>>> print(len(name))

3

包含

>>> print(unknown in name)

True

其它操作

>>> my_friends = [ruwee,johnny,ruwee,nihao,hello,world]

>>> my_friends.clear()  #清空所有

>>> l = my_friends.copy()

>>> print(l)

[ruwee,johnny,ruwee,nihao,hello,world]

>>> print(my_friends.count(ruwee))

2

>>> print(my_friends.extend([how,are,you]))      #一次性添加多个值

[ruwee,johnny,ruwee,nihao,hello,world,how,are,you]

>>> print(my_friends.index(how))

6

>>> print(my_friends.reverse())

[you,are,how,world,hello,nihao,ruwee,johnny,ruwee]

>>> l = [4,6,1,-1]

>>> l.sort()

>>> print(l)

[-1,1,4,6]

>>> data = http://www.mamicode.com/[‘johnny‘,22,[23,1,2]]
>>> name,age,birth = data
>>> print(name)
‘johnny‘
>>> print(age)
22
>>> print(birth)
[23,1,2]


四、字典

创建字典:

person = {‘tom‘:12,‘jerry‘:15,‘peter‘:20}

person = dict({‘tom‘:‘12‘,‘jerry‘:‘15‘,‘peter‘:‘20‘})

基本操作:

索引

>>> print(person[tom])

12

新增

>>> person[height] = 1.8

>>> print(person)

{tom:12,jerry:15,peter:20,height:1.8}


>>> dic = {a:1,b:2}

>>> person.update(dic)

>>> print(person)

{tom:12,jerry:15,peter:20,height:1.8,a:1,b:2}

删除

>>> person.pop(tom)

>>> print(person)

{jerry:15,peter:20,height:1.8}

>>> print(person.pop(sdfdsff,None))

None

获取值

>>> person = {tom:12,jerry:15,peter:20}

>>> print(person.get(tom))

12

>>> print(person.get(sdf))

None

>>> print(person[dsf])

报错

键值对

>>> print(person.keys())

dict_keys([tom,jerry,peter])

>>> print(person.values())

dict_values([12,15,20])

>>> print(person.items())

dict_items([(tom,12),(jerry,15),(peter,20)])

循环

for key,value in person.items():

    print(key,value)

五、集合

集合内可以有多个元素,但是每个元素都必须是不可变类型

集合内的元素唯一

集合是无序的

创建集合:

>>> s = {3,4,7,1}

>>>set__test = set(‘world‘)

>>>print(set_test)

{‘w‘,‘d‘,‘l‘,‘o‘,‘r‘}

>>> s1 = set(‘hello‘)

>>> print(s1)

{‘o‘,‘e‘,‘l‘,‘h‘}

基本操作:

in , not in

>>> pythons = {hello,how,are,you,fine,thank}

>>> print(hello in pythons)

True

| 并集

>>> s1={1,10,11,22}

>>> s2 = {1,11,33}

>>> print(s1 | s2)

{1,33,10,11,22}

& 交集

>>> s1={1,10,11,22}

>>> s2 = {1,11,33}

>>> print(s1&s2)

{1,11}

- 差集

>>> s1={1,10,11,22}

>>> s2 = {1,11,33}

>>> print(s1 - s2)

{10,22}

^ 对称差集

>>> s1={1,10,11,22}

>>> s2 = {1,11,33}

>>> print(s1 ^ s2)

{33,22,10}

父集

>>> s1 = {1,2,3,4}

>>> s2 = {1,2}

>>> print(s1 >= s2)

True

子集

>>> print(s1 <= s2)

False

其它操作

>>> s = set([3,5,9,10])

>>> t = set(Hello)

>>> t.add(x)

>>> s.update([10,37,42])

>>> t.remove(H)

>>> len(s)

六、元祖

元组不可变,主要用来读

创建元祖:

age = (32,12,54,25)

age = tuple((32,12,54,25))

基本操作:

索引

>>> age = (32,12,54,25)

>>> print(age[2])

54

切片

>>> print(age[0:3])

(32,12,54)

长度

>>> print(len(age))

4

包含

>>> print(12 in age)

True

 其它操作

>>> printt(age.index(25))

3

>>> print(age.count(32))

1

七、文件处理

流程:

1.打开文件,得到句柄并且赋给一个变量

2.通过句柄进行文件操作

3.关闭文件

基本操作:

读取文件

f = open(a.txt,r,encoding=utf-8)

res = f.read()

print(res)

print(f.readline())

f.close()

with方式打开的文件在操作结束后可以自动关闭文件

with open(a.txt,r,encoding=utf-8) as f:

    pass

写入文件

f=open(a.txt,w,encoding=utf-8)
f.write(11111\n)
f.writelines([a\n,b\n,c\n])
f.close()

替换文本中的内容

import os
with open(old.txt,r,encoding=utf-8) as read_f,    open(.old.txt.swap,w,encoding=utf-8) as write_f:
    for line in read_f:
        if SB in line:
            line=line.replace(SB,alex)
        write_f.write(line)
os.remove(old.txt)
os.rename(.old.txt.swap,old.txt)

python数据类型及其操作