python学习笔记,视频day11-string方法
接上节课,str方法
七个基本魔法
jion拼接、split分割、find查找,(没有则返回-1)、strip移除、upper大、lower小、replace
灰魔法
索引、切片、len、for循环(for 变量名 in 字符串)
在所有语言中,字符串在内存中一旦创建不可修改,如果要修改或拼接在内存中会重新创建一个新的字符串。
总结:
1、8位一个字节,计算机中以"字节"为单位,存储以“位”为单位
2、a="锦觅"
python3中len(a)=2;python2中len(a)=6
备注:
1、code-》reformat code,当出现小波浪线时可操作此路径规范格式;
基本魔法练习如下:
isprintable()是否存在不可显示的字符,\t,\n,输出false
isspace,判断是否全为空格
istitle,判断是否为标题,首字母大写,
title,设置为标题
test = "hearewa\tdsjdsdjs\ndd\tssd\t" v=test.expandtabs(6) print(v) # 结果 # hearewa dsjdsdjs # dd ssd
test="二" # 十进制的小数,常用 v1=test.isdecimal() #含2,② v2=test.isdigit() # 含2,②,中文二 v3=test.isnumeric() print(v1,v2,v3) # 结果 # False False True
# 将字符串中的每一个元素按指定分隔符进行拼接 test="你是风儿我是沙" print(test) t=" " # v=" ".join(test) v=t.join(test) print(v) # 结果 # 你是风儿我是沙 # 你 是 风 儿 我 是 沙
#填充
test="alex" v1=test.ljust(6,"*") v2=test.rjust(6,"*") print(v1,v2) # 结果 # alex** **alex
test="alex" test.islower()#是否全部小写 test.lower()#变成小写 test.isupper()#是否全部大写 test.upper()#变成大写
#去除空白,去除\n,\t,移除指定字符 test=" aleaax" # test.lstrip() v=test.rstrip('ax') # test.strip() print(v) # 结果 # ale
# 分割 test="testdsdsg" v1=test.partition('s') v2=test.rpartition('s') v3=test.split('s') v4=test.split('s',2) print(v1,v2,v3,v4) # 结果 # ('te', 's', 'tdsdsg') ('testdsd', 's', 'g') ['te', 'td', 'd', 'g'] ['te', 'td', 'dsg']
# 还有一种正则表达式,可选择所选是否包含所分割的字符 #分割,根据换行符分割 test="testd\nsds\ng" v1=test.splitlines(False) v2=test.splitlines(True) print(v1,v2) # 结果 # ['testd', 'sds', 'g'] ['testd\n', 'sds\n', 'g']
# 是否以什么开头 v1=test.startswith('a') v2=test.endswith('g') print(v1,v2) # 结果 # False True
#大小写转换 test="asfsdgHkk" v1=test.swapcase() print(v1) # 结果 # ASFSDGhKK
# 替换 test="hhalaalgdsaleesrs" v=test.replace("al","ooo") v1=test.replace("al","oo",2) print(v) print(v1)
灰魔法练习:
######################灰魔法
# 索引方式,获取字符串下标中的某一个字符
test="alexert"
v=test[3]
print(v)
#切片
v1=test[0:-1]#直接到最后一个位置
v2=test[0:2]
v3=len(test)#获取当前字符串中由几个字符组成
print(v1,v2,v3)
# 结果
# x
# alexer al 7
注:
1)
test="振臂高挥"
#python3中len(test)为4,python中len(test)为12
2)
# len一个列表
li=["11",22,34,55,"kkke"]
v=len(li)
print(v)
# 结果
# 5
方法一:
test="香蜜沉沉烬如霜" index=0 while index<len(test): v=test[index] print(v) index+=1
方法二:
test="香蜜沉沉烬如霜"
for yz in test:
print(yz)
# 结果均为
香
蜜
沉
沉
烬
如
霜
# 将文字对应的索引打印出来
方法一: test=input(">>>") l=len(test) v=range(0,l) for item in v: print(item,test[item])
方法二:
test=input(">>>")
for item in range(0,len(test)):
print(item,test[item])
结果 >>>dsf 0 d 1 s 2 f
习题
# 24、计算5+9 # count=input("请输入内容:") # v1,v2=count.split("+") # v1=int(v1) # v2=int(v2) # print(v1+v2) # v1 = input("请输入内容v1:") # v2 = input("请输入内容v2:") # i1 = int(v1) # i2 = int(v2) # s = i1 + i2 # print("%d + %d = %d" % (i1,i2,s))
# 25、计算用户输入的内容有几个十进制小数,几个字母 c1 = 0 c2 = 0 inp = input("请输入内容:") for item in inp: if (item.isdecimal()): c1 += 1 else: c2 += 1 print(c1,c2)
#29、敏感词替代 v="sdfdsgggghhhh" v = v.replace('s', '***') v = v.replace('h', '***') print(v) 结果 ***dfd***gggg************
# 30、循环提示用户输入:姓名、密码、邮箱(要求用户输入长度不超过20),若输入q或Q,不在继续输入 s ="" while True: inp_name = input("请输入名字:") inp_pwd = input("请输入密码:") inp_email = input("请输入邮箱:") template="{0}\t,{1}\t,{2}\n" v=template.format(inp_name,inp_pwd,inp_email) s=s+v if(inp_name.upper()=='Q'or inp_pwd.upper()=='Q'or inp_email.upper()=='Q'): break print(s.expandtabs(20))