Python编程Day5——可变与不可变类型、数据类型整合

一、可变与不可变类型
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)
# ======================================该类型总结====================================
# 存多个值

# 有序

# 可变


posted @ 2019-03-22 18:38  ellay  阅读(221)  评论(0编辑  收藏  举报