字符串

一、字符串(str)

字符串的方法:
1,find通过元素找索引,可切片,找不到返回-1
2,index,找不到报错。
3,split 由字符串分割成列表,默认按空格。
4,captalize 首字母大写,其他字母小写。
5,upper 全大写。
6,lower 全小写。
7,title,每个单词的首字母大写。
8,startswith 判断以什么为开头,可以切片,整体概念。
9,endswith 判断以什么为结尾,可以切片,整体概念。
10,format格式化输出
{}{}{}.format(有顺序)
{0}{1}{2}{0}.format(有顺序的)
'{name} {age}'.format(name=李复,age=12)
11,strip 默认去掉两侧空格,有条件,
12,lstrip,rstrip
14,center 居中,默认空格。
15,count查找元素的个数,可以切片,若没有返回0
16,expandtabs  将一个tab键变成8个空格,如果tab前面的字符长度不足8个,则补全8个,
17,replace(old,new,次数)
18,isdigit       字符串由字母或数字组成

       isalpha,    字符串只由字母组成

       isalnum   字符串只由数字组成
19,swapcase 大小写翻转
20,for i in 可迭代对象。

1、索引和切片[ 起始位置 : 结束位置 : 步长]

#索引从0开始 [ 索引 (下标,index)]

s1 = 'python全栈8期'
print(s1[0])
print(s1[3])
print(s1[5])
print(s1[6])

输出

p
h
n
全

#切片 顾头不顾尾(超长不报错)


s1 = 'python全栈8期'
print
(s1[0:6])
print(s1[6:20])
print(s1[6:])
输出
python
全栈8期
全栈8期


#倒取值:加步长

s1 = 'python全栈8期'
print(s1[3:0:-1])
print(s1[3:-1])
print(s1[5:0:-2])


输出
hty
hon全栈8
nhy
a = 'ABCDEFGHIJK'
print(a[0:3])
print(a[2:5])
print(a[0:]) #默认到最后
print(a[0:-1]) #-1就是最后一个
print(a[0:5:2]) #加步长
print(a[5:0:-2]) #反向加步长

输出
    ABC
    CDE
    ABCDEFGHIJK
    ABCDEFGHIJ
    ACE
    FDB

#字符串的使用方法

#capitalize 首字母大写,其他的全小写

ret = 'alexS'
ret1 = ret.capitalize()
print(ret,ret1)

输出
alexS Alexs

#*全大写 upper,全小写 lower

ret = 'alexS'
ret2 = ret.upper()
ret3 = ret.lower()
print(ret2,ret3)
输出:
ALEXS alexs

demo

#输入验证码,不区分大小写(使条件大写,)

code = 'axED'
your_code = input('请输入验证码,不区分大小写')
if your_code.upper() == code.upper():
    print('ok')
else:
    print('请重新输入')
code = 'axED'.upper()
your_code = input('请输入验证码,不区分大小写').upper()
if your_code == code:
    print('ok')
else:
    print('请重新输入')

#大小写翻转   swapcase

ret = 'alexS'
ret4 = ret.swapcase()
print(ret4)
输出
ALEXs

#每一个字符串首字母大写 title()

ret5 = 'xu lili+shi'
print(ret5.title())
输出
Xu Lili+Shi

#居中

center:以一串长度的宽度返回S。填充 使用指定的填充字符(默认为空格)

ret = 'alexS'
print(ret.center(20))
print(ret.center(20,'*'))
输出
       alexS        
*******alexS********

#startswith 判断是否以...开头 #endswith 判断是否以...结尾

返回的是bool值

ret = 'alexS'
ret6 = ret.startswith('a')
ret7 = ret.startswith('ale')
ret8 = ret.startswith('alexS')
ret9 = ret.startswith('l',1,3)  # 切片 顾头不顾尾
ret10 = ret.endswith('xS')
print(ret6,ret7,ret8,ret9,ret10)
输出
True True True True True

 

#数字符串中的元素出现的个数。
ret = 'alexS,aeaeQ'
ret3 = ret.count("a",0,8) # 可切片
print(ret3)
输出
2
#\t前面的补全
# 默认将一个tab键变成8个空格,如果tab前面的字符长度不足8个,则补全8个,

#补充空格  expandtabs(默认是8位,超过8位则是16位,以此类推加8)
#需加\t,\t前面的补全
str = 'lishi\t'
str1 = str.expandtabs()
print(str1)
 

a2 = "liiiiiiiiiii\tii"
ret4 = a2.expandtabs()
print(ret4)
输出
liiiiiiiiiii    ii

# 通过下标找元素

# * find 通过元素找到索引(找到第一个元素),找不到返回 -1

#*  index返回的找到的元素的索引,找不到报错


ret = 'alexS'
ret9 = ret.find('W',0,5)
print(ret9)
输出
-1

ret10 = ret.index("fjdk",4,6)
print(ret10)
输出:报错

#***strip 去除字符串前后的空格

name = 'alex'
username = input('请输入用户名').strip()
if username == name:
    print('ok')
ret = '       LiLi      '
ret1 =ret.strip()
print(ret1)
ret11 = ret.rstrip()
print(ret11)
ret111 = ret.lstrip()
print(ret111)
输出:
LiLi
       LiLi
LiLi     

及你想要去除的东西

ret12 = 'aqazwsxa'.strip('a')

print(ret12.strip('aq'))#zwsx print(ret12.strip('azw'))#qazwsx print(ret12.strip('axs'))#qazw print(ret12.strip('qwa'))#zwsx

name='*egon**'
print(name.strip('*')) # egon
print(name.lstrip('*')) # egon**
print(name.rstrip('*')) # *egon

# **   split 以什么分割,最终形成一个列表此列表不含有这个分割的元素。

# split 将字符串分割成列表 以什么分割,最终形成一个列表此列表不含有这个分割的元素。
ret1 = 'lishi,jassin,helson'
ret2 = ret1.split('i') # ['l', 'sh', ',jass', 'n,helson']
print(ret2)
ret1 = 'lishi,jassin,helson'
ret3 = ret1.split(',')
print(ret3) # ['lishi', 'jassin', 'helson']
ret18 = 'title the tlie'
ret19 = ret15.split('t')
print(ret16)
输出:['', 'i', 'le ', 'he ', 'lie']
*****************************************#空字符串不是空格

# ****替换  replace

ret19 = '如果全世界都对你恶语相加我就对你说上一世情话'
ret20 = ret19.replace('全世界','人世间',)
print(ret20)
输出:
如果人世间都对你恶语相加我就对你说上一世情话

#***   格式化输出  format

#第一种 (有顺序)
ret21 = 'name:{},sex:{},身高:{}'.format('lishi','girl','168')
print(ret21)
#第二种  (有顺序)
ret22 = 'name:{0},sex:{1},身高:{2},' \
        'name:{0}'.format('lishi','girl','168')
print(ret22)
#第三种:键值对
ret23 = 'name:{name},sex:{sex},身高:{high}'.format(name='lishi',sex = 'girl',high = 168)
print(ret23)
输出:
name:lishi,sex:girl,身高:168
name:lishi,sex:girl,身高:168,name:lishi
name:lishi,sex:girl,身高:168

 判断字符串由什么组成

isalnum:字母或数字     isalpha:字母    isdigit:数字

name = '123'
print(name.isalnum())  # 字符串由字母或数字组成
print(name.isalpha())  # 字符串只由字母组成
print(name.isdigit())  # 字符串只由数字组成
输出:
True
False
True

 

posted @ 2017-10-23 20:37  小杜要加油  阅读(294)  评论(0编辑  收藏  举报