Python理论6 字符串

关于字符串的一些规则

双引号

在我们需要在字符串中打所有格时,会出现下面的情况。

'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文件内外传递文本。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值