• 字符串功能


    字符串功能

    万能的点

    • str. :在pycharm中输入str.就会显示很多功能

    upper()/lower()字母的大小写(得到的结果是str)

    • 变量名.upper() 功能:将变量中字符串的英文字母变大写,但不会改变原变量内容。

      eg:

      value = "alex sb"
      new_value = value.upper()	#这里注意不能只写value.upper(),因为这个功能只能进行赋值,不能改变原有变量中字母的大小写。故将其变大之后的字符串赋值给一个新的变量。
      print(value,new_value)
      
    • 变量名.lower() 功能:将变量中字符串的英文字母变小写

    • eg:

    isdigit()判断str是否可以转换成int(得到的结果是bool)

    • 变量名.isdigit() 如果可以转换,会输出True;如果不能转换,会输出False

    • eg:

    strip(str)去除头尾(得到的结果是str)

    • strip() 如果括号内不写字符则默认为去除空白“space & tab &enter”,但是字符中间的空白不会去除

    • 可以指定去除头尾两端的内容

    • tab: 制表符 ---> pycharm中用 表示

    • enter: 换行符 ---> pycharm中用 表示

    • space

    • 变量名.strip() 去掉字符串左右两边的空格

    • 变量名.rstrip() 去掉字符串右边的空格

    • 变量名.lstrip() 去掉字符串左边的空格

    • eg:

    • eg:

      name = "
      	   alex    a 
      "
      new = name.strip()
      print(new)	--->	输出结果是"alex   
      "。alex前以及a后的空白全部被消除,但alex与a之间的空白没有被消除,因为内部空白被消除就改变了变量的内容。
      
      指定去除头尾两端的内容:
      name = "al
      ex   	 a"
      new = name.strip("a")	--->	输出结果是"l
      ex   	"		
      因为括号内输入了"a",所以space,tab,enter都没有被消除,只有a被消除了
      
    • 应用场景:

      # 账号:alex 密码:alex123
      # alex   alex123
      # user = input("账号:").strip()
      # pwd = input("密码:").strip()
      # if user == "alex" and pwd == "alex123":
      #     print("ok")
      # else:
      #     print("gun")
      

    replace(str,str,int)替换(得到的结果是str)

    • 变量名.replace('xx','yy',数字) 功能:将指定变量中的xx替换为yy。括号内数字为替换的个数,按从左到右的顺序。如果不写个数,则默认全部替换

    • eg:

    split(str,int)切割(返回的是列表)

    • 变量名.split('字符',数字) 功能:以括号内的某个字符将变量中的完整字符串切割成部分字符,括号内数字为切割的个数,按从左到右的顺序。如果不写字符,则默认是切割空白(即space,enter,tab);可以没有数字(即不限定切割个数)

    • 变量名.rsplit('字符',数字) 与split的区别在于:加完数字限定切割个数后,切割的顺序相反(从右向左)

    • eg:

    • a = "alex:alex123"
      lst = a.split(":")  # 默认按照空格及换行符,制表符进行分割
      print(lst[0])
      print(lst[1])
      # 这里同字符串的索引,索引是指各个字符在一个字符串里的位置,这里为列表中各个字符串在列表里的位置
      ['alex', 'alex123'] 列表
      
    • name = "alex	meet"
      print(name.split("e"))
      --->	输出结果是['al', 'x	m', '', 't']
      

    name[int]索引:(下标)

    • name[xxx] xxx代表第几位

    • eg:

      name = "meet"
      	   #0123(索引值|下标志)   从左向右
      	   #-4-3-2-1		从右向左:这对于优先输出末尾的字符串比较方便.
      print(namep[0])  ---m
      print(namep[-4])  ---m
      
      name = "meet_alex_wusir"
      a = name[5] #a
      b = name[6] #l
      c = name[7] #e
      d = name[8] #x
      print(a+b+c+d)	--->	alex
      

    name[-1:3:-1]切片+步长

    • name[起始位置:终止位置+1] 不写终止位置则默认到结尾为止;不写起始位置则默认从头开始

    • name = "meet_alex_wusir"
      a = name[5] #a
      b = name[6] #l
      c = name[7] #e
      d = name[8] #x
      print(a+b+c+d)		or		print(name[5:9])
      注意:[起始位置:终止位置+1]	
      顾头不顾腚,所以腚的位数要+1
      如果不写终止位置,即[起始位置:],则会从起始位置输出至完.
      
      如果要输出wusir:		print(name[-5:]) 这里如果写-5:-1则最后一位不会输出,然而他的最后一位还不能+1,因为0是正数的第一位,-1是反数的第一位。所以只能不写,让他输出至完。
      
      如果要输出e_l:		print(name[2:7:2])  步长:写在最后,不写时默认为一。此时为2,意为一次跨两步,即输出2,4,6。
      
      print(name[-1:3:-1])	--->	输出结果:risuw_xela_	顾头不顾腚,所以没有t。当步长为负数时顺序就变成了从右到左。
      
      因此,补偿可以控制查找方向
      

    总结:

    • 索引时,如果超出最大索引值会报错
    • 切片时,如果超出最大切片值不会报错
    • 索引和切片只能给有序数据类型使用

    id(str)

    • 字符串--str

      有序:索引

      不可变:内存地址

      # name = "meet"
      # print(id(name))
      # name = name + "最帅了"
      # print(id(name))	--->	两个id是不一致的
      
      # name = "meet"
      # name1 = "meet"
      # print(id(name))		两个id是一致的
      # print(id(name1))  # 小数据池 -- 驻留机制
      

    startswith(str)/endswith()开头/结尾(支持切片)

    统计count(str/int)(接受切片)

    • name = "meet_alex"
    • print(name.count("e")) --> 3
    • print(name.count("ee")) --> 1

    is系列

    • print(name.isalnum()) #判断变量是否是由数字,字母,汉字组成
    • print(name.isalpha()) #判断变量是否是由字母,汉字组成
    • print(name.isdigit()) #判断变量是否是阿拉伯数字 ⑤:这个也是True,是个BUG
    • print(name.isdecimal()) #判断是不是十进制,返回的是布尔值

    len(str)字符串长度

    • 方法:
      # a = 123132
      # print(len(a)) #-- str,dict,list...公共方法 (获取长度)
      
      """
      a
      l
      e
      x
      """
      # count = 0
      # while count < len(name):
      #     print(name[count])	--->a
      ,l
      ,e
      ,x
      
      #     count += 1
      
  • 相关阅读:
    FTP-实例(Md5验证)
    Socket-实例
    函数对象、函数嵌套、名称空间与作用域、装饰器
    Docker——手动创建镜像
    Docker——桥接网络配置
    Docker——网络和存储(数据卷)
    Docker-PS命令解析
    面试题44:扑克牌的顺子
    面试题42:翻转单词顺序VS左旋转字符串
    面试题41:和为s的两个数字VS和为s的连续正数序列
  • 原文地址:https://www.cnblogs.com/Guoxing-Z/p/11494976.html
Copyright © 2020-2023  润新知