您的位置:首页 > 编程语言 > Python开发

python全栈开发-Day3 字符串

2018-03-20 20:27 537 查看

一、按照以下几个点展开字符串的学习

#一:基本使用

1、用途

#首先字符串主要作用途径:名字,性别,国籍,地址等描述信息

2、定义方式

  在单引号\双引号\三引号内,由一串字符组成

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

#优先掌握的操作:

#1、按索引取值(正向取+反向取):只能取


#2、切片(顾头不顾尾,步长)

#3、长度len


#4、成员运算in和notin


#5、移除空白strip

#6、切分split

#7、循环

#二:该类型总结
1、存一个值or存多个值
只能存一个值
可以存多个值,值都可以是什么类型
2、有序or无序
3、可变or不可变
!!!可变:值变,id不变。可变==不可hash
[b]!!!不可变:值变,id就变。不可变==可hash[/b]

二、按照上面的问题开始了解字符串

#定义:在单引号\双引号\三引号内,由一串字符组成
name='qianduoduo'
name="qianduoduo"
name='''qianduoduo'''

#优先掌握的操作:
#1、按索引取值(正向取+反向取):只能取
name="qianzeliang"
name[0]#值为"q"
name[-1]#值为"g"

#2、切片(顾头不顾尾,步长)
name="qianzeliang"
name[2:8]#值为“anzeli”
name[2:8:2]#值为“azl”
#3、长度len
name="qianzeliang"
len(name)#值为11
#4、成员运算in和notin
name="qianzeliang"
“q”inname#True
"q"notinname#False
#5、移除空白strip
name="qianzeliang"
name.strip()#值为qianzeliang
#6、切分split
name="qian:ze:liang"
name.split(":")#值为["qian","ze","liang"]

#7、循环
msg='qianduoduo'

i=0
whileTrue:
ifi<len(msg):
print(msg[i])
i+=1
else:
break

#需要掌握的操作

#1、strip,lstrip,rstrip
#2、lower,upper
#3、startswith,endswith
#4、format的三种玩法
#5、split,rsplit
#6、join
#7、replace
#8、isdigit

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

#lower,upper
name='egon'
print(name.lower())
print(name.upper())

#startswith,endswith
name='alex_SB'
print(name.endswith('SB'))
print(name.startswith('alex'))

#format的三种玩法
res='{}{}{}'.format('egon',18,'male')
res='{1}{0}{1}'.format('egon',18,'male')
res='{name}{age}{sex}'.format(sex='male',name='egon',age=18)

#split
name='root:x:0:0::/root:/bin/bash'
print(name.split(':'))#默认分隔符为空格
name='C:/a/b/c/d.txt'#只想拿到顶级目录
print(name.split('/',1))

name='a|b|c'
print(name.rsplit('|',1))#从右开始切分

#join
tag=''
print(tag.join(['egon','say','hello','world']))#可迭代对象必须都是字符串

#replace
name='alexsay:ihaveonetesla,mynameisalex'
print(name.replace('alex','SB',1))

#isdigit:可以判断bytes和unicode类型,是最常用的用于于判断字符是否为"数字"的方法
age=input('>>:')
print(age.isdigit())


三、小结

1、只能存一个值

2、有序

3、不可变:值变,id就变。不可变==可hash

 其他操作(了解即可)

#1、find,rfind,index,rindex,count
#2、center,ljust,rjust,zfill
#3、expandtabs
#4、captalize,swapcase,title
#5、is数字系列
#6、is其他

#find,rfind,index,rindex,count
name='egonsayhello'
print(name.find('o',1,3))#顾头不顾尾,找不到则返回-1不会报错,找到了则显示索引
#print(name.index('e',2,4))#同上,但是找不到会报错
print(name.count('e',1,3))#顾头不顾尾,如果不指定范围则查找所有

#center,ljust,rjust,zfill
name='egon'
print(name.center(30,'-'))
print(name.ljust(30,'*'))
print(name.rjust(30,'*'))
print(name.zfill(50))#用0填充

#expandtabs
name='egon\thello'
print(name)
print(name.expandtabs(1))

#captalize,swapcase,title
print(name.capitalize())#首字母大写
print(name.swapcase())#大小写翻转
msg='egonsayhi'
print(msg.title())#每个单词的首字母大写

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

#isdigt:bytes,unicode
print(num1.isdigit())#True
print(num2.isdigit())#True
print(num3.isdigit())#False
print(num4.isdigit())#False

#isdecimal:uncicode
#bytes类型无isdecimal方法
print(num2.isdecimal())#True
print(num3.isdecimal())#False
print(num4.isdecimal())#False

#isnumberic:unicode,中文数字,罗马数字
#bytes类型无isnumberic方法
print(num2.isnumeric())#True
print(num3.isnumeric())#True
print(num4.isnumeric())#True

#三者不能判断浮点数
num5='4.3'
print(num5.isdigit())
print(num5.isdecimal())
print(num5.isnumeric())
'''
总结:
最常用的是isdigit,可以判断bytes和unicode类型,这也是最常见的数字应用场景
如果要判断中文数字或罗马数字,则需要用到isnumeric
'''

#is其他
print('===>')
name='egon123'
print(name.isalnum())#字符串由字母或数字组成
print(name.isalpha())#字符串只由字母组成

print(name.isidentifier())
print(name.islower())
print(name.isupper())
print(name.isspace())
print(name.istitle())



                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: