一、可变与不可变类型
1、可变类原值型:只改变,但id不变,证明就是在改变原值,是可变类型
2、不可变类型:值改变,但id也跟着改变,证明是产生了新的值,是不可变类型
1 x=9
2 print(id(x))
3 x=10
4 print(id(x))
6 l=['a','b']
7 print(id(l))
8 l[0]='A'
9 print(l)
10 print(id(l))
二、整形int
1、用途:用来记录年龄、等级、数量
2、定义方式age=10#age=int(10)
3、数据类型转换x=int('123456')>>>字符串转成整形输出
print(x,type(x))
常用操作:数学运算和比较运算
三、 浮点型float
1、用途:用来记录身高、工资、体重
2、定义方式:salary=10.1#salary=float(10.1)
3、数据类型转换:只能讲包含小数的字符串转成float x=float('3.1')>>>print(x,type(x))
操作方式:数学运算和比较运算
四、字符串str
1、用途:记录描述性质的状态
2、定义方式:在单引号、双引号、三引号内包含一串字符串
msg='hello'#msg=str('hello')
# 数据类型转换:所以类型都可以被str转成字符串类型
# res=str([]1,2,3)>>>print(res,type(res))
3、常用操作+内置方法:优先掌握的操作:*****
3.1、按索引取值(正向取+反向取):只能取msg='hello'>>>print(msg[0],type(msg[0]))
1 '''
2 msg='hello'
3 print(msg[0],type(msg[0]))
4 print(msg[-1])
5 print(msg[-2])#反取向
6 msg[0]='H'#只能取
7 '''
# 3.2、切片(顾头不顾尾,步长)
1 '''
2 msg='hello world'
3 res=msg[0:3:1]#0 1 2
4 print(res)
5 print(msg)
6
7 正向取:
8 msg='hello world'
9 res=msg[:]
10 res=msg[::2]#0 2 4 6 8 10
11 print(res)
12 反向取:
13 msg='hello world'
14 res=msg[-1:-12:-1]
15 res=msg[-1::-1]
16 res=msg[::-1]
17 print(res)
18 '''
# 3.3、长度len
1 '''
2 msg='hello world'
3 print(len(msg))
4 '''
3.4、成员运算in和not in:判断一个子字符是否存在于大的字符串中
1 '''
2 msg='hello world'
3 print(len(msg))
4 '''
3.5、移除空白strip:用来去除字符串左右两边的字符
1 '''
2 msg=' hello '
3 print(msg.strip())
4 5 print('****888eg**on*****'.strip('*'))#只能去除字母左右两边的*
6 print('****+-\、/egon#@%&$*****'.strip('*+-\/、$#@%&'))#去除字母左右两边的符号
7 8 name=input('username>>>:').strip()
9 pwd=input('password>>>:').strip()
10 if name=='egon' and pwd=='123':
11 print('login successful')
12 1else:
13 print('出错了')
14 '''
3.6、切分split,针对有规律的字符串,按照某种分隔符切成列表
1 1 '''info='egon:18:male'
2 2 res=info.split(':')
3 3 print(res,type(res))
4 4 print(res[0],res[1])
5 5
6 6 cmd='get|a.txt|3333'
7 7 print(cmd.split('|',1))'''
8 8 # 用:号做连接符将纯字符串的列表拼接成一个字符串
9 9 # l=['egon','18'','male'']
10 10 # res=l[0]+':'+l[1]+':'+l[2]
11 11 # res=':'.join(l)
12 12 # print(res)
需要掌握的操作
1 # 1、strip、lstrip、rstrip
2 # print('******egon*******'.strip('*'))
3 # print('******egon*******'.lstrip('*'))
4 # print('******egon*******'.rstrip('*'))
5
6 # 2、lower,upper
7 # print('ABC123'.lower())
8 # print('ABC123'.upper())
9
10 # 3、startwith,endwith
11 # msg='alex is dsb'
12 # print(msg.startwith('alex'))
13 # print('msg.endwith('b')')
1 4、format的三种玩法
2 # res = 'my name is %s my age is %s' % ('egon', 18)
3 # print(res)
4 # res='my name is {name} my age is {age}.format(age=18,name='egon')
5 # print(res)
6
7 # 了解
8 # res = 'my name is {} my age is {}'.format('egon',18)
9 # res = 'my name is {0} my age is {1}'.format('egon',18)
10 # print(res)
1 5、split,rsplit
2 # msg='a:b:c:d'
3 # print(msg.split(':',1))
4 # print(msg.rsplit(':',1))
1 6、replace
2 # msg='kevin is kievn is asdjk'
3 # res=msg.replace('kivin','as',1)
4 # print(res)
1 7、isdigit
2 # print('123123'.isdigit()) #如果字符串是由纯数字组成的,则返回Ture
3 # print('123123 '.isdigit()) #Flase
4 # print('123123asdc'.isdigit()) #Flase
5 # print('123123.2'.isdigit()) #Flase
6 # score=input('>>>:').strip() #score='sdjsfjskk'
7 # if score.isdigit():
8 # score=int(score)
9 # if score>=90:
10 # print('优秀')
11 # else:
12 # print('差')
13 # else:
14 # print('必须输入数字')
五、字符串str
1、用途:记录描述性质的状态
2、定义方式:在单引号、双引号、三引号内包含一串字符串
msg='hello'#msg=str('hello')
# 数据类型转换:所以类型都可以被str转成字符串类型
# res=str([]1,2,3)>>>print(res,type(res))
3、常用操作+内置方法:优先掌握的操作:*****
3.1、按索引取值(正向取+反向取):只能取msg='hello'>>>print(msg[0],type(msg[0]))
1 '''
2 msg='hello'
3 print(msg[0],type(msg[0]))
4 print(msg[-1])
5 print(msg[-2])#反取向
6 msg[0]='H'#只能取
7 '''
3.2、切片(顾头不顾尾,步长)
1 '''
2 msg='hello world'
3 res=msg[0:3:1]#0 1 2
4 print(res)
5 print(msg)
6
7 正向取:
8 msg='hello world'
9 res=msg[:]
10 res=msg[::2]#0 2 4 6 8 10
11 print(res)
12 反向取:
13 msg='hello world'
14 res=msg[-1:-12:-1]
15 res=msg[-1::-1]
16 res=msg[::-1]
17 print(res)
18 '''
3.3、长度len
1 ''' 2 msg='hello world' 3 print(len(msg)) 4 '''
3.4、成员运算in和not in:判断一个子字符是否存在于大的字符串中
1 '''
2 msg='kexin is dsb'
3 print('kevin'in msg)
4 print('dsb'in msg)
5 print('aaa' not in msg)
6 print(not 'aaa' in msg)
7 '''
3.5、移除空白strip:用来去除字符串左右两边的字符
1 '''
2 msg=' hello '
3 print(msg.strip())
4
5 print('****888eg**on*****'.strip('*'))#只能去除字母左右两边的*
6 print('****+-\、/egon#@%&$*****'.strip('*+-\/、$#@%&'))#去除字母左右两边的符号
7
8 name=input('username>>>:').strip()
9 pwd=input('password>>>:').strip()
10 if name=='egon' and pwd=='123':
11 print('login successful')
12 else:
13 print('出错了')
14 '''
3.6、切分split,针对有规律的字符串,按照某种分隔符切成列表
1 '''info='egon:18:male'
2 res=info.split(':')
3 print(res,type(res))
4 print(res[0],res[1])
5
6 cmd='get|a.txt|3333'
7 print(cmd.split('|',1))'''
1 用:号做连接符将纯字符串的列表拼接成一个字符串
2 # l=['egon','18'','male'']
3 # res=l[0]+':'+l[1]+':'+l[2]
4 # res=':'.join(l)
5 # print(res)
3.7、循环
# for item in 'hello':
# print(item)
# 需要掌握的操作
1 # 1、strip、lstrip、rstrip
2 # print('******egon*******'.strip('*'))
3 # print('******egon*******'.lstrip('*'))
4 # print('******egon*******'.rstrip('*'))
1 # 2、lower,upper 2 # print('ABC123'.lower()) 3 # print('ABC123'.upper())
1 # 3、startwith,endwith
2 # msg='alex is dsb'
3 # print(msg.startwith('alex'))
4 # print('msg.endwith('b')')
1 # 4、format的三种玩法
2 # res = 'my name is %s my age is %s' % ('egon', 18)
3 # print(res)
4 # res='my name is {name} my age is {age}.format(age=18,name='egon')
5 # print(res)
6
7 # 了解
8 # res = 'my name is {} my age is {}'.format('egon',18)
9 # res = 'my name is {0} my age is {1}'.format('egon',18)
10 # print(res)
11 # 5、split,rsplit
12 # msg='a:b:c:d'
13 # print(msg.split(':',1))
14 # print(msg.rsplit(':',1))
1 # 6、replace
2 # msg='kevin is kievn is asdjk'
3 # res=msg.replace('kivin','as',1)
4 # print(res)
1 # 7、isdigit
2 # print('123123'.isdigit()) #如果字符串是由纯数字组成的,则返回Ture
3 # print('123123 '.isdigit()) #Flase
4 # print('123123asdc'.isdigit()) #Flase
5 # print('123123.2'.isdigit()) #Flase
6 # score=input('>>>:').strip() #score='sdjsfjskk'
7 # if score.isdigit():
8 # score=int(score)
9 # if score>=90:
10 # print('优秀')
11 # else:
12 # print('差')
13 # else:
14 # print('必须输入数字')
1 # 了解的操作
2 #1、find,rfind,index,rindex,count
3 # print('123 ke123ke'.find('ke'))
4 # print('123 ke123ke'.rfind('ke'))
5 # print('123 ke123ke'.index('ke'))
6 # print('123 ke123ke'.rindex('ke'))
7
8 # print('123 ke123ke'.find('xxxx'))
9 # print('123 ke123ke'.index('xxxx'))
10 # print('123 ke123ke'.count('ke',0,6))
11
12 #2、center,ljust,rjust,zfill
13 # print('egon'.center(50,'*'))
14 # print('egon'.ljust(50,'*'))
15 # print('egon'.rjust(50,'*'))
16
17 # print('egon'.rjust(50,'0'))
18 # print('egon'.zfill(50))
19
20 #3、captalize,swapcase,title
21 # print('abcdef dddddd'.capitalize())
22 # print('abcAef dddddd'.swapcase())
23 # print('abcAef dddddd'.title())
24
25 #4、is数字系列
26 num1=b'4' #bytes
27 num2='4' #unicode,python3中无需加u就是unicode
28 num3='四' #中文数字
29 num4='Ⅳ' #罗马数字
30
31 # bytes与阿拉伯数字组成的字符串
32 # print(num1.isdigit())
33 # print(num2.isdigit())
34 # print(num3.isdigit())
35 # print(num4.isdigit())
36
37 # 阿拉伯数字组成的字符串
38 # print(num2.isdecimal())
39 # print(num3.isdecimal())
40 # print(num4.isdecimal())
41
42 # 阿拉伯数字\中文\罗马组成的字符串
43 # print(num2.isnumeric())
44 # print(num3.isnumeric())
45 # print(num4.isnumeric())
46
47 #5、is其他
# ======================================该类型总结====================================
# 存一个值
# 有序
# 不可变
# msg=' hello '
# msg.strip()
# print(msg)
六、列表list
1、用途:按照位置记录多个值,索引对应值
2、定义方式:在[]内用逗号分隔开多个任意类型的值
1 # l=['a',11,11.3]# l=list['a',11,11.3]
2 # 数据类型转换:但凡能够被for循环的数据类型都可以传给list,被其转换成列表
3 # res=list('hello')# >>>'h','e','l','l','o'
4 # res=list(123) #不可以被for循环
5 # print(res)
# res=list({'a':1,'b':2,'c':3})
# print(res)
3、常用操作+内置的方法(优先掌握的操作)
3.1、按照索引存取值(正向存取+反向存取):即可存也可取
1 # l=['a','b','c','d','e']
2 # print(l[0])
3 # print(l[-1])
4 # print(id(l))
5 # l[0]='A'
6 # print(id(l))# 输出id相同,属于可变型
# 强调--------!!!!!!!:对于不存在的索引会报错
1 # l[5]='AAAAA'# 报错
2 # dic={"k1":111}
3 # dic['k2']=2222
4 # print(dic)
3.2、切片(顾头不顾尾,步长)
1 # l=['a','b','c','d','e'] 2 # print(l[1:4]) 3 # print([::-1])
3.3、长度
1 # l=['a','b','c','d','e'] 2 # print(len(l))
3.4、成员运算in和not in
1 # l=['a','b','c','d','e'] 2 # print('a'in l)
3.5、追加与insert
1 # l=['a','b','c','d','e']
2 # l.append('xxx')
3 # l.append('yyy')
4 # print(l)
5 # l.insert(0,'xxx')
6 # print(l)
3.6、删除
1 # l=['a','b','c','d','e']
2 # del是一种通用的删除操作,没有返回值
3 # del l[0]
4 # print(l )
5
6 # dic={'k1':1}
7 # del dic['k1']
8 # print(dic)
9
10 # l.remove# (指定要删除的那个元素,没有返回值)
11 # res=l.remove('b')
12 # print(l)
13 # print(res)
14
15 # l.pop# (指定要删除的那个元素的索引,可以返回刚刚那个删除掉的元素)
16 # l=['a','b','c','d','e']
17 # l.pop(-1)
18 # res=l.pop(1)
19 # print(l)
20 # print(res)
3.7、循环
1 # l=['a','b','c','d','e']
2 # for item in l:
3 # print(item)
4 # 练习:队列--先进先出
5 # l=[]
6 # 入队
7 # l.append('first')
8 # l.append('scecond')
9 # l.append('ehird')
10 # print(l)
11 #
12 # 出队
13 # print(l.pop(0))
14 # print(l.pop(0))
15 # print(l.pop(0))
16
17 # 堆栈---先进后出
18 # 需要掌握的操作
19 # l=['aaa','bbb',345]
20 # l.clear()
21 # l.append([1,2,3])
22 #
23 # for i in [1,2,3]:
24 # l.append(i)
25 # l.extend([1,2,3])
26 #
27 #
28 # l.reverse()
29 # 只有在类中索引元素都是同种类型的情况下才能使用sort排序
30 # l=[1,3,2]
31 # l.sort(reverse=True)
32 #
33 # l=['a','e','f','d']
34 # l.sort()
35 # print(l)
# ======================================该类型总结====================================
# 存多个值
# 有序
# 可变