python全栈开发-Day3 字符串详解编程语言

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

 #一:基本使用

1、 用途

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

2、定义方式

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

 

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

#优先掌握的操作:

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

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

#3、长度len

#4、成员运算in和not in

#5、移除空白strip

#6、切分split

#7、循环

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

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

#定义:在单引号/双引号/三引号内,由一串字符组成 
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和not in 
name="qianzeliang" 
“q” in name   #True 
"q" not in name  #False 
#5、移除空白strip 
name="  qianzeliang  " 
name.strip()    #值为 qianzeliang 
#6、切分split 
name = "qian:ze:liang" 
name.split(":")      #值为["qian","ze","liang"] 
#7、循环 
msg='qianduoduo' 
i=0 
while True: 
if i < 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='alex say :i have one tesla,my name is alex' 
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='egon say hello' 
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='egon say hi' 
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())

 

 

 

 

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/12232.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论