python_面向过程_字符串的相关操作

--字符串相关操作

#字符串拼接

str1 = "我爱你 "
str2 = "亲爱的菇凉"
res = str1+str2
print(res)

#字符串的重复

strvar = "我爱北京天安门"
res = strvar * 3
print(res)

#字符串的索引
#字符串的切片
语法[::] 完整格式:[开始索引:结束索引:间隔值]
  (1)[开始索引:] 从开始索引截取到字符串的最后
  (2)[:结束索引] 从开头截取到结束索引之前
  (3)[开始索引:结束索引] 从开始索引截取到结束索引之前
  (4)[开始索引:结束索引:间隔值] 从开始索引截取到结束索引之前按照指定的间隔截取字符
  (5)[:]或[::] 截取所有字符串

strvar = "阿萨德,飞机,阿里"

#(1)
res = strvar[1:]
print(res)

#(2)
res= strvar[:3]
print(res)

#(3)
res = strvar[4:7]
# res = strvar[4:] # 两个效果等价
print(res)

#(4)
res = strvar[0:7:2]
# res = strvar[0::2] # 两个效果等价
print(res)

#(5)
# res = strvar[:]
res = strvar[::] # 两个效果等价
print(res)


--字符串相关函数

  #capitalize 字符串首字母大写
  #title 每个单词的首字母大写
  #upper 将所有小写字母变成大写
  #lower 将所有大写字母小写
  #swapcase 大小写互换
  #len 计算字符串的长度
  #count 统计字符串中某个元素的数量
  #find 查找某个字符串第一次出现的索引位置
  #index 与 find 功能相同 find找不到返回-1,index找不到数据直接报错
  #startswith 判断是否以某个字符或字符串为开头
  #endswith 判断是否以某个字符或字符串结尾

  #isupper 判断字符串是否都是大写字母
  #islower 判断字符串是否都是小写字母
  #istitle 判断字符串是否每个单词都首字母大写
  #isalnum 判断字符串是否是由数字、字母、汉字组成
  #isalpha 判断字符串是否由字母和文字组成
  #isdigit 检测字符串数是数字组成 接受二进制字节流
  #isnumeric 检测字符串是否以数字组成 接受中文"四"
  #isdecimal 检测字符串是否以数字组成 必须是纯数字
  #isspace 判断字符串是否由空白符组成

  #split 按某字符将字符串分割成列表(默认字符是空格)
  #join 按某字符将列表拼接成字符串(容器类型都可)
  #splitlines 按换行来进行切分(\r,\n,\r\n)
  #zfill 填充字符串,原字符串右对齐(默认填充0)
  #center 填充字符串,原字符居中 (默认填充空格)
  #ljust 填充字符串,原字符居左 (默认填充空格)
  #rjust 填充字符串,原字符居右 (默认填充空格)
  #strip 默认去掉首尾两边的空格和换行
  #rstrip 去掉右边某个字符
  #lstrip 去掉左边某个字符

 ==============================================================================================================

例:

# 字符串首字母大写
strvar = "oh father thiS is MY favoRite BoYS"
res = strvar.capitalize()
print(res)

# 每个单词的首字母大写
res = strvar.title()
print(res)

# 将所有小写字母变成大写
res = strvar.upper()
print(res)

# 将所有大写字母小写
res = strvar.lower()
print(res)

# 大小写互换
res = strvar.swapcase()
print(res)

# 计算字符串的长度
res = len(strvar)
print(res)

# 统计字符串中某个元素的数量 严格区分大小写
res = strvar.count("S")
print(res)

# 查找某个字符串第一次出现的索引位置
"""
可以找单个字符 也可以找字符串,可以通过索引限定查找的范围,找不到返回-1
"""
res = strvar.find("f")
res = strvar.find("favoRite")
res = strvar.find("father")
res = strvar.find("f",4)
res = strvar.find("f",4,10)

print(res)

#index 与 find 功能相同 find找不到返回-1,index找不到数据直接报错
res = strvar.index("f")
# res = strvar.index("f",4,10) # 找不着报错
print(res)


# 判断是否以某个字符或字符串为开头
strvar = "oh girl you good beautiful you"
res = strvar.startswith("o")
res = strvar.startswith("o",9)
res = strvar.startswith("o",3,6)
print(res)


# 判断是否以某个字符或字符串结尾
res = strvar.endswith("uo")
res = strvar.endswith("ful",0)
res = strvar.endswith("rl",3,7) # girl
print(res)

 

# 字符串相关函数 (二)

# 判断字符串是否都是大写字母
strvar = "aBc dDe"
res = strvar.isupper()
print(res)


# 判断字符串是否都是小写字母
strvar = "abcdef pppooo"
res = strvar.islower()
print(res)

 

# 判断字符串是否每个单词都首字母大写
strvar = "To Be Or Not To be "
res = strvar.istitle()
print(res)

 

# 判断字符串是否是由数字、字母、汉字组成
strvar = "4334343sjdkfjksdf你好"
res = strvar.isalnum()
print(res)

 

# 判断字符串是否由字母和文字组成
strvar = "ksjdkfjskdfjkds还是你好"
res = strvar.isalpha()
print(res)

 

# 检测字符串是否以数字组成 接受二进制字节流
strvar = "123456"
strvar = b"12345"
# strvar = "四"
res = strvar.isdigit()
print(res)

 

# 检测字符串是否以数字组成 接受中文"四"
strvar = "四"
res = strvar.isnumeric()
print(res)


#检测字符串是否以数字组成 必须是纯数字
strvar = "1234345"
strvar = "四"
res = strvar.isdecimal()
print(res)

#判断字符串是否由空白符组成
"""
空白符: \n \r \t
"""
# strvar = "\n\t11313123213" False
strvar = "\n\t"
res = strvar.isspace()
print(res)

 

# 字符串相关函数 (三)

# 按某字符将字符串分割成列表(默认字符是空格)
strvar = "you can you up no can no bb"
res = strvar.split(" ")
# 结果:['you', 'can', 'you', 'up', 'no', 'can', 'no', 'bb']
res = strvar.split()
print(res)

 

# 按某字符将列表拼接成字符串(容器类型都可)
listvar = ['you', 'can', 'you', 'up', 'no', 'can', 'no', 'bb']
res = " ".join(listvar)
print(res)

# 按换行来进行切分(\r,\n,\r\n)
strvar = """
本来无一物
何处惹尘埃

"""
res = strvar.splitlines()
print(res)

 

# 填充字符串,原字符串右对齐(默认填充0)
# 参数代表的是长度
strvar = "12345"
res = strvar.zfill(10)
# help(strvar.zfill)
print(res)


# 填充字符串,原字符居中 (默认填充空格)
strvar = "12345"
res = strvar.center(10,"@")
print(res)

# 填充字符串,原字符居左 (默认填充空格)
strvar = "12345"
res = strvar.ljust(10,"#")
print(res)

# 填充字符串,原字符居右 (默认填充空格)
strvar = "12345"
# res = strvar.rjust(10)
res = strvar.rjust(10,"%")
print(res)


# 默认去掉首尾两边的空格或换行
print("<==>")
strvar = """
sdkfdskfjdskfjdskfjk
"""
print(strvar)
res = strvar.strip()
print(res)

# 去掉首尾两边的"s"
strvar = "sthis"
res = strvar.strip("s")
print(res)

# 去掉右边某个字符
strvar = "sthis"
res = strvar.rstrip("s")
print(res)

# 去掉左边某个字符
# l left r right
strvar = "sthis"
res = strvar.lstrip("s")
print(res)


# maketrans translate 是一对用于字符串的替换
"""
  maketrans()
    功能:制作用于字符串替换的映射表
    格式: 字符串.maketrans('查找字符','替换字符') 两个字符必须长度相等
  返回值:字典
  translate()
    功能:进行字符串替换操作
    格式:字符串.translate(映射表)
  返回值:替换之后的字符串
"""

"""
  首先通过maketrans 产生一个映射表
  通过translate 拿到映射表进行替换
  实现了字符串的替换

  maketrans(字符1,字符2)
  字符1 和 字符2 要数量相同
"""
strvar = "that is a question"
yingshen = strvar.maketrans("asi","12@")
# 返回一个字典,是一个映射表
print(res)

res = strvar.translate(yingshen)
print(res)

--locals()

# locals 打印当前环境变量
a = 5
print(locals())
def ceshi01():
  b = 9
  c = 12
  print(locals())
ceshi01()


--format
# 顺序传参
# 索引传参
# 关键字传参
# 容器数据(列表或元祖)传参
# format的填充符号的使用( ^ > < )
# 进制转换等特殊符号的使用( :d :f :s :, )

# format 字符串的格式化函数
"""
  字符串中用{}进行占位,format里面的参数用来进行替换,而形成新的字符串
"""
"""
  # 加r 代表元字符串 不进行转义 原型输出
  strvar = r"你有 \n freestyle么"
  # 加b 代表二进制的字节流 用于数据传输的
  intvar = b"123"
  print(intvar)
"""

# 顺序传参
strvar = "{}向{}开了一枪,饮蛋儿亡"
res = strvar.format("黑山","白云")
print(res)


# 索引传参
# 通过索引,参数进行位置上的调换 默认把第一个参数的索引当成0,第二个当成1,依次类推.
strvar = "{1}向{0}开了一枪,饮蛋儿亡"
res = strvar.format("黑山","白云")
print(res)

 

# 关键字传参
strvar = "{zhangjianbing}向{leidong}开了一枪,饮蛋儿亡"
res = strvar.format(zhangjianbing="黑山",leidong="白云")
print(res)

 

# 容器数据(列表或元祖)传参
#(1)
strvar = "{0[1]}向{0[0]}开了一枪,饮蛋儿亡"
res = strvar.format(["白云","黑山"])
print(res)

#(2)
strvar = "{1[0]}向{1[1]}开了一枪,饮蛋儿亡"
res = strvar.format(["白云","黑山"],["淑芬","孙策"])
print(res)

#(3)
strvar = "{rencaidui[0]}向{liumangdui[0]}开了一枪,饮蛋儿亡"
res = strvar.format(rencaidui = ["孙策","淑芬"],liumangdui=["黑山","白云"])
print(res)


# format的填充符号的使用 ( ^ > < )
"""
  # 填充字符串
       ^ 文字居中
    > 文字居右
      < 文字居左
"""

"""
  举例:*^10
  * 代表要填充的字符串
  ^ 代表你选择填充的模式
  10 代表你要填充多少个(10是总数 填充字符+原字符串一共10个)
"""

strvar = "{who:*^10}去长春长生打了{something:$>7},感觉{feel:!<10}"
res = strvar.format(who="马如龙",something="一沓疫苗",feel="爽死了")
print(res)


# 进制转换等特殊符号的使用( :d :f :s :, )

# :d 代表要输入一个整型
strvar = "泰山的体重是{:d}公斤"
res = strvar.format(281)
print(res)

# 2d 就是占2位 | 3d 就是占3位 拿空格占位
strvar = "泰山的体重瘦成{:2d}公斤"
res = strvar.format(33)
print(res)

# :f 代表要输入一个浮点型 .1f 保留一位小数
strvar = "你曾经被骗了{:.1f}元么"
res = strvar.format(166.9)
print(res)

# :s 代表要输入字符串
strvar = "小红买了一个{:s}"
res = strvar.format("棒子")
print(res)

# :, 代表金融金钱的格式化
strvar = "小红的贷款还了{:,}钱"
res = strvar.format(123456789)
print(res)

posted @ 2018-07-28 17:50  bling_bling_star  阅读(185)  评论(0编辑  收藏  举报