内建函数
标准类型函数
>>> str1='abc'
>>> str2='def'
>>> str3='hij'
>>> len(str1) #返回字符串的字符数
3
>>> max(str1) #返回最大或最小的字符,按照ASCII码值排列
'c'
>>> min(str1)
'a'
>>> for i,t in enumerate(str1):
... print(i,t)
...
0 a
1 b
2 c
字符串类型函数
>>> value=input("Enter a number:") # 使用给定字符串提示用户输入并将输入返回
Enter a number:123
>>> value
'123'
>>> chr(65) #以一个范围在range(256)内的整数做参数,返回一个对应的字符
'A'
>>> ord('A') #chr的配对函数
65
字符串内建函数
方法 | 描述 |
---|---|
string.capitalize() | 把字符串的第一个字符大写 |
string.center(width) | 返回一个原字符串居中,并使用空格填充至长度width的新字符串 |
string.count(str,beg=0,end=len(string)) | 返回str在string里面出现的次数,如果beg或者end指定则返回指定范围内str出现的次数 |
string.decode(encoding=’UTF-8’,errors=’strict’) | 以encoding指定的编码格式解码string,如果出错默认报一个ValueError的异常,除非errors指定的是‘ignore’或者‘replace’ |
string.encode(encoding=’UTF-8’,errors=’strict’) | 以encoding指定的编码格式编码string,如果出错默认报一个ValueError的异常,除非errors指定的是‘ignore’或者‘replace’ |
string.endswith(obj,beg=0,end=len(string)) | 检查字符串是否以obj结束,如果beg或者end指定则检查指定的范围内是否以obj结束,如果是,返回True,否则返回False |
string.expandtabs(tabsize=8) | 把字符串string中的tab符号转为空格,默认的空格数tabsize是8 |
string.find(str,beg=0,end=len(string)) | 检查str是否包含在string中,如果beg和end指定范围,则检查是否包含在指定范围内,如果是返回开始的索引值,否则返回-1 |
string.index(str,beg=0,end=len(string)) | 跟find方法一样,不过如果str不在string中会报一个异常 |
string.isalnum() | R如果string至少有一个字符并且所有字符都是字母或者数字则返回True,否则返回False |
string.isalpha() | 如果string至少有一个字符并且所有字符都是字母则返回True,否则返回False |
string.isdecimal() | 如果string只包含十进制数字则返回True否则返回False |
string.isdigit() | 如果string值包含数字则返回True否则返回False |
string.islower() | 如果string中包含至少一个区分大小写的字符,并且所有这些字符都是小写,则返回True,否则返回False |
string.isnumeric() | 如果string中只包含数字字符,则返回True,否则返回False |
string.isspace() | 如果string中只包含空格,则返回True,否则返回False |
string.istitle() | 如果string是标题化的则返回True,否则返回False |
string.isupper() | 如果string中包含至少一个区分大小写的字符,并且所有这些字符否是大写,则返回True,否则返回False |
string.join(seq) | Merges(concatenates)以string作为分隔符,将seq中所有的元素合并为一个新的字符串 |
string.ljust(width) | 返回一个原字符串左对齐,并使用空格填充至长度width的新字符串 |
string.lower() | 转换string中所有大写字符为小写 |
string.lstrip() | 截掉string左边的空格 |
string.partition(str) | 有点像find和split的结合体,从str出现的第一个位置起,把字符串string分成一个3元素的元祖(string_pre_str,str,string_post_str),如果string中不包含str则string_pre_str==string |
string.replace(str1,str2,numb=string.count(str1)) | 把string中的str1替换成str2,如果num指定,则替换不超过num次 |
string.rfind(str,beg=0,end=len(string)) | 类似于find函数,不过是从右边开始查找 |
string.rindex(str,beg=0,end=len(string)) | 类似index,不过是从右边开始 |
string.rjust(width) | 返回一个原字符串右对齐,并使用空格填充至长度width的新字符串 |
string.rpartition(str) | 类似于partition()函数,不过是从右边开始查找 |
string.rstrip() | 删除string字符串末尾的空格 |
string.split(str=”“,num=string.count(str)) | 以str为分隔符切片string,如果num有指定值,则仅分隔num个子字符串 |
string.splitlines(num=string.count(‘\n’)) | 按照行分隔,返回一个包含各行作为元素的列表,如果num指定则仅切片num个行 |
string.startswitch(obj,beg=0,end=len(string)) | 检查字符串是否以obj开头,是则分那会True,否则返回False,如果beg和end指定值,则在指定范围内检查 |
string.strip([obj]) | 在string上执行lstrip()和rstrip() |
string.swapcase() | 翻转string中的大小写 |
string.title() | 返回“标题化”的string,就是所有单词都是以大写开始,其余字幕均为小写 |
string.translate(str,del=”“) | 根据str给出的表转换string的字符,要过滤掉的字符放到del参数中 |
string.upper() | 转换string中的小写字母为大写 |
string.zfill(width) | 返回长度为width的字符串,员字符串string右对齐,前面填充0 |
>>> str='hello world!'
>>> str.capitalize()
'Hello world!'
>>> str.center(20)
' hello world! '
>>> str.count('or')
1
>>> str.endswith('d!')
True
>>> str.endswith('ld')
False
>>> str.find('or',3)
7
>>> str.find('or',30)
-1
>>> str.index('or',30)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: substring not found
>>> str.index('or',3)
7
>>> ":".join(str.split())
'hello:world!'
>>> str.replace('world','everyone')
'hello everyone!'
>>> str.upper()
'HELLO WORLD!'
字符串的独特特性
三引号
若需要包含诸如换行符这样的特殊字符时,就需要使用三引号,它允许一个字符串跨多行,字符串中可以包含换行符、制表符以及其他特殊字符,三引号的语法是一对连续的单引号或者双引号,典型用例是当需要一块HTML或者SQL时,这时用字符串组合,特殊字符串转义将会非常的繁琐。
>>> html='''<HTML><HEAD><TITLE> Python Test </TITLE></HEAD>
... <BODY><H3>RESULT</H3></BODY></HTML>'''
>>> cursor.execute('''CREATE TABLE users(login VARCHAR(8),uid INTEGER)''')
Unicode
unicode字符串操作举例:
#/user/bin/env python
'''
An example of reading and writing Unicode strings:Writes a unicode string to a file in utf-8 and reads itback in
'''
CODEC='utf-8'
FILE='unicode.txt'
hello_out=u"Hello World"
bytes_out=hello_out.encode(CODEC)
f=open(FILE,'wb')
f.write(bytes_out)
f.close()
f=open(FILE,"rb")
bytes_in=f.read()
f.close()
hello_in=bytes_in.decode(CODEC)
print(hello_in)
常用函数:
>>> tmp=['test','a','is','this']
>>> tmp
['test', 'a', 'is', 'this']
>>> max(tmp) #取最大值
'this'
>>> min(tmp) #取最小值
'a'
>>> for i in reversed(tmp): #反转数值
... print(i)
...
this
is
a
test
>>> sorted(tmp) #字典序,按ASCII码来排序
['a', 'is', 'test', 'this']
>>> a=[3,6,9]
>>>> sum(a) #求和
18
>>> sum(a,2)
20
>>> aList=['as','de',1]
>>> aTuple=tuple(aList) #转换成元祖
>>> aList,aTuple
(['as', 'de', 1], ('as', 'de', 1))
>>> aList==aTuple
False
>>> another=list(aTuple) #转换成列表
>>> aList==another
True
>>> aList is another #两个不同的对象
False