DAY 007--str(计数、编码修改、转换空格、查找、格式化)

str(计数、编码修改、转换空格、查找、格式化)                         

1、str.count(sub, start= 0,end=len(string))                                                       

  • sub -- 搜索的子字符串
  • start -- 字符串开始搜索的位置。默认为第一个字符,第一个字符索引值为0。
  • end -- 字符串中结束搜索的位置。字符中第一个字符的索引为 0。默认为字符串的最后一个位置。
s1="abcdaefa"
print(s1.count("a"))

3

2、str.encode(encoding='UTF-8',errors='strict)                                               

  • encoding -- 要使用的编码,如: UTF-8。
  • errors -- 设置不同错误的处理方案。默认为 'strict',意为编码错误引起一个UnicodeError。 其他可能得值有 'ignore', 'replace', 'xmlcharrefreplace', 'backslashreplace' 以及通过 codecs.register_error() 注册的任何值。

编码修改,将unicode编码转换成其他编码的字符串,(转码的时候一定要先搞明白,字符串str是什么编码,然后decode成unicode,然后再encode成其他编码) 

str="好好学习"#默认编码为UTF-8
print(str.encode)
<built-in method encode of str object at 0x101df74a8>

str_gbk=str.encode("GBK")
print("GBK 编码:", str_gbk)
GBK 编码: b'xbaxc3xbaxc3xd1xa7xcfxb0'

  

3、str.expandtabs(tabsize=8)                                                                        

  • tabsize -- 指定转换字符串中的 tab 符号(' ')转为空格的字符数。

str.expandtabs(n) 跟踪每行上的当前光标位置,并将其找到的每个制表符字符替换为当前光标位置到下一个制表位的空格数。

str.expandtabs(n) 不等于 str.replace(" ", " " * n)

string.expandtabs(n) 相当于:(目前没看懂!明儿再看看!)

def expandtabs(string, n):
        result = ""
        pos = 0
        for char in string:
            if char == "	":
                # instead of the tab character, append the
                # number of spaces to the next tab stop
                char = " " * (n - pos % n)
            if char == "
":
                pos = 0
            else:
                pos += len(char)
            result += char
        return result
str="好好学习	天天	向上	"
print(str.expandtabs())

好好学习    天天      向上  

4、str.find(str, beg=0, end=len(string))                                                           

  • str -- 指定检索的字符串
  • beg -- 开始索引,默认为0。
  • end -- 结束索引,默认为字符串的长度。
  • 如果包含子字符串返回开始的索引值,否则返回-1
s="what is your name?"
s1="is"
print(s.find(s1))
5

print(s.find(s1,7))
-1

print(s.find(s1,4))
5

5、str.rfind(str, beg=0 end=len(string))                                                          

Python rfind() 返回字符串最后一次出现的位置(从右向左查询),如果没有匹配项则返回-1。

  • str -- 查找的字符串
  • beg -- 开始查找的位置,默认为 0
  • end -- 结束查找位置,默认为字符串的长度。
str = "this is really a string example....wow!!!";
substr = "is";

print str.rfind(substr);
5

print str.rfind(substr, 0, 10);
5

print str.rfind(substr, 10, 0);
-1 

6、str.format()                                                                                             

  • Python2.6 开始,新增了一种格式化字符串的函数 str.format(),它增强了字符串格式化的功能。
  • 基本语法是通过 {} 和 : 来代替以前的 % 。
  • format 函数可以接受不限个参数,位置可以不按顺序。
s="my name is {}".format("Warmjunee")
print(s)

my name is Warmjunee

Marked on 2018.04.07

原文地址:https://www.cnblogs.com/JunSheep/p/8734483.html