string内建函数

  1 # 内建函数
  2 # 1、eval(str) : 把str转成可执行的代码
  3 print(eval("123"))
  4 str1 = eval("123")
  5 print(type(str1)) # int
  6 print(eval("1 + 2")) # 3
  7 print(eval("-1234")) # -1234
  8 print(eval("+567")) # 567
  9 # print(eval("123abc")) # SyntaxError: unexpected EOF while parsing
 10 
 11 # 2、len(str) 返回字符串的长度 ****
 12 str2 = "123456789"
 13 print(len(str2)) # 9
 14 
 15 # 3、字母大小写转换 不会影响原始字符串,会返回一个新的字符串 ***
 16 str3 = "hoW aRe You?I'm fAIn. ThAnk yOU."
 17 print(str3)
 18 # 3.1、lower() 将所有字母转成小写
 19 str4 = str3.lower()
 20 print(str4)
 21 print(str3)
 22 # 3.2、upper() 将所有字母转成大写
 23 print(str3.upper())
 24 # 3.3、swapcase() 将大写转为小写,将小写转为大写
 25 print(str3.swapcase())
 26 # 3.4、title() 每个单词的首字母大写
 27 print(str3.title())
 28 # 3.5、capitalize() 每个段落的首字母大写
 29 print(str3.capitalize())
 30 
 31 # 4、str.count(subStr [,begin, end]) 返回str中subStr出现的次数
 32 # 如果指定begin与end的值,根据给定的范围获取次数
 33 str4 = "ni hao bye ni bye ya o hei ni hao"
 34 print(str4.count("ni")) # 3
 35 print(str4.count("ni", 3, 32))
 36 
 37 # 5、检测一个字符串中有没有另一个字符串
 38 # in not in
 39 str5 = "abcdefghidejk"
 40 # 5.1、str.find(subStr [,begin, end]) 检测str中有没有subStr,
 41 # 如果有,返回第一次找到的下标;如果没有,返回-1
 42 # 从左向右查
 43 print(str5.find("de")) # 3
 44 print(str5.find("qw")) # -1
 45 print(str5.find("de", 4, 13)) # 9
 46 # 5.2、str.rfind(subStr [,begin, end]) 检测str中有没有subStr,
 47 # 如果有,返回第一次找到的下标;如果没有,返回-1
 48 # 从右向左查
 49 print(str5.rfind("de")) # 9
 50 # 5.3、str.index(subStr [,begin, end]) 检测str中有没有subStr,
 51 # 如果有,返回第一次找到的下标;如果没有,返回错误 ValueError: substring not found
 52 # 从左向右查
 53 print(str5.index("de")) # 3
 54 # print(str5.index("qw")) # 返回错误
 55 print(str5.index("de", 4, 13)) # 9
 56 # 5.4、str.rindex(subStr [,begin, end]) 检测str中有没有subStr,
 57 # 如果有,返回第一次找到的下标;如果没有,返回错误 ValueError: substring not found
 58 # 从右向左查
 59 print(str5.rindex("de")) # 9
 60 
 61 
 62 # 6、返回一个指定长度的字符串
 63 # 6.1、str.center(len [,fillChar]) 返回一个长度为len的字符串,str在
 64 # 中间位置,其他位置用fillChar补齐,默认为空格
 65 str6 = "pyc"
 66 print(str6.center(12))
 67 print(str6.center(12, "*"))
 68 # 6.2、str.ljust(len [,fillChar]) 返回一个长度为len的字符串,str在
 69 # 左边,其他位置用fillChar补齐,默认为空格
 70 print(str6.ljust(12))
 71 print(str6.ljust(12, "&"))
 72 # 6.3、str.rjust(len [,fillChar]) 返回一个长度为len的字符串,str在
 73 # 右边,其他位置用fillChar补齐,默认为空格
 74 print(str6.rjust(12))
 75 print(str6.rjust(12, "#"))
 76 # 6.4、str.zfill(len) 返回一个长度为len的字符串,str在
 77 # 右边,其他位置用数字0补齐
 78 print(str6.zfill(12))
 79 
 80 # 7、截掉指定字符
 81 str7 = " str "
 82 str8 = "******wyc******"
 83 # 7.1、str.strip(subStr) 将str左右两边的subStr截掉,如果不给
 84 # 定subStr,默认为空格
 85 print(str7.strip())
 86 print(str8.strip("*"))
 87 # 7.2、str.lstrip(subStr) 将str左边的subStr截掉,如果不给
 88 # 定subStr,默认为空格
 89 print(str7.lstrip())
 90 print(str8.lstrip("*"))
 91 # 7.3、str.rstrip(subStr) 将str右边的subStr截掉,如果不给
 92 # 定subStr,默认为空格
 93 print(str7.rstrip())
 94 print(str8.rstrip("*"))
 95 
 96 
 97 # 8、切割字符串,返回一个列表类型的数据
 98 # 8.1、str.split(subStr [,num]) 以subStr切割str字符串,如果num无值,默认
 99 # 全切,如果num有值,切割次数的最大值为num次
100 # 返回一个列表,将切割好的字符串放到列表中
101 str9 = "pyc*is*a*good*girl"
102 print(str9.split("*"))
103 print(str9.split("*", 2))
104 # 8.2、str.splitlines([bool]) 以行(\n \r \n\r)切割str字符串,
105 # 返回一个列表,将切割好的字符串放到列表中
106 # 当bool为False时,不保留换行符,默认值;当bool为True时,保留换行符
107 print('---------------------')
108 str11 = "abc\ndef\noop\nduoheshui\nhe"
109 print(str11.splitlines())
110 print(str11.splitlines(False))
111 print(str11.splitlines(True))
112 str12 = """abc
113 def
114 ghi
115 jk"""
116 print(str12)
117 print(str12.splitlines())
118 
119  
120 
121 
122 # 9、拼接字符串
123 # str.join(iter) : 将iter中的元素使用str拼接为一个字符串
124 list1 = ["123", "abc", "def", "456"]
125 print("*".join(list1))
126 
127 # 10、字符与ASCII之间的转换
128 # 10.1、ord() 将某个字符转为ASCII
129 str10 = "A"
130 print(ord(str10)) # 65
131 # 10.2、chr() 将ASCII转为字符
132 print(chr(66))
133 
134 print(ord("")) # 28504
135 print(chr(23102)) #
136 
137 # 11、返回字符串中的最大值或最小值,比较ASCII的值
138 str13 = "qAfSCkZzw"
139 print(max(str13)) # z
140 print(min(str13)) # A
141 
142 # 12、替换字符串, 返回一个新的字符串
143 str14 = "ni hao good well ni hao bye ni hao ni"
144 # 12.1、str.replace(oldStr, newStr [, num]) 将str中的oldStr旧字符串
145 # 替换为newStr新字符串
146 # 如果num无值,默认全部替换;如果num有值,最多替换num次
147 print(str14)
148 print(str14.replace("hao", "buhao"))
149 print(str14.replace("hao", "huai" , 2))
150 
151 # 12.2、str.maketrans() 创建一个映射表,并将该映射表返回
152 # 当maketrans有两个字符串类型的参数时,要求这两个字符串的长度一致,
153 # 如果长度不一致,会报错
154 # 当maketrans只写一个字参数时,要求这参数为字典类型的数据
155 t1 = str.maketrans("abcd", "1234")
156 # ValueError: the first two maketrans arguments must have equal length
157 print(t1)
158 t2 = str.maketrans({"q": "9", "w": "8"})
159 print(t2)
160 # str.translate(t) 根据t(上面的方式创建的映射表)替换str中对应的字符
161 str15 = "abcdefgqwwqabc"
162 print(str15.translate(t1))
163 print(str15.translate(t2))
164 
165 # 13、用于判断的函数
166 # isalpha() 字符串中至少有一个字符,并且所有字符都是字母,
167 # 返回True,否则返回False
168 print("".isalpha()) # F
169 print("1234".isalpha()) # F
170 print("abc".isalpha()) # T
171 # isupper() 字符串中至少有一个是区分大小写的字符,
172 # 并且所有字符都是大写,返回True,否则返回False
173 print(" ".isupper()) # F
174 print("abcD".isupper()) # F
175 print('ABC123'.isupper()) # T
176 # islower() 字符串中至少有一个是区分大小写的字符,
177 # 并且所有字符都是小写,返回True,否则返回False
178 print(" ".islower()) # F
179 print("abcD".islower()) # F
180 print('abc123'.islower()) # T
181 # istitle() 字符串中至少有一个是区分大小写的字符,并且所有字符都是
182 # 标题化,返回True,否则返回False
183 print('abc123'.istitle()) # F
184 print('Ade Q123 Io'.istitle()) # T
185 
186 # isalnum() 字符串中至少有一个字符,并且所有字符都是字母或数字,
187 # 返回True,否则返回False
188 print(' 12345 '.isalnum()) # F
189 print('12asdf'.isalnum()) # T
190 
191 # isdigit() 字符串中至少有一个字符,并且所有字符都是数字,
192 # 返回True,否则返回False
193 print(' 12345 '.isdigit()) # F
194 print('12asdf'.isdigit()) # F
195 print('12123456'.isdigit()) # T
196 
197 # isspace() 字符串中至少有一个字符,并且所有字符都是空格,
198 # 返回True,否则返回False
199 print(' '.isspace()) # T
200 print(' 1234 '.isspace()) # F
201 # 判断 正则
202 
203 # 14、string.startswith(str [, begin, end])
204 # 判断string是否以str开头,是返回True,否则返回False ,
205 # begin, end指定范围查找
206 str20 = "http://www.baidu.com"
207 print(str20.startswith("http://"))
208 print(str20.startswith("www"))
209 print(str20.startswith("www", 7, 15))
210 
211 # string.endswith(str [, begin, end])
212 # 判断string是否以str开头,是返回True,否则返回False ,
213 # begin, end指定范围查找
214 print(str20.endswith(".com"))
215 print(str20.endswith("www"))
216 print(str20.endswith("www", 0, 10))
217 
218 # 15、编码解码
219 # string.encode(encoding) 以encoding指定的格式进行编码
220 str23 = "我是pycPYC!@#¥123"
221 print(str23)
222 str24 = str23.encode("GBK")
223 print(str24)
224 print(type(str24)) # bytes
225 print(str23.encode("utf-8"))
226 
227 # string.decode(encoding) 以encoding指定的格式进行解码
228 print(str24.decode("GBK"))
229 
230 # 注:解码时要求知道字节是以什么方式进行编码的,编码解码格式不一致时,
231 # 返回错误。

 

posted @ 2019-07-26 19:47  巨菜的小鸟  阅读(256)  评论(0编辑  收藏  举报