Python003

数据类型

一、概述

Python中的数据类型,擅长领域不同。

要熟记各数据类型的结构。

1.整数

int

1 v = 15
2
3 print(v)
4
5 #当前十进制用二进制表示时,最少使用的位数
6
7 data = v.bit_length()
8
9 print(data)

2.布尔值

v1 = True  # 1 ‘shjag’

v2 = False  # 0 ‘’

3.字符串

str

1 v = ‘I am your father, son…#%¥#@1a’
2 print(v)

4.列表

list

v = [‘a’,’b’,’c’]
print(v)

5.元组

tuple

v = (11,"fff",334,4,99,10)
print(v)

6.字典

v = {‘key’:‘value’}

由键:值这样的对构成。字典是无序的。主要用来存储数据。

字典的所有操作都紧紧围绕键key。

小王整理的小表1:


int


bool


str


list


tuple


dict


class

method


bit_length()



逻辑运算



upper()、lower()



strip()



replace()



split()



capitalize()



isdecimal()



append()



insert()



reverse()



get()



items()



keys()



values()



public

method


len()


×


×






v[ ][ ]


×


×






for


×


×





小王整理的小表2:


str


list


tuple


dict


add


×


append() insert()


×


v.[‘key1’]=value


del


del(v)


del(v[2])

del [2:4]

del[0:4:2]


×


del v[‘key1’]


change


replace()

upper()、lower()

strip()

split()

capitalize()


v[0]

v[2:4]

reverse()


×


v.[‘key1’]=value


search


v[0]

v[0:2]

v[0:4:2]


v[0]

v[2:4]

v[2:4:2]


v[0]

v[2:4]

v[0:4:2]


v.get()

v.keys() v.values() v.items(

注:

逻辑运算:and or not

字符串类功能特点:字符串本身不发生变化。

列表:可以看成可变的容器。对它的操作会导致它本身发生变化。

元组:不可变的列表。增删改均被封印,只可以查看。

字典:字典的类功能基本是基于自身开发的,表中仅列举了4个方法。这也意味着它的公共功能也与其他数据类型在语法上的差异。

public method:对复杂的数据类型均可以进行操作,但使用时不同数据类型的使用方式略有不同,但本质都是一样的。索引中v[ ][ ]顾头不顾尾。第一个元素索引下标是0,最后一个元素索引下标是-1。

二、详解

1.class method

1)str‘‘

①upper() lower()

 1 v1 = "wang"
 2
 3 value = v1.upper()
 4
 5 print(v1,value)
 6
 7
 8
 9 v1 = "waNg"
10
11 value = v1.lower()
12
13 print(v1,value)

②capitalize()

1 v1 = "waNg"
2
3 value = v1.capitalize()
4
5 print(v1,value)         

③strip  lstrip  rstrip

1 v1 = " asd fasdf "
2
3 value = v1.strip()
4
5 print(v1)
6
7 print(value)

eg:

 1 name = input("Please input a name :")
 2
 3 value = name.strip()
 4
 5 if value == ‘wang‘:
 6
 7     print(‘Success‘)
 8
 9
10
11 v1 = " asd fasdf "
12
13 value = v1.lstrip()
14
15
16
17 v1 = " asd fasdf "
18
19 value = v1.rstrip()     

④replace

1 v1 = "SCII do something in standard the first time, but do something in standard is not easy…"
2
3 value = v1.replace("standard","**")
4
5 data = value.replace(‘the first time‘,‘#‘)
6
7 print(data)     

⑤split

1 v1 = "SCII do something in standard the first time, but do something in standard is not easy…"
2
3 value = v1.split(‘the first time‘) # 列表类型
4
5 value = v1.split(‘standard‘) # 列表类型
6
7 value = v1.split(‘standard‘,2) # 列表类型
8
9 print(value)

小王解释:输出结果是多个字符串,要一起显示出来,不能是字符串str,所以用列表list。没键值对不用能用字典dict,有没必要用元组tuple。

⑥判断当前字符串中是否全部都是数字

1 v = "123"
2
3 val = v.isdecimal()
4
5 print(val)

Example:

 1 count = 0
 2
 3 v = "abc123fsdfa3f"
 4
 5 for item in v:
 6
 7     if item.isdecimal():
 8
 9         count += 1
10
11 print(count)

2)列表[ ]

①增

append()末尾插,在列表尾部追加一个值,修改本身值

1 v = [‘a‘,‘b‘,‘c‘]
2
3 v.append(‘Fuck!‘)
4
5 print(v)

Example:

 1 v = []
 2
 3 while True:
 4
 5     name = input("请输入用户名:")
 6
 7     if name == ‘q‘ or name == "Q":
 8
 9         break
10
11     v.append(name)
12
13     print(v) 
 1 v = []
 2
 3 while True :
 4
 5     name = input("Please input a name :")
 6
 7     if name.lower() == ‘q‘ :
 8
 9         break
10
11     v.append(name)
12
13     print(v) 

insert()随意插,在指定位置插入数据

1 v = [‘a‘,‘b‘,‘c‘,‘d‘]
2
3 v.insert(3,‘Fuck!‘)
4
5 print(v)

把连续位置元素替换为字符串

1 v = [‘a‘,‘b‘,‘c‘,‘d‘]
2
3 v[1:3] = ["Fuck!"]
4
5 print(v)             

再次强调:

字符串的操作是新创建字符串

列表、字典则是直接对本身进行操作

②删

归在了public method里

③改

替换

1 v = [‘张勤学‘,‘成大经‘,‘成绩‘,‘刘龙华‘]
2
3 v[3] = "吴国胜"
4
5 print(v)

reverse()反转

1 v = [‘a‘,‘b‘,‘c‘,‘d‘]
2
3 v.reverse()
4
5 print(v)

④查

归在了public method里

3)元组()

4)字典{}

①增

v[‘kk1’] = 666

key不存在,则创建键值对

Example:

 1 user_list = [
 2
 3     {‘name‘:‘老头‘,‘age‘: 18},
 4
 5     {‘name‘:‘流量‘,‘age‘: 66},
 6
 7     {‘name‘:‘wifi‘,‘age‘: 99},
 8
 9 ]
10
11
12
13 n = input("请输入姓名:")
14
15 a = input("请输入年龄:")
16
17 temp = {‘name‘: n, ‘age‘: int(a)}
18
19 user_list.append(temp)
20
21 for item in user_list:
22
23     print(item[‘name‘],item[‘age‘])

②删

del v[‘key1’]

③改

v[‘key1’] = 666

key存在则改

④查

v.get()            v.keys()          v.values()        v.items()

根据key获取对应的值,key不存在默认取None

val = v.get(‘key1‘)

print(val)

2.公共功能

1)长度的计算

字符串

1 v = "徐芳名sdf"
2
3 value = len(v)
4
5 print(value)

列表

1 v = [‘a‘,‘b‘,‘c‘,‘d‘]
2
3 a = len(v)
4
5 print(a)

元组

1 v = (‘a‘,‘b‘,‘c‘,‘d‘)
2
3 a = len(v)
4
5 print(a)

字典

 1 #查键值对的个数
 2 v = {
 3 ‘key1‘ : ‘value1‘,
 4 ‘key2‘ : ‘value2‘,
 5 ‘key3‘ : ‘value3‘
 6 }
 7
 8 val = len(v)
 9
10 print(val)

2)索引的操作

字符串str

根据“索引”“下标”

-  单个值:v[0]

-  多个值:v[起始位置:结束位置]

-  多个值:v[起始位置:结束位置:步长]

1 v = "ASCII第一次以规范标准的型态发"
2
3 value = v[0]
4
5 print(value)
 1 v = "ASCII第一次以规范标准的型态发"
 2
 3 value = v[0:5] # 0 1 2 3 4
 4
 5 value = v[4:5] #  4
 6
 7 value = v[4:-1] #  4
 8
 9 value = v[4:] #  4
10
11 print(value) 
1 v = "ASCII第一次以规范标准的型态发"
2
3 value = v[1:15:3]
4
5 print(value) 
1 v = "ASCII第一次以规范标准的型态发"
2
3 le = len(v) - 1
4
5 value = v[le]
6
7 print(value)

Example:

 1 v = "ASCII第一次以规范标准的型态发"
 2
 3 length = len(v)
 4
 5 index = 0
 6
 7 while True:
 8
 9     data = v[index]
10
11     print(data)
12
13     index += 1
14
15     if index == length:
16
17         break
18
19
20
21 v = "ASCII第一次以规范标准的形态"
22
23 i = 0
24
25 length = len(v)
26
27 while i <= length - 1 :
28
29     a = v[i]
30
31     print(a)
32
33     i += 1
34
35 else:
36
37     print(‘End‘)

注:字符串通过索引修改不了内容

字典和列表的元素可以被修改

      列表list

和字符串相似,可以通过索引取值

增,用到类方法

单个删除

1 v = [‘a‘,‘b‘,‘c‘,‘d‘]
2
3 del(v[3])
4
5 print(v)

多个删除

1 v = [‘a‘,‘b‘,‘c‘,‘d‘]
2
3 del v[2:4]
4
5 print(v)

多个删除,带步长

1 v = [‘a‘,‘b‘,‘c‘,‘d‘]
2
3 del v[1:4:2]
4
5 print(v)

单个替换

1 v = [‘a‘,‘b‘,‘c,‘d‘]
2
3 v[3] = "e"
4
5 print(v) 

多个替换

1 v = [‘a‘,‘b‘,‘c,‘d‘]
2
3 v[2:3] = ["eat"]
4
5 print(v)

注:此处增时要给列表,给字符串会导致循环添加

单个取值

1 v = [‘a‘,‘b‘,‘c‘,‘d‘]
2
3 a = v[2]
4
5 print(a)

多个取值

1 v = [‘a‘,‘b‘,‘c‘,‘d‘]
2
3 a = v[1:3]
4
5 print(a)

多个取值,带步长

1 v = [‘a‘,‘b‘,‘c‘,‘d‘,‘e‘]
2
3 a = v[1:4:2]
4
5 print(a)

元组

不可增删改,受保护的列表。仅保护一层,再深一层可能被改,比如元组里有列表。其他功能基本和列表一样。可以计算长度len(),可查看内容。

v[0]

v[0:4]

v[0:4:2]

print(v[0])

print(v[0:4])

print(v[0:4:2])

字典

字典的增删改查必须用到键key

key不存在,则创建键值对

v[‘kk1‘] = 666

del v[‘key1‘]

key存在,则更新值

v[‘key1‘] = 666

val = v[‘key1‘]

print(val)

3)for循环

字符串

循环,将对象中每个元素

1 v = "ASCII第一次以规范标准的型态发"
2
3 for i in v:
4
5     print(i)

列表

1 v = [11,22,33,44,"蒋毅"]
2
3 for i in v:
4
5     print(i)

元组

1 v = (11,22,33,44,"蒋毅")
2
3 for i in v:
4
5      print(i)

字典

 1 v = {
 2  ‘key1‘ = ‘value1‘,
 3  ‘key2‘ = ‘value2‘,
 4  ‘key3‘ = ‘value3‘,
 5  ‘key4‘ = ‘value4‘
 6 }
 7
 8 for i in v:
 9
10        print(i)
11
12
13
14 for i in v.keys():
15
16        print(i)
17
18
19
20 for i in v.values():
21
22        print(i)
23
24
25
26 key,value
27
28 for i in v.keys():
29
30        print(i,v.[i])
31
32 for a,b in v.items():
33
34        print(a,b)

三、嵌套

列表、元组、字典类型可以相互嵌套

1.列表

1. 列表中的元素可以是:数字,字符串,布尔值,列表

 1 v = [11,22,[6,"88991",7],33,True,"蒋毅",55]
 2
 3 val = v[2][1][-1]
 4
 5 print(val)
 6
 7
 8
 9 v[3] = 66
10
11 print(v)
12
13
14
15 v[2][2] = 77
16
17 print(v)
18
19
20
21 v[2][1] = 666
22
23 print(v)
24
25
26
27 v[5] = v[5].replace(‘蒋‘,‘江‘)
28
29 v[5] = "江毅"
30
31 print(v)
32
33
34
35 v = "蒋毅"
36
37 v = v.replace(‘蒋‘,‘江‘)
38
39 print(v)

2.元组

可以进行嵌套

1 v = (11,22,[11,22,33],33,(9,1,2,"alex"),44)
2
3 v[2][1] = "xxxxx"
4
5 print(v)
6
7 v[2].append("asdasd")
8
9 print(v)

3.字典

 1 val = {
 2
 3     ‘k1‘: 123,
 4
 5     ‘k2‘: "asdf",
 6
 7     ‘k3‘: True,
 8
 9     ‘k4‘: [11,22,33],
10
11     ‘k5‘: (1,2,3),
12
13     ‘k6‘: {
14
15         ‘kk1‘:‘vv1‘,
16
17         ‘kk2‘:‘vv2‘,
18
19     },
20
21     ‘k7‘: [1,2,(8,6,2),{"k111":‘vvv1‘},5]
22
23 }
24
25
26
27 del val[‘k6‘][‘kk2‘]
28
29 val[‘k7‘][2] = 666
30
31 val[‘k7‘][3][‘k222‘] = ‘vv2‘

四、相互转化

1.str<一>int

a = int(‘0’)

type(a)

例:

加法计算器

1 v1 = input("请输入第一个值:")
2
3 v2 = input("请输入第二个值:")
4
5 v3 = int(v1) + int(v2)
6
7 print(v3)

2.bool<一>iint

False = 0

True = 1

所有非零整数都是True

例:

1 v = 1
2
3 val = bool(v)
4
5 print(val)

3.bool<一>istr

False = ‘’

True = ‘a’

所有非空str都是True

1 v = " "
2
3 val = bool(v)
4
5 print(val)

4.面试题:

题1:

1 a = 1 == 1 or 2 > 3
2
3 print(a)

题2:

1 a = False or 2 > 3
2
3 print(a)

题3:

1 a = 9 or 2 > 3
2
3 a = "asdf" or 2 > 3
4
5 a = 0 or 6
6
7 print(a) 

五、延伸拓展

方法

属性

小王整理的小表1:


int


bool


str


list


tuple


dict


class

method


bit_length()



逻辑运算



upper()、lower()



strip()



replace()



split()



capitalize()



isdecimal()



append()



insert()



reverse()



get()



items()



keys()



values()



public

method


len()


×


×






v[ ][ ]


×


×






for


×


×





小王整理的小表2:


str


list


tuple


dict


add


×


append() insert()


×


v.[‘key1’]=value


del


del(v)


del(v[2])

del [2:4]

del[0:4:2]


×


del v[‘key1’]


change


replace()

upper()、lower()

strip()

split()

capitalize()


v[0]

v[2:4]

reverse()


×


v.[‘key1’]=value


search


v[0]

v[0:2]

v[0:4:2]


v[0]

v[2:4]

v[2:4:2]


v[0]

v[2:4]

v[0:4:2]


v.get()

v.keys() v.values() v.items()

时间: 2024-10-14 11:27:14

Python003的相关文章