zoukankan      html  css  js  c++  java
  • 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)
    # ======================================该类型总结====================================
    # 存多个值

    # 有序

    # 可变


  • 相关阅读:
    pidgin的未认证解决办法
    题解【洛谷P1074】[NOIP2009]靶形数独
    题解【洛谷P1315】[NOIP2011]观光公交
    题解【BZOJ4145】「AMPPZ2014」The Prices
    题解【洛谷P4588】[TJOI2018]数学计算
    题解【洛谷P3884】[JLOI2009]二叉树问题
    题解【SP8002】HORRIBLE
    树链剖分学习笔记
    题解【洛谷P1807】最长路_NOI导刊2010提高(07)
    题解【洛谷P1995】口袋的天空
  • 原文地址:https://www.cnblogs.com/zhouqinmei/p/10580286.html
Copyright © 2011-2022 走看看