zoukankan      html  css  js  c++  java
  • day03字符串

    • 字符串

    1.方法详细内容

    • 方法
    • 强制转换
    1.大小写转换
    • Value.upper() / value.lower()

      new_value=value.upper()
      print(new_value)
      #验证码
      check_code = "uuueY"
      mess = input("请输入验证码%s:"%(check_code,))
      if mess.lower() == check_code.lower():
         print("登陆成功")
      
      
    2.判断字符串是否为数字:isdigit()
    • num.isdigit(): 判断是否是数字得到bool值

      #人工服务,只能输入数字
      num=input("请输入服务:“)
      flag=num.isdigit()
      #print(flag) "1"-->True "asdf"-->False
      if flag:
         num=int(num)
         print(num)
       else:
         print("请输入数字")
                
                
      --------------------------------
       #计算字符串中的数字多少个         
      str1="alellr838jdjje939"
      str_len=len(str1)
      index=0
      count=0
      while True:
         val=str1[index]
         flag=val.isdigit()
         # print(flag)
         if flag:
             count+=1
         index += 1
         if index==str_len:
             break
      print(count)
      
    3.除空格:strip()
    • user.rstrip(): 去掉右边的空格/换行 / 制表符

      user.lstrip(): 左边

      user.strip(): 去除两边的空白

      v="gao "
      print(v.strip)
      
      v="gao
      "
      print(v.strip)
      
      v="gao	 ok"
      print(v.strip)
      
    • 去掉两边指定的字符

      v1="gao"
      print(v1.strip("g"))
      
    4.替换关键字: replace("","",1)
    • mess.replace("被替换的字符/子序列“,”要替换的内容“,1)
    
    mess="我来自南方"
    data=mess.replace("南方“,”**“)
    data=mess.replace("南方“,”**“,1)
    print(data)
    #从左到右找到第一个则替换    数字:表示替换几个
    
    5.字符串切割:split(",",2):得到list数据类型
    • mess.split("根据什么内容进行分割", "分割几次")
    • mess.rsplit("")
    mess="床前明月光,疑是地上霜,举头王明月"
    result=mess.split(" ,")
    print(result)
    #["床前明月光"," 疑是地上霜"," 举头王明月"]
    
    result=messs.split(",",1)
    print(result)
    #只拆分一个
    #["床前明月光"," 疑是地上霜,举头王明月"]
    
    
    6.startswith/endswith
    #判断字符串是否已"al"开头
    #方案一 二
    str1="already"
    print(str1.startswith("al"))
    #True
    
    7.format()
    #字符串格式化
    name="我叫{0},年龄:{1}".format("gao",73)
    print(name)
    #”我叫gao,年龄:73“
    
    
    
    8.encode():读到内存后的编码格式,默认是按照unicode编码
    #读到内存后的编码格式,默认是按照unicode编码
    name="Gao"
    v1=name.encode('utf-8')#内存中按照utf-8编码方式 字符串转换成二进制
    print(v1)
    
    9.”连字符“.join(users): join会循环users里面的内容然后连接———>join可以循环 (列表,元祖,字符串)
    #1.
    name="alex"
    result="_".join(name)#循环每个字符,并且在字符和字符之间加入连接字符
    print(result)
    #a_l_e_x
    
    #2.连接列表的内容
    users=["Gao","Kou","123"]
    val=",".join(users)
    print(val)
    #Gao,Kou,123
    
    #
    li=[1,2,3,4,5,5]
    li=str([1,2,3,4])
    #li="[1,2,3,4]"  整个列表必须都转换为字符串
    li="_".join(li)
    print(li,type(li))
    #[_1_,_ _2_,_ _3_,_ _4_] <class 'str'>
    
    
    10.isupper()/islower():判断大小写
    1. casefold():字符串变小写 可将拉丁字母变小写

    2. isdecimal: 判断是否是十进制 的数 1—>True "二"—>False "②"—>False
    3. isnumeric:1—>True "二"—>True "②"—>True

    4. Isdigit: 1—>True "二"—>False "②"—>True

    5. Isalnum:是否是字母数字

    6. isalpa:是否字母

    7. isprintable:是否能打印

    8. isspace:是否是空白

    9. istitle: 是否首字母大写

    10. capitalize:首字母大写

    11. center:居中

    v='gao'
    v1=v.center(20,"*")#指定v为20长度  空白处以*填充
    
    
    1. ljust/rjust(20,"*"):左右边空白填充
    2. count("a"):计算子序列个数
    3. find("a"):找索引位置,不存在返回-1
    4. index:找索引位置,不存在返回-1
    5. Format_map():传字典
    6. partition:
    v="jdjjkf3hfjf"
    v2=v1.split("3")#不会包括3   会一直分割
    print(v2)
    
    v2=v1.partition("3")#按照3 分为三份  会包括3
    
    
    1. translate

    2. Maketrans

    ##6.公共方法
    • len()

      num.len(value) :计算字符长度

    value="test"
    number=len(value)
    print(number)
    #4
    
    
    • 索引 arr[index]

      arr="oldboy"
      v1=arr[0]#从前往后取数据
      #o
      v2=arr[-1] #从后往前取数据 倒数第一个位置开始取
      #y
      
    • 切片: v[2:3] 2<=index<3 前开后闭

      v="oldboy"
      v1=v[2:3]    #2<=index<3
      print(v1)
      #d
      
      v1=v[3:6]/[3:]
      #boy
      
      v1=v[:-1]
      #从第一个位置开始到取数字 直到取到 倒数第一个位置
      #oldbo
      
      #取最后两个字符
      #方案一:
      data=input("请输入:")
      v=data[-2:] #从倒数第二个开始取
      print(v)
      
      方案二
      data_len=len(data)
      v=data[data_len-2:data_len]
      
    • 切片步长 : v[0,8,step]

      • step=2>0 :往右走两次 (隔一个一取) index0=index0+2
      • step=-2<0: 往左走 index1=index1-2
      • v[1,8]: 默认向右
      #通过对s切片形成字符串s5 = "ba2"
      #sequence[starting_index:ending_index:step]
      s = "123a4b5c"
      s6=s[-3:-8:-2]
      print(s6)
      '''
      
      name="alex"
      #value[index0:index2:step]
      #step > 0 :往右边开始取值
      #step < 0  :往左边开始取值
      
      #1.val=name[0:-1:2]#从0到倒数第一个值,每取一次index+2,即就是隔一个取一个
      print(name)
      #ae
      
      #2.val=name[1::2]#从1 到 正无穷 按照step=2向右边取值
      
      #3.val=name[-1:0:-2]#从倒数第一个到0位置处,按照step=-2向左取值
      
      #笔试题:将字符串反转
      val=name[::-1]
      print(val)
      
      
    • for 循环:

      • for in:循环打印字符串的每个字符
      name="Gao"
      for item in name:
      	print(item)
      #G
      #a
      #o
      
      • break/continue依然有效

        name="Gao"
        for item in name:
        	print(item)
        	break
        	print("123")
        #G
        #a
        #o
        
      • for i in range(1,11):

        #请打印1-10
        for i in range(1,11):# 1<=range<11
          print(i)
        #打印1-10 除了7以外
        
      注意:

      ​ for和while应用场景:for:有穷时候优先

      ​ while:无穷

    • 修改,删除 (无)

    注意:

    ​ 字符串没有 ""修改删除""方法

    练习:split/strip()/isdigit

    1.用户输入很多数字或者字母,相加(可能带空格,字母)

    ​ 5+9 +A+10+ 1 +99.。。。

    val=input("请输入几个数相加:")
    val=val.split("+")
    for ele in val:
    		item=ele.strip()#一定要除空格 不然带空格的数字字符串不会被识别为数字
    		if item.isdigit():
    			sum=sum+int(item)
    print(sum)
    

    2.将字符串反转

    #2.val=name[1::2]#从1 到 正无穷 按照step=2向右边取值
    
    #3.val=name[-1:0:-2]#从倒数第一个到0位置处,按照step=-2向左取值
    
    #笔试题:将字符串反转
    val=name[::-1]
    print(val)
    

    2.字符串强制转换

    • str(整型)==>字符串 "999"

    • str(bool)==>"True"/"False"

    • str(列表)==>

      li=[1,2,3,4,5,5]
      li=str([1,2,3,4])
      #li="[1,2,3,4]"  整个列表都转换为字符串
      li="_".join(li)
      print(li,type(li))
      #[_1_,_ _2_,_ _3_,_ _4_] <class 'str'>
      
      li=[1,2,3,4,5,5]
      li1=str(li)
      #li="_".join(li)
      print(li1,type(li1))
      #[1, 2, 3, 4, 5, 5] <class 'str'>
      
      
    • str(元组)

      li=(1,2,3,4,5,5)
      li1=str(li)
      print(li1,type(li1))
      #(1, 2, 3, 4, 5, 5) <class 'str'>
      

    3. 总结

  • 相关阅读:
    让a标签点击后不发生跳转
    关于antlr.collections.AST.getLine()I错误及解决
    Python -pycharm光标变粗解决办法!!
    通过了博客园的申请,感觉自己有了归宿!
    作为甲方对软件公司的项目实施团队提的几点要求
    高性能MySql学习笔记-第五章:创建高性能的索引
    高性能MySql学习笔记-第四章:Schema 与数据类型优化
    高性能MySql学习笔记-第三章:服务器性能剖析
    npm publish报错403 Forbidden
    父子组件利用@Input和@Output传值时显示undefined
  • 原文地址:https://www.cnblogs.com/koukouku/p/10679123.html
Copyright © 2011-2022 走看看