python的基本使用之字符串类型

 python的基本使用之字符串类型

一:基本使用
 1 用途: 描述性质的数据,比如人的名字,单个爱好,地址

 2 定义方式
 name='egon' #name=str('egon')
 x=str(1)
 y=str(1.1)
 z=str([1,2,3])
 n=str({'a':1})
 print(type(x))
 print(type(y))
 print(type(z))
 print(type(n))

 3 常用操作+内置的方法
优先掌握的操作(非常重要):
1、按索引取值(正向取+反向取) :只能取
sg='hello world'
 print(type(msg[5]))
 print(msg[-1])
 msg[2]='A'

2、切片(顾头不顾尾,步长)
 msg='hello world'
 print(msg[1:5],type(msg[1:5]))   #ello <class 'str'>
 print(msg[6:-1])                 #worl
 print(msg[6:11])                 #world
 print(msg[6:])                   #world
 print(msg[6::2])                 #wrd
  了解(**)

 msg='hello world'
 print(msg[0:])                   #hello world
 print(msg[::-1])                 #dlrow olleh
 print(msg[-3:-6:-1])             #row
 print(msg[6:9:-1])               #6到9是正方向,-1是负方向的步长,所以输出

3、长度len
 msg='hello world'                #输出长度为11
 print(len(msg))

4、成员运算in和not in
 print('SB' in  'my name is alex,alex is SB')                        #True
 print('alex' in  'my name is alex,alex is SB')                      #True
 print('egon' not in  'my name is alex,alex is SB') # 推荐           #True
 print(not 'egon' in  'my name is alex,alex is SB')                 #True


5、移除空白strip
 name='  e gon        '
 print(name.strip(' '))                     #e gon    只能移除非空白两边的空格
 print(name.strip())                        #e gon     默认strip()移除非空白两边的空格
 name='****A*e*gon****'
 print(name.strip('*'))                    #A*e*gon    移除非*号字符两边的*号

 name='****egon****'
 print(name.lstrip('*'))                    #egon****   移除非*号字符左边的*号
 print(name.rstrip('*'))                    #****egon   移除非*号字符右边的*号
 pwd=input('>>: ').strip() #pwd='123  '
 if pwd == '123':
     print('login successful')            #输入:“空格空格123空格”,(strip()移除两边的空格)输出:login successful


 msg='cccabcdefgccccc'
 print(msg.strip('c'))                     #abcdefg        移除了两边的c

 print('*-=egon *&^'.strip('-= *&^'))     #egon            移除了两边的-= *&^ 号

6、切分split(相同分隔符号分出部分字符串)
 msg='egon:18:male:180:160'
 l=msg.split(':')
 print(l)                                   #['egon', '18', 'male', '180', '160']   利用冒号切分出字符串组成列表
 print(l[3])                                #180             取出列表里的'180'
7、循环
 msg='hello world'
 for x in msg:
     print(x)                            #h
                                             #e
                                             #l
                                             #l
                                             #o           利用for循环取出字符串里的字母
 需要掌握的操作(重要)
1、strip,lstrip,rstrip
2、lower,upper
     name='EoN'
     print(name.lower())                          #eon          lower()将字符的大写字母改为小写字母

 name='egonN'
 print(name.upper())                          #EGONN         upper()将字符的小写字母改为大写字母

3、startswith,endswith
 print('alex is SB '.startswith('alex'))      #True         判断是否以alex开头
 print('alex is SB'.endswith('B'))            #True         判断是否以B结尾

4、format的三种玩法
 print('my name is %s my age is %s' %('egon',18))             # my name is egon my age is 18
 print('my name is {name} my age is {age}'.format(age=18,name='egon')) # 可以打破位置的限制,但仍能指名
                                                                            # 道姓地为指定的参数传值

 print('my name is {} my age is {}'.format('egon',18))   #my name is egon my age is 18  按照先后顺序填入字符串
 print('my name is {0} my age is {1} {1} {1} {1}'.format('egon',18))#my name is egon my age is 18 18 18 18
                                                                         #{0}='egon',{1}=18

5、split,rsplit
 info='egon:18:male'
 print(info.split(':',1))                        #['egon', '18:male'] 以第一个冒号为界限分隔字符串为列表
 print(info.rsplit(':',1)) #['egon:18','male']   #['egon:18', 'male'] 以右边的第一个冒号为界限分割字符串为列表

6、join:只能将元素全为字符串的列表拼成一个大的字符串
 info='egon:18:male'
 l=info.split(':')
 print(l)                               #['egon', '18', 'male']  以冒号为分割界限分割字符串为列表
 new_info='-'.join(l)
 print(new_info)                        #egon-18-male      用'-'替换':'

 num=['a','b','c']
 print(':'.join(num)) #'a'+':'+'b'+':'+'c' #a:b:c        用冒号代替逗号

 num=[1,2,'c']
 print(':'.join(num)) #1+':'+2+':'+'c'  #报错    原因是列表里不全是字符串

7、replace
 msg='my name is xiaoming,xiaoming is a boy'
 print(msg.replace('xiaoming','Tom',1))    #my name is Tom,xiaoming is a boy  用Tom将第一个xiaoming替换掉
 print(msg)                                 #my name is xiaoming,xiaoming is a boy   msg仍然是原内容

8、isdigit 判断是否是纯数字
 print('111.1'.isdigit())        #False  引号内不是纯数字,还有点号
 print('1111'.isdigit())         #True   引号内是纯数字

AGE=73
age=input('>>: ').strip() #age='asdfasdf'
if age.isdigit():                     #判断age是否为纯数字
    age=int(age)
    if age > AGE:
        print('too big')
    elif age < AGE:
        print('too small')
    else:
        print('you got it')
else:
    print('必须输入数字啊傻叉')

 其他操作(了解即可)(**)
1、find,rfind,index,rindex,count
msg='my name is alex,alex is hahaha'
 print(msg.find('alex'))
 print(msg.find('SB')) #找不到会返回-1

 print(msg.index('alex'))
 print(msg.index('SB')) # 找不到index会报错

 print(msg.find('alex',0,3))

 print(msg.count('alex'))
 print(msg.count('alex',0,15))

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

3、expandtabs
 print('a\tb\tc'.expandtabs(1))

4、captalize,swapcase,title
 print('my name is egon'.capitalize())
 print('my Name Is egon'.swapcase())
 print('my name is egon'.title())

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

isdigit():bytes,unicode
 print(num1.isdigit())
 print(num2.isdigit())
 print(num3.isdigit())
 print(num4.isdigit())

isdecimal():unicode
print(num2.isdecimal())
print(num3.isdecimal())
print(num4.isdecimal())

isnumberic;unicode,中文,罗马
 print(num2.isnumeric())
 print(num3.isnumeric())
 print(num4.isnumeric())

6、is其他
 print('abasdf123123'.isalnum())
 print('asdfasdf'.isalpha())
 print('egon'.islower())
 print('ABC'.isupper())

 print('     '.isspace())
 print('My Name Is Egon'.istitle())


 #二:该类型总结
 1 存一个值or存多个值
     只能存一个值

 2 有序or无序
 有序

 3 可变or不可变
 不可变

name='egon'
print(id(name))
name='alex'

print(id(name))

猜你喜欢

转载自blog.csdn.net/u014297588/article/details/80514769