zoukankan      html  css  js  c++  java
  • 关于str的操作

    一、定义

      1.简单定义

    s1=' zifang 123 % 245 //$#s#@      '
    print(s1)
    s2=input("请输入你的名字:")
    print(s2)

      2.运算(只有加字符串,乘正整数两种操作)

    s3=s1+"cccc"
    print(s3)
    s4="hello!"*3
    print(s4)
    # zifang 123 % 245 //$#s#@      cccc 
    # hello!hello!hello!

      3.字符串输出与索引处理

        1)打印

    for i in s3:
        print(i,end='')
    #不加end=''就是默认打印一次就换行

        2)切片

    #[首:尾:步长],步长可以不写。
    # [首:尾],但是如果尾部写了,就不会有尾部那个元素。
    #切片:顾头不顾尾
    s5=s1[1:5:2]      
    print(s5)
    s6=s1[-1::-1]     #倒置字符串
    print(s6)
    
    #返回:
    #zf
    #      @#s#$// 542 % 321 gnafiz 

      4.示例

    #一个完整的程序
    #方法一
    username=input("请输入用户名:")
    password=input("请输入密码")        #默认输入的都是字符串
    if username == 'zs' and password == '123456':
        print("恭喜,登陆成功!")
    else:
        print("用户名或密码错误")
        
    #方法二
    username=input("请输入用户名:")
    password=int(input("请输入密码"))
    if username == 'zs' and password == 123456:
        print("恭喜,登陆成功!")
    else:
        print("用户名或密码错误")

      5.关于str的方法

        1)大小写

    #1.大小写
    s7=s3.capitalize()    #第一个字符如果是字母就大写,不是就没有任何效果
    print(s7)             # zifang 123 % 245 //$#s#@      cccc
    s8=s3.upper()         #全部字母大写
    print(s8)             # ZIFANG 123 % 245 //$#S#@      CCCC
    s9=s8.lower()         #全部字母小写
    print(s9)             # zifang 123 % 245 //$#s#@      cccc
    s10=s3.title()        #特殊字符后的字母大写
    print(s10)            # Zifang 123 % 245 //$#S#@      Cccc
     
    sw='AcDx'.swapcase()     #大小写互换
    print(sw)                #aCdX

        2)打印

    #2.关于打印
    print(len(s1))           #打印字符串的长度(比索引大1)
    s11=s10.center(40,"*")   #居中显示,长度四十,不够拿*填充
    print(s11)               #** Zifang 123 % 245 //$#S#@      Cccc***
    s12=s10.expandtabs()     #如果有特殊字符比如空格,制表符等就隔开,严格制表
    print(s12)               # Zifang 123 % 245 //$#S#@      Cccc
    sz="asfodsijc ascsdfvsrf	#"
    print(sz.center(40,"&"))        #居中
    print("*"*30)
    print(sz.ljust(20,"@"))         #左对齐
    print("*"*30)
    print(sz.rjust(50,"="))         #右对齐
    print("*"*30)

        3)判断

    #3.判断
    s13=s4[1:4]
    print(s13.isdigit())       #判断是否全由数字组成
    print(s13.isalpha())       #判断是否全由字母组成
    print(s13.endswith('l'))   #判断是否以某字符结尾
    print(s13.startswith('l')) #判断是否以某字符开头

        4)找索引

    #4.索引
    a=s1.find('a')     #找某字符第一个出现的位置,没有就返回-1
    print(a)
    
    b=s1.index('n')    #同样找字符出现的索引,没有就报错
    print(b)

        5)删除空格

    #5.删空格
    s15=s1.strip()          #左右的空格都删除
    print(s15,len(s15))     #zifang 123 % 245 //$#s#@ 24
    s16=s1.lstrip()         #只删除左边的空格
    print(s16,len(s16))     #zifang 123 % 245 //$#s#@       30
    s17=s1.rstrip()         #只删除右边的空格
    print(s17,len(s17))     # zifang 123 % 245 //$#s#@ 25

        6)其他

          #split   字符串转化为列表。也有删的意思

    #6.其他
    s18=s1.split(' ')     #以某字符作分割,字符不要,其余块作为列表元素
    print(s18)            #['', 'zifang', '123', '%', '245', '//$#s#@', '', '', '', '', '', '']
    c=s1.count('a')       #计算字符串中某字符出现的次数
    print(c)
    s19=s1.encode()      #改变编码方式,默认改为bytes类型,里面可以加参数'gbk','utf-8'等
    print(type(s19))     #返回<class 'bytes'>
    sz="as
    fod
    sijc asc
    sdfvsrf	#"
    sz1=sz.splitlines()             #按换行符隔开
    print(sz1)
    sz2=sz.split("a")               #按指定元素隔开
    print(sz2)

      6.格式化输出

    #格式化输出
    #方法1
    # %占位符
    name=input("请输入你的名字:")
    age=int(input("请输入你的年龄:"))
    
    p1='我的名字是:%s,我的年龄是:%d,我的成绩是全班前5%%。对,我叫%s'%(name,age,name)
    print(p1)
    # %s占位表示是字符串,%d占位数字。
    # 如果一个字符串里出现了占位符,那么要打印%前面必须加个%表示转义,单独打印%不需要加转义
    
    #方法2
    #使用format函数 {}
    p2='我的名字是:{0},我的年龄是:{1},我的成绩是前5%,对我叫{0}'.format(name,age)
    print(p2)
    
    #方法3
    #使用format函数与{}
    p3='我的名字是:{name},我的年龄是:{age},对我叫{name}'.format(name=name,age=age)
    print(p3)

       7.替换

    sx="    asf asfdc regvdf  "
    sxx=sx.replace('a',"*")         #第一个参数是原有的,第二个参数是需要替换成什么
    print(sxx)                      #    *sf *sfdc regvdf  

      

  • 相关阅读:
    [bzoj] 2565 最长双回文串
    [codeforces] 17E Palisection
    luogu P3267 [JLOI2016/SHOI2016] 侦查守卫
    181020-181021 模拟 题解
    luogu P2571 [SCOI2010]传送带
    poj1064 Cable master
    poj1422 Air Raid
    luogu P2512 [HAOI2008]糖果传递
    CF549H Degenerate Matrix
    左偏树基础教学
  • 原文地址:https://www.cnblogs.com/lowislucifer/p/10946454.html
Copyright © 2011-2022 走看看