美文网首页
Python字符串

Python字符串

作者: 寒江孤影丶 | 来源:发表于2020-08-08 23:07 被阅读0次
    1. 字符串创建

      z = 'python' # 或 z = "python"
      

      很多情况下单引号和双引号作用相同,但是一些情况还是存在微妙不同

      例如:使用一对双引号("")时,打印下面字符串无需转义字符(也就是\字符)

      print("i don't understand")
      

      输出结果:

      i don't understand
      

      使用一对单引号打印时,却需要添加转义字符 \

      print('i don\'t understand')
      

      输出结果:

      i don't understand
      

      如果遇到字符串偏长,一行展示不完全,需要展示为多行。一对三重单引号'''或三重"""就会派上用场,它们能轻松实现跨行输入

      print("""雪压枝头低 虽低不着泥 
              一朝红日出 依旧与天齐""")
      

      输出结果:

      雪压枝头低 虽低不着泥 
              一朝红日出 依旧与天齐
      
    2. 字符串与数字

    数字n乘以字符串会克隆出n倍个原字符串

    print(3*"p y t h o n")
    print("p y t h o n"*3)
    

    输出结果:

    p y t h o n p y t h o n p y t h o n
    p y t h o n p y t h o n p y t h o n
    

    10乘以字符-会绘制出一条虚线

    print(10*"-")
    

    输出结果:

    ----------
    

    2个字符串常量能直接结合,中间不用任何符号函数链接

    print("py""thon")
    

    输出结果:

    python
    

    单个字符还能与数值完成互转,内置函数ord转换单个字符为整型

    print(ord('赵'))
    print(ord('钱'))
    print(ord('孙'))
    print(ord('李'))
    

    输出结果:

    36213
    38065
    23385
    26446
    

    chr 函数转换整数为单个字符

    print(chr(36213))
    print(chr(38065))
    print(chr(23385))
    print(chr(26446))
    

    输出结果:

    赵
    钱
    孙
    李
    
    1. 字符串打印及格式化

    使用 format 函数,字符串变量使用一对花括号{}, format 参数中指定变量的取值

    print("i am {0},age {1}".format("孙悟空",300))
    

    输出结果:

    i am 孙悟空,age 300
    

    f 打印f 后面紧跟一个字符串,其中花括号{}中直接写出变量名称

    name = '孙悟空'
    age = 300
    print(f'i am {name}, age {age}')
    

    输出结果:

    i am 孙悟空, age 300
    

    控制字符串打印,保留小数点后两位

    print("{:.2f}".format(3.1415926)) 
    

    输出结果:

    3.14
    

    控制字符串打印,带符号保留小数点后两位

    print("{:+.2f}".format(-1)) 
    

    输出结果:

    -1.00
    

    控制字符串打印,不带小数位

    print("{:.0f}".format(3.388))  # 不带小数位
    print("{:.0f}".format(3.788))  # 代码会进行四舍五入
    

    输出结果:

    3
    4
    

    控制字符串打印, 整数补零,填充左边, 宽度为3

    print("{:0>3d}".format(5)) # 整数补零,填充左边, 宽度为3
    

    输出结果:

    008
    

    控制字符串打印,以逗号分隔的数字格式

    print("{:,}".format(20482048)) # 以逗号分隔的数字格式
    

    输出结果:

    20,482,048
    

    控制字符串打印,百分比格式

    print("{:.2%}".format(0.888)) # 百分比格式
    

    输出结果:

    88.80%
    

    控制字符串打印,指数记法

    print("{:.2e}".format(369369369))  # 指数记法
    

    输出结果:

    3.69e+08
    
    1. 字符串处理操作

    join 串联多个字符串,注意Python中没有单个字符这种类型,单个字符在Python中也会被当作str类型。如下连接多个字符串,最终打印出 Python

    Chars = ['P', 'y', 't', 'h', 'o', 'n']
    name = ''.join(Chars)
    print(name)
    

    输出结果:

    Python
    

    分割字符串,一般使用split函数,第一个参数指明分割字符串使用的分割符

    x ='孙悟空,猪八戒,沙悟净'.split(",")
    print(x)
    #split 从左面开始分割
    

    输出结果:

    ['孙悟空01', '猪八戒02', '沙悟净03']
    

    split还有第二个参数指明需要做的分割次数,比如只做一次分割,得到如下两个元素

    x ='孙悟空01,猪八戒02,沙悟净03'.split(",",1)
    print(x)
    #split 从左面开始分割
    

    输出结果:

    ['孙悟空01', '猪八戒02,沙悟净03']
    

    rsplit就是从右侧开始分割字符串,某些场景rsplit函数更好用一些

    x ='孙悟空01,猪八戒02,沙悟净03'.rsplit(",",1)
    print(x)
    

    输出结果:

    ['孙悟空01,猪八戒02', '沙悟净03']
    

    string.capitalize()把字符串的第一个字符大写

    chr = "f,python "
    chr1 = "a,python "
    chr.capitalize()
    chr1.capitalize()
    print(chr.capitalize())
    print(chr1.capitalize())
    

    输出结果:

    F,python 
    A,python
    

    string.center(width) 返回一个原字符串居中,并使用空格填充至长度 width 的新字符串

    str = "孙悟空"
    str.center(20, "*")
    print(str.center(20,"*"))
    

    输出结果:

    ********孙悟空*********
    

    string.startswith(obj, start=0,end=len(string))

    检查字符串是否是以 obj 开头,是则返回 True,否则返回 False。如果start和 end 指定值,则在指定范围内检查

    str = "333333孙悟空猪八戒沙和尚88888888"
    str1 = "333333孙悟空猪八戒沙和尚6666666"
    print(str.startswith("8")) # 是不是以8开头 返回False
    print(str.startswith("3")) # 以3开头返回True
    print(str.startswith("3",0,9)) # 添加了查找范围在范围内返回True,否则返回False
    

    输出结果:

    False
    True
    True
    

    str.endswith(ending[, start[, end]])方法用于判断字符串是否以指定后缀结尾,如果以指定后缀结尾返回True,否则返回False。可选参数"start"与"end"为检索字符串的开始与结束位置

    str = "唐僧,孙悟空,猪八戒,沙悟净......西游团队"
    ending = "西游团队"
    print(len(str)) #查看字符串长度
    print (str.endswith(ending)) #打印以什么结尾,如果找到返回True
    print (str.endswith(ending,0,24))# 0,24表示从0索引到最后一个索引,匹配到返回True
    print (str.endswith(ending,0,20))#开始和结束位置找不到就返回False
    

    输出结果:

    True
    True
    False
    

    str.find() 方法检测字符串中是否包含子字符串 str ,可选参数"start"与"end"为检索字符串的开始与结束位置

    str = "唐僧,孙悟空,猪八戒,沙悟净......西游团队"
    str2 = "红孩儿"
    str3 = "唐僧"
    str4 = "猪八戒"
    str5 = "西游团队"
    print (str.find(str2))
    print (str.find(str3))
    print (str.find(str4))
    print (str.find(str5,0,3))
    

    输出结果:

    -1 #找不到红孩儿这个字符串返回-1
    0  #找到字符串返回对应的索引
    7  #找到字符串返回对应的索引
    -1 #添加了开始和结束位置,没有找到指定的字符串返回-1
    

    str.isalnum()如果 str 至少有一个字符并且所有字符都是字母或数字则返回 True,否则返回 False

    str = "theshy12345567"
    str1 = "Theshy12345567"
    str2 = "12345567"
    str3 = "1,2 345567"
    str4 = "唐僧孙悟空猪八戒沙悟净西游团队"
    print("1",str.isalnum())
    print("2",str1.isalnum())
    print("3",str2.isalnum())
    print("4",str3.isalnum())
    print("5",str4.isalnum())
    

    输出结果:

    1 True #小写字母数字组合返回True
    2 True #大写字母数字组合返回True
    3 True #纯数字返回True
    4 False# 虽然是纯数字,但是有符号和空格返回False
    5 True #纯汉字也返回True
    

    string.isalpha()如果 str 至少有一个字符并且所有字符都是字母则返回 True

    str = "theshy12345567"
    str1 = "Theshy12345567"
    str2 = "12345567"
    str3 = "1,2 345567"
    str4 = "唐僧孙悟空猪八戒沙悟净西游团队"
    str5 = "TheshyUzi"
    print("1",str.isalpha())
    print("2",str1.isalpha())
    print("3",str2.isalpha())
    print("4",str3.isalpha())
    print("5",str4.isalpha())
    print("6",str5.isalpha())
    

    输出结果:

    1 False
    2 False
    3 False
    4 False
    5 True #所有汉字返回True
    6 True #大小写字母组合返回True
    

    str.isdigit()如果 str只包含数字则返回 True 否则返回 False

    str1 = "Theshy12345567"
    str2 = "12345567"
    str3 = "1,2 345567"
    print("1",str1.isdigit())
    print("2",str2.isdigit())
    print("3",str3.isdigit())
    

    输出结果:

    1 False
    2 True  #只有纯数字才会返回True
    3 False
    

    str.islower()如果 str中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True,否则返回 False

    str1 = "theshy12345567"
    str2 = "12345567"
    str3 = "1,2 345567"
    str4 = "tHeshy12345567"
    print("1",str1.islower())
    print("2",str2.islower())
    print("3",str3.islower())
    print("4",str4.islower())
    

    输出结果:

    1 True # 可以是字母和数字,但字母必须小写
    2 False
    3 False
    4 False 
    

    str.isupper()如果 str 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True,否则返回 False

    str1 = "Theshy12345567"
    str2 = "12345567"
    str3 = "1,2 345567"
    str4 = "THESHY1,2,3,4"
    print("1",str1.isupper())
    print("2",str2.isupper())
    print("3",str3.isupper())
    print("4",str4.isupper())
    

    输出结果:

    1 False
    2 False
    3 False
    4 True # 必须都是大写返回True
    

    str.upper()转换 str中的小写字母为大写

    str1 = "Theshy12345567"
    str2 = "12345567"
    str3 = "1,2 345567"
    str4 = "THESHY1,2,3,4"
    print("1",str1.upper())
    print("2",str2.upper())
    print("3",str3.upper())
    print("4",str4.upper())
    

    输出结果:

    1 THESHY12345567
    2 12345567
    3 1,2 345567
    4 THESHY1,2,3,4
    

    str.lower()转换 str中所有大写字符为小写

    str1 = "Theshy12345567"
    str2 = "12345567"
    str3 = "唐僧孙悟空猪八戒沙悟净西游团队"
    str4 = "THESHY1,2,3,4"
    print("1",str1.lower())
    print("2",str2.lower())
    print("3",str3.lower())
    print("4",str4.lower())
    

    输出结果:

    1 theshy12345567    #str中所有大写字符为小写
    2 12345567            #数字不影响
    3 唐僧孙悟空猪八戒沙悟净西游团队 #字符不影响
    4 theshy1,2,3,4    #str中所有大写字符为小写
    

    str.join(sequence)方法用于将序列中的元素以指定的字符连接生成一个新的字符串,元组、列表、字典后,可以用 join() 来转化为字符串 # 比较实用的方法

    list=['1','2','3','4','5']
    list1=["孙悟空","猪八戒","沙和尚"]
    print(''.join(list))
    print('--'.join(list1))
    

    输出结果:

    12345
    孙悟空--猪八戒--沙和尚
    

    str.lstrip()删除 str 左边的字符包括空格

    str = "333333孙悟空猪八戒沙和尚   "
    str1 = "333333孙悟空猪八戒沙和尚   "
    print(str.lstrip("3"))
    print(str1.lstrip())
    

    输出结果:

    孙悟空猪八戒沙和尚   
    333333孙悟空猪八戒沙和尚 
    

    string.rstrip()删除 str 字符串末尾的字符包括空格

    str = "333333孙悟空猪八戒沙和尚88888888"
    str1 = "333333孙悟空猪八戒沙和尚6666666"
    print(str.rstrip("8"))
    print(str1.rstrip("6"))
    

    输出结果:

    333333孙悟空猪八戒沙和尚
    333333孙悟空猪八戒沙和尚
    

    string.swapcase()翻转 str中的大小写

    str = "THESHY,JACKLOVE"
    str1 = "UZI,jacklove"
    print(str.swapcase())
    print(str1.swapcase())
    

    输出结果:

    theshy,jacklove
    uzi,JACKLOVE
    

    一行较长的字符串,将其转化为多行,每行只有10个字符

    import textwrap
    text ="神龟虽寿,犹有竟时;腾蛇乘雾,终为土灰。老骥伏枥,志在千里;烈士暮年,壮心不已。盈缩之期,不但在天;养怡之福,可得永年。幸甚至哉,歌以咏志。"
    turtle = textwrap.fill(text,5)
    print(turtle)
    

    输出结果:

    神龟虽寿,
    犹有竟时;
    腾蛇乘雾,
    终为土灰。
    老骥伏枥,
    志在千里;
    烈士暮年,
    壮心不已。
    盈缩之期,
    不但在天;
    养怡之福,
    可得永年。
    幸甚至哉,
    歌以咏志。
    

    相关文章

      网友评论

          本文标题:Python字符串

          本文链接:https://www.haomeiwen.com/subject/fcukdktx.html