1、string的格式
string可以使用单引号、双引号、三引号括起来,但他们的适用场景不同。
单引号、双引号:适用场景一样,都是用于标识一个字符串的开始和结束,不过如果字符串中包含与界定字符串开始与结束相同的字符,例如’或者”,需要使用\进行转义,转义的意思是说,此引号是一个普通的字符,不具有界定字符串开始或者结束的功能。
三引号: 可以按照引号里面的格式原封不动的输出格式,主要用于跨行的功能,比如多行注释
raw原始字符串:在字符串前的r,指示后面的字符都是普通字符,比如里面含有转义字符\,那么他不具有转义功能。
目前,我们经常需要使用的转义字符如下:
转义字符 |
说明 |
\’ |
表示单引号 |
\” |
表示双引号 |
\t |
tab |
\n |
回车 |
\\ |
表示\ |
实例:
# "中可以包括',不需要转义
print("nwumba's content is good")
# "中包括",需要转义
print("nwumba\"s content is good")
# '中包括",不需要转义
print('nwumba"s content is good')
# '中包括',需要转义
print('nwumba\'s content is good')
# 使用引号可以原封不动的输出原有的字符串格式
print(''' nwumba's
coontent
is good''')
print(""" nwumba's
coontent
is good""")
# 因为使用r把字符串标识为原始字符串,所以\n不具有转义功能,会原封不动的输出
print(r"nwumba\ns content is good")
print(r'nwumba\ns content is good')
2、string索引以及分片
你可以把string看成和list一样的,字符串中的每个字符都可以当成list的一个元素,所以用整数索引和范围切片都适用于string.
str="www.nwumba.cn"
print(str[0])
print(str[5])
print(str[0:5])
3、in、not in
in、not in同样适用于字符串
str="www.nwumba.cn"
"nwumba" in str
"NWUMBA" in str
'' in str
"nginx.nwumba.cn" not in str
4、string插值
如果一个string中有%s字符,那么这就意味着%s这个位置会被后面的变量替换,这就叫插值。例如:
str="www.nwumba.cn"
print("website domain is %s" % str)
#python 3.6引入了f字符,如果在一个字符前面存在f字符,那么在这个字符串中用{}括起来的表达式将被替换成实际的值。#例如:
str="www.nwumba.cn"
print(f"website domain is {str}")
5、upper()、lower()、isupper(0、islower()
upper(): 把字符串中的字母转换成大写形式
lowwer(): 把字符串中的字母转换成小写形式
isupper(): 字符串中的字母是否都是大写
islowwer(): 字符串中的字母是否都是小写
str="WWw.nwumba.cn"
print(str.upper())
print(str.lower())
print(str.isupper())
print(str.islower())
6、isX()方法
isalpha(): 仅包括字母时,返回True,否则返回False
isalnum(): 仅包括字母和数字时,返回True,否则返回False
isdecimal(): 仅包括数字时,返回True,否则返回False
isapce(): 仅包括空格、tab、换行符时返回True,否则返回False
istitle(): 首字母大写,其余字母小写时返回True,否则返回False
"nwumba.cn".isalpha()
"nwumba.cn123".isalpha()
"nwumba.cn".isalnum()
"123".isalnum()
"123".isdecimal()
" ".isspace()
"Nwumba.cn".istitle()
"NwuMba.cn"istitle()
7、startswith()、endswith()
starstwith(qrg): 以字符串arg开头时返回True
endswith(arg): 以字符串arg结尾时返回True
str="nwumba.cn"
print(str.startswith("nwu"))
print(str.endswith(".cn"))
8、join()、split()
(sep).join(list_arg): 使用sep分隔符把list_arg中的每个字符串连成单个字符串
str.split(arg): 把str用arg隔开,形成多个字符串
print(".".joing(["www","nwumba","cn"]))
print("www.nwumba.cn".split("."))
9、partition()
partition(sep_str):把一个字符串分成部分,分别是sep_str前的字符串、sep_str本身、以及sep_str后面的字符串,这三部分形成一个元组
str="www.nwumba.cn"
print(str.partition("nwu"))
#如果字符里面有多个字符串和sep_str,那么partition方法只会应用于第一个匹配的字符串
print(str.partition("."))
# 如果没有和sep_str匹配的字符串,则会返回整个字符串,其余两两部分为空
print(str.partition("baidu"))
10、rjust()、ljust()、center()
rjust(length,str): 字符串向右增长到length长度,左边用str字符填充
ljust(length,str): 字符串向左增长到length长度,右边用str字符填充
center(length,str): 字符串增长到length长度,且居中对齐,左边和右边用str字符填充
print("nwumba.cn".rjust(20,"*"))
print("nwumba.cn".ljust(20,"*"))
print("nwumba.cn".center(20,'*"))
11、strip()、rstrip()、lstrip()
strip(str): 删除字符串两边的str字符
rstrip(str): 删除字符串右边的str字符
lstrip(str): 删除字符串左边的str字符
print("www.nwumba.cn".strip("wn"))
print("www.nwumba.cn".lstrip("wn"))
print("www.nwumba.cn".rstrip("wn"))
12、ord()、chr()
ord(): 把字母转换成相应的ascii码
chr(): 把ascii码转换成字母
print(ord("A"))
print(chr(65))
13、pyperclip模块
pyperclip模块可以模拟赋值粘贴的操作,因为是第三方模块,所以需要看书安装,命令为pip install pyperclip,常用函数有两个:
pypercli.copy(str): 把str的内容放到剪贴板中去
pypercli.paste(): 把剪贴板的内容拿出来
14、综合实例
#! python3
# mclip.py - 通过命令行输入的key,在TEXT dict中查询此key对应的value,把value复制到剪贴板中去
TEXT = {'nwumba': """www.nwumba.cn""",
'baidu': """www.baidu.com""",
'google': """www.google.com"""}
import sys, pyperclip
if len(sys.argv) < 2:
print('Usage: py mclip.py [keyphrase] - copy phrase text')
sys.exit()
# sys.argv是一个数组,sys.argv[0]是程序的名字,从第二个参数sys.argv[1]开始,才是自定义的参数
keyphrase = sys.argv[1] # 取得命令行输入的key
if keyphrase in TEXT: # 在dict中查找是否有此key
pyperclip.copy(TEXT[keyphrase]) # 把key对应的value复制到剪贴板中去
print('Text for ' + keyphrase + ' copied to clipboard.')
else:
print('There is no text for ' + keyphrase) #没有查找到用户输入的key
把程序存储为mclip.py,到此目录下,通过命令./mclip.py key运行程序
15、综合实例
#! python3
# addbullet.py - 获取剪贴板中的每行,在每行的开始位置加入*和空格
# of each line of text on the clipboard.
import pyperclip
text = pyperclip.paste() # 获取剪贴板中的文本
# 剪贴板中的文本是一个字符串,每行都以\n结尾
lines = text.split('\n')
for i in range(len(lines)): # 循环每行
lines[i] = '* ' + lines[i] # 在每行开始加入*和空格
text = '\n'.join(lines) # 处理后的文本在放到剪贴板前,需要在每行后面加\n,加为原始字符串就是每行为\n
pyperclip.copy(text) # 把处理后的字符串复制到剪贴板
把程序存储为addbullet.py,先随意复制一段多行文本,然后运行程序,再粘贴出来即可看到效果
原创文章,转载请注明出处:http://www.nwumba.cn/article/15/