Python基础语法day10

day10学习总结:

1. 字符串
  • join操作:字符串.join(序列),将序列中的元素用指定的字符串拼接在一起,形成一个新的字符串(序列中的元素必须是字符串)

    • 注意:如果需要join的序列中的元素不是字符串,就想办法把它的元素变成字符串再join

      list1 = ['wusong', 'pim']
      result = '+'.join(list1)
      print(result) # wusong+pim
      
      nums = [23, 45, 67, 89, 45]
      result = '+'.join([str(x) for x nums])
      print(result)  # 23+45+67+89+45
      
      result = '*'.join('abc')          
      print(result) # a*b*c
      
  • split操作:

    • 字符串1.split(字符串2):将字符串1中所有的字符串2作为切割点对字符串进行切割,返回包含切割后每一小段对应的字符串的列表

    • 字符串1.split(字符串2, N):将字符串1中前N个字符串2作为切割点为字符串1进行切割

      str1 = 'abcmn123mnkplmn##'
      result = str1.split('mn')
      print(result)       # ['abc', '123', 'kpl', '##']
      
      str1 = 'mnabcmnmn123mnkplmn##mn'
      result = str1.split('mn')
      print(result)       # ['', 'abc', '', '123', 'kpl', '##', '']
      
      str1 = 'abcmn123mnkplmn##'
      result = str1.split('mn', 2)
      print(result) # ['abc', '123', 'kplmn##']
      
  • replace操作1:字符串1.replace(字符串2,字符串3) 将字符串1中所有的字符串2都替换成字符串3

  • replace操作2:字符串1.replace(字符串2,字符串3,N) 将字符串1中前N个字符串2都替换成字符串3

  • 举例:

    str1 = "fhumnnbugemn/*&%mn"
    str2 = str1.replace("mn","WU")
    str3 = str1.replace("mn","")  # 相当于删除了mn
    str4 = str1.replace("mn","Wu",2)  # 只替换了前两个mn
    str5 = str1.replace("mn","",2) # 相当于删除了前两个mn
    print(str2)  # fhuWUnbugeWU/*&%WU
    print(str3)  # fhunbuge/*&%
    print(str4)  # fhuWunbugeWu/*&%mn
    print(str5)  # fhunbuge/*&%mn
    
  • strip操作:字符串.strip() ,删除左右两端的空白字符。

    • 字符串.rstrip() ,

    • 字符串.lstrip() ,

    • 字符串.strip(“字符串”),删除左右两端的特定字符。

      str1 = "  wu   "
      result = str1.strip()
      print(result)  # wu
      
      str1 = '//wus'
      result = str1.strip('/')
      print(result)  # wus
      
  • find,index操作:

    • 字符串1.find(字符串2) - 获取字符串1中字符串2第一次出现的位置(以0开始的下标值返回),如果字符串2不存在返回-1

    • 字符串1.index(字符串2) - 获取字符串1中字符串2第一次出现的位置(以0开始的下标值返回),如果字符串2不存在报错!

    • 字符串1.find(字符串2, 开始下标, 结束下标) - 获取字符串1中指定范围内字符串2第一次出现的位置

    • 字符串1.index(字符串2, 开始下标, 结束下标) - 获取字符串1中指定范围内字符串2第一次出现的位置

      str1 = 'how are you? I am fine, thank you! and you?'
      print(str1.find('you')) # 8
      print(str1.index('you')) # 8
      
      print(str1.find('abc'))     # -1
      print(str1.index('abc'))      # 报错!
      
      print(str1.find('you', 10))     # 30
      print(str1.find('you', 10, 26))     # -1
      
    • rfind、rindex操作:

      str1 = 'how are you? I am fine, thank you! and you?'
      print(str1.rfind('you'))  # 39
      
  • 其他方法:center,rjust,ljust,zfill,用特定符号填充字符串长度为指定的长度的长度。

    • 举例:

      print(str1.center(7, '+'))          # '++abc++'  
      print(str1.rjust(7, '*'))           # '****abc' 
      print(str1.ljust(7, '&'))           # 'abc&&&&'  
      print(str1.zfill(7))                # '0000abc'  
      
  • 字符串.count

    str1 = 'mnabcmnmn123mnkplmn##mn'
    print(str1.count('a'))              # 1
    print(str1.count('mn'))             # 6
    
  • startswith 和 endswith:

    • 字符串1.startswith(字符串2):检查字符串1是否是以字符串2开头

    • 字符串1.endswith(字符串2):检查字符串1是否是以字符串2结尾

      str1 = 'mnabcmnmn123mnkplmn##mn'
      print(str1.startswith('ab')) # False
      print(str1.endswith('#mn'))  # True
      
  • isdigit,isalpha,isalnum,islower,isupper

    • 字符串1.isdigit():检查字符串是否是以数字构成。

    • 字符串1.isalpha():检查字符串是否是以字母构成

    • 字符串1.isalnum():检查字符串是否是以数字加上字母构成

    • 字符串1.islower():检查字符串是否都是小写构成

    • 字符串1.isupper():检查字符串是否都是大写构成

      print('23211'.isdigit())     # True
      print("515hufkf".isalpha())  # False
      print("45fhgb".isalnum())  # True
      print('JKSS'.isupper())  # True
      print('hjas'.islower())  # True
      
  • maketrans,translate

    str1 = "15984890834"
    table = str.maketrans("1234567890","一二三四五六七八九零") # 创建一个映射表
    str2 = str1.translate(table) # 根据映射表的对应的关系替换字符串中的相关字符
    print(str2)
    
  • 字符串格式化

    • 常用的字符串占位符:%s,%d,%f

    • %s:可以给任何类型的数据占位

    • %d:只能给数字数据占位

    • %f:只能给数字数据占位(浮点数占位,默认保留6位小数)

    • %Nf:只能给数字数据占位(保留N位小数)

    • f - string:如果在字符串的最外面加了f,就可以在字符串中通过{}来给字符串提供内容:{表达式}表达式的结果就是对应的字符串内容。

      name = "小明"
      age = 18
      money = 1000
      print(f"{name}今年{age},身上有{money}元钱") # 小明身上有1000元钱
      
      • f - string的参数:{提供数据的表达式:参数}

        1. 控制小数位数:{提供数据的表达式:.Nf}

          gmv = 2500
          print(f"年销售额:{gmv*120:.2f}") # 年销售额:300000.00
          
        2. 大金额逗号分隔:{提供数据的表达式:,}

          rmb = 13018208106
          print(f"金额:{rmb:,}")  # 13,018,208,106
          
        3. 既控制小十位数,友使用逗号:{提供数据的表达式:,.Nf}

          rmb = 13018208106
          print(f"金额:{rmb:,.2f}") #13,018,208,106.00
          
        4. 小数显示成百分比:{提供数据的表达式:.N%}

          a = 0.84
          print(f"及格率:{a:.1%}")
          
        5. 控制填充方式:(实现center,rjust,ljuat,zfill的功能)

          1. {提供数据的表达式:字符>长度} (填充的放在前面)

          2. {提供数据的表达式:字符<长度} (填充的放在后面)

          3. {提供数据的表达式:字符^长度} (填充的放在中间)

          4. 如果没有提供字符,默认填充空格

            nums = [9,45,136,1598,57891]
            b = "py2204"
            for i in nums:
                print(f"{b}{i:0>5}") 
            # py220400009
            # py220400045
            # py220400136
            # py220401598
            # py220457891
            
            
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值