数字、字符串、列表的常用操作

可变不可变类型 

可变类型:值改变,id不变-------改变原值

不可变类型:值改变,id-------生成新的值

不可变类型
X=9
print(id(x))   # 140708793148496
X=10
print(id(x))   # 140708793148528

可变类型
l = [‘a’,’b’,’c’]
print(id(l))   # 2177056384136
l[0]=’A’
Print(l,id(l)) # ['A', 'b', 'c']  2177056384136

数字类型

整型int

1、用途:记录年龄、等级、数量

2、定义方式

  age = 10   # age=int(10)

  数据类型转换: 只能将纯数字的字符串转成int

x=int('123456')
    print(x,type(x))  #123456 <class 'int'>
    x=int('12.3')     # Value Error : invalid literal for int() with base 10: '12.3'

浮点型float

1、用途:记录身高、薪资、体重

2、定义方式

  salary = 10.1   # salary=float(10.1)

  数据类型转换: 只能将包含小数的字符串转成

x=float('3.1')
print(x,type(x)) # 3.1 <class 'float'>

 ----------------------------------------------------------------------------------------------------------

数字类型总结:

1、存一个值

2、不可变类型

字符串类型

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]))
print(msg[-1])
print(msg[-2])
  h <class 'list'>
  o
  l msg[0]='H' # 只能取 TypeError: 'str' object does not support item assignment 3.2、切片(顾头不顾尾,步长) msg='hello world' res=msg[0:3:1] # 0 1 2 print(res) print(msg)
  hello world
  hel res=msg[:] res=msg[::2] # 0 2 4 6 8 10 print(res)
  hlowrd msg='hello world' res=msg[-1:-12:-1] res=msg[-1::-1] res=msg[::-1] print(res)   dlrow olleh
3.3、长度len msg='hello world' print(len(msg))
  11 3.4、成员运算in和not in:判断一个子字符串是否存在于大字符串中 msg='kevin is dsb' print('kevin' in msg) print('dsb' in msg) print('aaa' not in msg) print(not 'aaa' in msg) #取反
  True
  True
  True
  True 3.5、移除空白strip: 用来去除字符串左右两边的字符,不指定默认去除的是空格 #strip 清除 msg=' sies ' res=msg.strip() print(res,id(res)) print(msg,id(msg))
  sies 1352119010056
      sies   1352119034864 print('******eg**on*****'.strip('*'))   eg**on print('***+-/***egon#@$*****'.strip('*+-/#@$'))
  egon name=input('username>>>: ').strip() # name='egon ' pwd=input('password>>>: ').strip() if name == 'egon' and pwd == '123': print('login successful') else: print('输错了。。。')
  清除输入词前后的空格 3.6、切分split:针对有规律的字符串,按照某种分隔符切成列表 info='egon:18:male' res=info.split(':') print(res,type(res)) print(res[0],res[1])
   cmd='get|a.txt|33333' print(cmd.split('|',1)) 用:号作连接符号将纯字符串的列表拼接成一个字符串 l=['egon', '18', 'male'] # 'egon:18:male' res=l[0]+':'+l[1]+':'+l[2] res=':'.join(l) print(res) 3.7、循环 for item in 'hello': print(item)

 ****

1、strip,lstrip,rstrip
print('******egon***********'.strip('*'))
print('******egon***********'.lstrip('*'))
print('******egon***********'.rstrip('*'))

2、lower,upper
'Abc123'.lower()  # 大小字母变小写
'Abc123'.upper()  # 小写字母变大写
'Abc123'.swapcase()  # 大小写字母反转

3、startswith,endswith
msg='xxx is dsb'
print(msg.startswith('xxx'))
print(msg.endswith('b'))

4、判断
''.isdigit()    # 判断是否全是数字(bytes, unicode)
''.isnumeric()  # 判断是否全是数字(unicode, 中文数字,罗马数字)
''.isalpha()    # 判断是否由字母和中文组成
''.isalnum()    # 判断是否由字母和数字组成
''.islower()/isupper()  # 判断是否全书小写/大写

5、format的三种玩法
res='my name is %s my age is %s' %('egon',18)
print(res)

res='my name is {name} my age is {age}'.format(age=18,name='egon')
print(res)

res='my name is {} my age is {}'.format('egon',18)
res='my name is {0}{1} my age is {1}{1}{1}{1}'.format('egon',18)
print(res)

格式化输出

name = 'tom'

1、占位符

  "hi %s, 早上好!" % name  

2、format

  (1)不带编号,即“{}”

  (2)数字编号,即“{1}”、“{2}”

  (3)带关键字,即“{a}”、“{name}”

     format格式化输出: https://www.cnblogs.com/lovejh/p/9201219.html

3、f-string(python3.6以后)

  f'{name} 早上好!'

>>> print('{} {}'.format('hello','world'))    # 不带字段
hello world

>>> print('{0} {1} {0}'.format('hello','world'))  # 数字编号
hello world hello

>>> print('{a} {tom} {a}'.format(tom='hello',a='world'))  # 带关键字
world hello world
***

5、split,rsplit
msg='a:b:c:d'
print(msg.split(':',1))
print(msg.rsplit(':',1))

6、replace
msg='kevin is kevin is hahahah'
res=msg.replace('kevin','sb',1)
print(res)

7、isdigit
print('123123'.isdigit()) # 如果字符串是由纯数字组成的,则返回True
print('123123   '.isdigit())
print('123123asdf'.isdigit())
print('12312.3'.isdigit())

score=input('>>>>: ').strip() #score='asdfasdfasfd'
if score.isdigit():
    score=int(score)

    if score >= 90:
        print('优秀')
    else:
        print('小垃圾')
else:
    print('必须输入纯数字')
了解的操作
1、find,rfind,index,rindex,count
print('123 ke123ke'.find('ke'))
print('123 ke123ke'.rfind('ke'))
print('123 ke123ke'.index('ke'))
print('123 ke123ke'.rindex('ke'))

print('123 ke123ke'.find('xxxx'))   # 找不到返回-1
print('123 ke123ke'.index('xxxx'))  # 找不到则报错
print('123 ke123ke'.count('ke',0,6))

2、center,ljust,rjust,zfill
print('egon'.center(50,'*'))
print('egon'.ljust(50,'*'))
print('egon'.rjust(50,'*'))

print('egon'.rjust(50,'0'))
print('egon'.zfill(50))

3、captalize,swapcase,title
print('abcdef dddddd'.capitalize())
print('abcAef dddddd'.swapcase())
print('abcAef dddddd'.title())

4、is数字系列
num1=b'4' #bytes
num2='4' #unicode,python3中无需加u就是unicode
num3='' #中文数字
num4='' #罗马数字

bytes与阿拉伯数字组成的字符串
print(num1.isdigit())     ♡
print(num2.isdigit())     ♡
print(num3.isdigit())
print(num4.isdigit())

阿拉伯数字组成的字符串
print(num2.isdecimal())     ♡
print(num3.isdecimal())
print(num4.isdecimal())

阿拉伯数字中文罗马组成的字符串
print(num2.isnumeric())     ♡
print(num3.isnumeric())     ♡
print(num4.isnumeric())     ♡

5、is其他

======================================该类型总结====================================
存一个值

有序

不可变
msg='                  hello  '
msg.strip()
print(msg)

列表类型

1、用途:按照位置记录多个值,索引对应值

2、定义方式:在[]内用逗号分隔开多个任意类型的值

  l=['a',11,11.3,] # l=list(['a',11,11.3,])

  数据类型转换:但凡能够被for循环遍历的数据类型都可以传给list,被其转换成列表

  res=list('hello')

  print(res)   #['h', 'e', 'l', 'l', 'o']

  res=list({'a':1,'b':2,'c':3}) 

  print(res)   #['a', 'b', 'c']

3、常用操作+内置的方法

*****
3.1、按索引存取值(正向存取+反向存取):即可存也可以取 l=['a','b','c','d','e'] print(l[0]) print(l[-1]) #e print(id(l)) l[0]='A' print(id(l)) 强调强调强调!!!:对于不存在的索引会报错 l[5]='AAAA' dic={"k1":111} dic['k2']=2222 print(dic) 3.2、切片(顾头不顾尾,步长) l=['a','b','c','d','e'] print(l[1:4]) print(l[::-1]) 3.3、长度 l=['a','b','c','d','e'] print(len(l)) 3.4、成员运算in和not in l=['a','b','c','d','e'] print('a' in l) 3.5、追加与insert l=['a','b','c','d','e'] l.append('xxx') l.append('yyy') print(l) l.insert(0,'xxxx') print(l) 3.6、删除 l=['a','bbb','c','d','e'] del是一种通用的删除操作,没有返回值 del l[0] print(l) dic={'k1':1} del dic['k1'] print(dic) l.remove(指定要删除的那个元素),没有返回值 res=l.remove('bbb') print(l) print(res) l.pop(指定要删除的那个元素的索引),返回刚刚删掉的那个元素 l=['a','bbb','c','d','e'] l.pop(-1) res=l.pop(1) print(l) print(res) 3.7、循环 l=['a','b','c','d','e'] for item in l: print(item) 练习: 队列:先进先出 l=[] # 入队 l.append('first') l.append('second') l.append('third') print(l) # 出队 print(l.pop(0)) print(l.pop(0)) print(l.pop(0)) 堆栈:后进先出 需要掌握的操作 l=['aaa','bb',345] l.clear() l.append([1,2,3]) for i in [1,2,3]: l.append(i) l.extend([1,2,3]) l.reverse() # 顺序颠倒 只有在列表中所有元素都是同种类型的情况下才能用sort排序 l=[1,3,2] l.sort(reverse=True) #[3,2,1] l=['z','d','a'] l.sort() print(l) =======================该类型总结========================= 存多个值 有序 可变
原文地址:https://www.cnblogs.com/zhouyongv5/p/10578495.html