Python003

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

1str‘‘

 

 

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)

3for循环

              字符串

循环,将对象中每个元素

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()




以上是关于Python003的主要内容,如果未能解决你的问题,请参考以下文章

[DS+Algo] 003 一维表结构 Python 代码实现

python --003--流程控制while,for

python --003--流程控制while,for

003-python基础-变量

Python编程之算法练习_003

003-Paint_FreePythonGames_Complete