python-str内置函数

str内置函数

  • 很多语言字符串使用string表示,python里面使用str表示
  • 字符串查找类,find,index,islower(判断小写)
  • find:查找字符串中是否包括一个字符串
  • index:跟find的唯一区别是index如果找不到会引发异常
  • rfind,lfind:从左开始查或者从右开始查
s = "Zhao min is very beautiful and Zou kexin is very fascinating"
s1 = "Zhao min"
# 返回第一次发现这个字符串的位置
s.find(s1)

s2 = "zhu rui"
# 返回-1表示没有找到
s.find(s2)
-1

注意区别

help(str.find)
Help on method_descriptor:

find(...)
    S.find(sub[, start[, end]]) -> int
    
    Return the lowest index in S where substring sub is found,
    such that sub is contained within S[start:end].  Optional
    arguments start and end are interpreted as in slice notation.
    
    Return -1 on failure.
help(str.index)
Help on method_descriptor:

index(...)
    S.index(sub[, start[, end]]) -> int
    
    Return the lowest index in S where substring sub is found, 
    such that sub is contained within S[start:end].  Optional
    arguments start and end are interpreted as in slice notation.
    
    Raises ValueError when the substring is not found.
# index 会报错或者引发异常
s.index(s2)
---------------------------------------------------------------------------

ValueError                                Traceback (most recent call last)

 in ()
      1 # index 会报错或者引发异常
----> 2 s.index(s2)


ValueError: substring not found
# 使用的时候还可以使用区间
s = "Zhao min is very beautiful and Zou kexin is very fascinating"
s1 = "Zhao min"

#从下标20开始查找,看能否找到了
s.find(s1,20)
-1

判断类函数

  • 此类函数的特点是一般都用is开头,比如islower

  • isalpha:判断是否是字母,需要注意的是两点:

    • 此类函数默认的前提是字符串至少包含一个字符,如果没有,同样返回False
    • 汉字被认为是alpha,所以,此函数不能作为区分英语字母还是汉字的标识,区分中英文请使用Unicode码
    • 注意区别,防止被坑
  • isdigit,isnumeric,isdecimal三个判断数字的函数
    - 此类函数不建议使用,在后期爬虫中,判断是否是数字建议采用正则表达式的方式

      digit()
      True: Unicode数字,byte数字(单字节),全角数字(双字节),罗马数字
      False: 汉字数字
      Error: 无
    
      isdecimal()
      True: Unicode数字,,全角数字(双字节)
      False: 罗马数字,汉字数字
      Error: byte数字(单字节)
      
      isnumeric()
      True: Unicode数字,全角数字(双字节),罗马数字,汉字数字
      False: 无
      Error: byte数字(单字节)
    
  • islower:判断字符串是大写或小写

# 以下三个都不是的,因为有除了字以外的空格等
s1 = "我们对着灯发誓,敏儿是最美的"
s2 = "little min is friend of mine"
s3 = "Zhao min is 1.st"

print(s1.isalpha())
print(s2.isalpha())
print(s3.isalpha())
False
False
False
# 需要注意的是,因为输入法的问题,输入罗马数字可能得不到我们想要的结果
chin_num = "一二三四"
print(chin_num.isdigit())
print(chin_num.isnumeric())
print(chin_num.isdecimal())
False
True
False

内容判断类

  • startswith/endswith:是否以xxx开头或者结尾
    • 检测某个字符串是否以某个字串开头,常用三个参数
    • suffix:被检查的字符串,必须有
    • start:检查范围的开始范围
    • end:检查范围的结束范围
  • islower/isupper:判断字符串是否是大写或者小写
miner = "Zhao min"
zhurui = "Zhu rui"

s = "Zhao min really love Zhu rui"
print(s.startswith(miner))
print(s.endswith(zhurui))
True
True
s1 = "Zhao min is beautiful"
s2 = "Zhaominisbeautiful"
s3 = "zhaominisbeautiful"
# s4包含空格,但空格不影响结果,忽略
s4 = "Zhao min is verybeautiful"
s5 = "敏儿是最美的"

print(s1.islower())
print(s2.islower())
print(s3.islower())
print(s4.islower())
print(s5.islower())

print(s5.isupper())# 汉字字符串无大小写
False
False
True
False
False
False

操作类函数

  • format:格式化用的
  • strip:这个函数主要作用是删除字符串两边的空格,其实这个函数允许你去定义删除字符串两边的哪个字符,只不过如果不指定的话默认是空格。同样还有lstrip和rstrip,r表示右边,l表示左边,即删除字符串左边或者右边制定字符,默认空格。需要注意的是:此处的删除不是删除一个,是指从头开始符合条件的连续字符。
  • join :这个函数主要对字符串进行拼接。它需要一个可以迭代的内容作为参数(迭代后概念后面介绍,此处暂时理解成一个列表),功能是把可迭代的字符串拼接在一起,中间使用调用字符串作为分隔符。
c =  "XXXXXxiao min is fascinating       "
# 是否成功删除两边空格不能观察出来
print(c.strip(),end = "--------")
print()
print(c.strip("X"),end = "--------")
XXXXXxiao min is fascinating--------
xiao min is fascinating       --------
#join 的例子,需要把s1,s2,s3,作为分隔符,把ss内的内容拼接在一起
s1 = "$"
s2 = "-"
s3 = " "
ss = ["i","love","you","so","much"]
print(s1.join(ss))
print(s2.join(ss))
print(s3.join(ss))
i$love$you$so$much
i-love-you-so-much
i love you so much

你可能感兴趣的:(笔记)