目录
如何获取一个字符串(str)
就像这样:
>>> a='Hello world!' #单引号
>>> a
'Hello world!'
>>> a="Hello world!" #双引号
>>> a
'Hello world!'
>>> a='''Hello world!''' #三引号(三个单引号)
>>> a
'Hello world!'
空字符串:
>>> a=str() #用str函数获取空字符串
>>> a
''
>>> a='' #单引号,包含的是空字符串
>>> a
''
>>> a="" #双引号
>>> a
''
>>> a='''''' #三引号(可以,只要不嫌麻烦的话)
>>> a
''
有人可能要问,为什么要用不同引号呢?
若要输出不同引号,那么最外层就要用不同的引号包围:
>>> print('''"Tony says:'I am so handsome!'"''')#三引号包围,内含双引号和单引号
"Tony says:'I am so handsome!'"
以及调用input()输入的内容,返回的也是字符串:
>>> a=input()
Hello world!
>>> a
'Hello world!'
>>> a=input()
#不输入,返回空字符串
>>> a
''
基本操作
- 字符串转列表:
>>> a='Hello world!'
>>> list(a)
['H', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd', '!']
- 字符串转元组:
>>> a='Hello world!'
>>> tuple(a)
('H', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd', '!')
- 字符串转字典:不行。
- 字符串转集合:
>>> a='Hello world!'
>>> set(a)
{'H', 'w', 'e', 'l', 'r', 'o', '!', ' ', 'd'}
注意!重复的字符不会被重复地录入集合当中。
- 字符 转ASCII码:
>>> a='A'
>>> ord(a) #请记住ord()
65
>>> a='Hello world!'
>>> ord(a) #对象不可以是字符串
Traceback (most recent call last):
ord(a)
TypeError: ord() expected a character, but string of length 12 found
>>> a='A'
>>> int(a) #不可以直接将str类转换为int类
Traceback (most recent call last):
int(a)
ValueError: invalid literal for int() with base 10: 'A'
- ASCII码转字符:
>>> chr(65) #请记住chr()
'A'
字符串遍历
>>> a='Hello world!'
>>> for i in a: #如果in后面不是range而是某个对象名,那么就会遍历该对象
print(i)
H
e
l
l
o
w
o
r
l
d
!
大小写变换
如果勤奋一点,用上述的“ord”和“chr”函数编一个新函数,倒也没问题。但是Python拥有自带的大小写变换方法:
方法 | 功能 |
---|---|
x.lower() | 将字符串x中的所有字符变成小写形式并返回 |
x.upper() | 将字符串x中的所有字符变成大写形式并返回 |
x.capitalize() | 将字符串x中的首字符变成大写形式并返回 |
x.title() | 将字符串x中的所有单词首字符变成大写形式并返回 |
x.swapcase() | 将字符串x中的所有字符大小写互换并返回 |
string库的一些功能
通过调用string库的一些函数,可以获取常用的字符。
>>> import string
>>> string.digits
'0123456789' #数字
>>> string.ascii_letters
'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ' #大小写字母
>>> string.punctuation
'!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~' #符号