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))

 

 

posted @ 2019-09-01 22:26  fealty杨  阅读(174)  评论(0编辑  收藏  举报