文章目录
关于字符串的一些规则
双引号
在我们需要在字符串中打所有格时,会出现下面的情况。
'That is Alice's cat.'
该代码会不被认为是一个字符串数据。解决办法是用双引号。
"That is Alice's cat."
转义符号
转义字符允许使用在其他情况下不可能放入字符串的字符。
常用转义符号如下:
\’
单引号(如果不想用双引号的话可以用转义符号)
\"
双引号
\t
Tab
\n
另起一行
\\
反斜杠
应用如下:
>>> print("Hello there!\nHow are you?\nI\'m doing fine.")
Hello there!
How are you?
I'm doing fine.
如果你想把字符串中的代码原封不动的打印可以在字符串前加r
>>> print(r'That is Carol\'s cat.')
That is Carol\'s cat.
三引号
Python中的多行字符串以三个单引号或三个双引号开始和结束。在“三重引号”之间的任何引号、制表符或换行符都被认为是字符串的一部分。Python的块缩进规则不适用于多行字符串中的行。
print('''Dear Alice,
Eve's cat has been arrested for catnapping, cat burglary, and extortion.
Sincerely,
Bob''')
执行结果:
Dear Alice,
Eve's cat has been arrested for catnapping, cat burglary, and extortion.
Sincerely,
Bob
就是输入啥就输出啥
字符串的索引和切片
实际上可以把字符串看作列表,跟列表的索引和切片规则是相似的。
>>> spam = 'Hello world!'
>>> spam[0]
'H'
>>> spam[4]
'o'
>>> spam[-1]
'!'
>>> spam[0:5]
'Hello'
>>> spam[:5]
'Hello'
>>> spam[6:]
'world!'
in和not in
跟列表相似,输出布尔值。
>>> 'Hello' in 'Hello World'
True
>>> 'Hello' in 'Hello'
True
>>> 'HELLO' in 'Hello World'
False
>>> '' in 'spam'
True
>>> 'cats' not in 'cats and dogs'
False
字符串的操作符与方法
upper( ),lower( ), isupper( ), islower( )
upper( )可以将字符串中的字母全变成大写
lower( )可以将字符串中的字母全变成小写
isupper( )可以判断字符串中是否全部是大写,返回布尔值
islower( )可以判断字符串中是否全部是小写,返回布尔值
>>> spam = 'Hello world!'
>>> spam = spam.upper()
>>> spam
'HELLO WORLD!'
>>> spam = spam.lower()
>>> spam
'hello world!'
>>> spam = 'Hello world!'
>>> spam.islower()
False
>>> spam.isupper()
False
>>> 'HELLO'.isupper()
True
>>> 'abc12345'.islower()
True
>>> '12345'.islower()
False
>>> '12345'.isupper()
False
isX方法
相似于isupper( ) 和 islower( ),都返回布尔值
语句 | 效果 |
---|---|
isalpha( ) | 是不是只有非空字母 |
isalnum() | 是不是只有非空数字和数字 |
isdecimal() | 是不是只有非空数学字符 |
isspace() | 是不是只有非空的空格,tab和换行符 |
istitle() | 是不是首字母大写其余小写 |
>>> 'hello'.isalpha()
True
>>> 'hello123'.isalpha()
False
>>> 'hello123'.isalnum()
True
>>> 'hello'.isalnum()
True
>>> '123'.isdecimal()
True
>>> ' '.isspace()
True
>>> 'This Is Title Case'.istitle()
True
>>> 'This Is Title Case 123'.istitle()
True
>>> 'This Is not Title Case'.istitle()
False
>>> 'This Is NOT Title Case Either'.istitle()
False
isX方法在判别用户输入时非常有用!
startwith( )和endwith( )方法
可以用来判断参数是否在字符串开头或结尾处,输出布尔值。
>>> 'Hello world!'.startswith('Hello')
True
>>> 'Hello world!'.endswith('world!')
True
>>> 'abc123'.startswith('abcdef')
False
>>> 'abc123'.endswith('12')
False
>>> 'Hello world!'.startswith('Hello world!')
True
>>> 'Hello world!'.endswith('Hello world!')
True
join( )和split( )方法
这两种方法常用于将列表与字符串相互转化的用途。
join( )
当需要将一组字符串连接到一个字符串值中时,join()方法非常有用。对一个字符串调用join()方法,获取一个字符串列表,并返回一个字符串。
>>> ', '.join(['cats', 'rats', 'bats'])
'cats, rats, bats'
>>> ' '.join(['My', 'name', 'is', 'Simon'])
'My name is Simon'
>>> 'ABC'.join(['My', 'name', 'is', 'Simon'])
'MyABCnameABCisABCSimon'
参数是.join( )前引号的内容,可以指定用什么将()中这一组字符串连接起来。
split( )
相反的split( )是将一个字符串分割成几个字符串,分返回一个列表。
>>> 'MyABCnameABCisABCSimon'.split('ABC')
['My', 'name', 'is', 'Simon']
>>> 'My name is Simon'.split('m')
['My na', 'e is Si', 'on']
参数是()中选择以什么为分割标志,分割标志间的代码构成一个个新的字符串。
rjust( ),ljust( )和center( )
rjust( )以及ljust( )可以返回它们调用的字符串的填充版本,并默认插入空格来调整文本。
函数有两个参数,参数a为返回的字符串长度,参数b为用来填充的字符。
>>> 'Hello'.rjust(20, '*')
'***************Hello'
>>> 'Hello'.ljust(20, '-')
'Hello---------------'
center( )可以将原有的字符串至于中间位置,其他的和上面两个函数相近。
>>> 'Hello'.center(20)
' Hello '
>>> 'Hello'.center(20, '=')
'=======Hello========'
应用代码举例:
def printPicnic(itemsDict, leftWidth, rightWidth):
print('PICNIC ITEMS'.center(leftWidth + rightWidth, '-'))
for k, v in itemsDict.items():
print(k.ljust(leftWidth, '.') + str(v).rjust(rightWidth))
picnicItems = {'sandwiches': 4, 'apples': 12, 'cups': 4, 'cookies': 8000}
printPicnic(picnicItems, 12, 5)
printPicnic(picnicItems, 20, 6)
执行结果:
---PICNIC ITEMS--
sandwiches.. 4
apples...... 12
cups........ 4
cookies..... 8000
-------PICNIC ITEMS-------
sandwiches.......... 4
apples.............. 12
cups................ 4
cookies............. 8000
strip( ), rstrip( )和lstrip( )
默认将字符串中的空格,tab和换行符抽掉,返回一个抽取后的字符串。
>>> spam = ' Hello World '
>>> spam.strip()
'Hello World'
>>> spam.lstrip()
'Hello World '
>>> spam.rstrip()
' Hello World'
pyperclip模块
该模块具有copy( )和paste( )函数,可以将文本发送到计算机剪贴板上。
>>> import pyperclip
>>> pyperclip.copy('Hello world!')
>>> pyperclip.paste()
'Hello world!'
可以通过这个模块在py文件内外传递文本。