python字符串处理和特殊函数

用引号括起来的字符集合称之为字符串。引导可以是一对单引号,双引号,三引号(单、双)。

备注:python中三引号可以将复杂的字符串进行复制,python三引号允许一个字符串夸多行,字符串可以包含换行符,制表符以及其他特殊字符。三引号的语法是是一对连续的单引号或者双引号(通常都是成对用的)。


var1 = 'hello world'

var2 = "python programming"

var3 =  ' ' ' hello xiaozhihui ' ' "

var4 =" " " hello xiaozhihui " " “


如何输出hello "dear"

>>> print "hello \"dear\""
hello "dear"
>>> print '''hello "dear" '''
hello "dear" 
>>>


python访问字符串中的值

Python不支持字符类型,单字符也在python也是一个字符串使用

Python访问子字符串,可以使用方括号来截取字符串-即分片操作

>>> str = "hello world"
>>> print str
hello world
>>> 
>>> print str[1]
e
>>> print str[1:4]
ell
>>>

python字符串更新

你可以对已经存在的字符串进行修改,并赋值给另一个变量

var1 = ‘hello world’

print "update mystr:-" ,var[:6] + 'python'


python字符串运算符

下表实例变量a值为字符串"helllo",b变量值为“python”

+ 字符串连接 a+b输出结果:

* 重复输出字符串 a+2输出结果:hellohello

[] 通过索引获取字符a[1]输出结果e

[:] 截取字符串的一部分a[1:4]输出结果ell

in 成员运算符 如果字符串中不包含给定的字符返回True

not in 成员运算符如果字符转串中不包含给定的字符返回True

r/R 原始字符串 字符串直接按照字面的意思来使用,没有转义或不能打印的字符


原始字符串在字符中的第一个引号前加上字母“r”(可以大小写)以外,与普通字符串有着几乎完全相同的语法

>>> print r'hello\n'
hello\n

python字符串格式化

python支持格式化字符串的输出

在python中,字符串格式化使用与C中sprintf函数一样的语法

printf “my name is %s and weight is %d kg!” % ('zara',12)


字符串各种函数

以下start和end可以缺省参数

mystr = ‘hello world xiaozhihui and python’

检测str是否包含在mystr中,如果是返回开始的索引值,否则返回-1

>>> mystr ='hello world xiaozhihui and python'
>>> index = mystr.find('world',0,len(mystr))
>>> print index
6

跟find方法一样,只不过如果str不在mystr中会报一个异常

>>> index = mystr.index('xiao',0,len(mystr))
>>> print index
12

返回str在start和end之间在mystr里面出现的次数

mystr.count(str,start=0,end=len(mystr))

以encoding指定的编码格式解码mystr,如果出错默认报一个valueError的异常

mystr.decode(encoding='UTF-8',errors='strict')

以encoding指定的编码格式编码mystr,如果出错默认报一个ValueError的异常

mystr.encode(encoding='UTF-8',errors='strict')

把mystr中的str1替换成str2,如果count指定,则替换不超过count次

mystr.replace(str1,str2,mystr.count(str1))

以str为分隔符切片mystr,如果maxsplit有指定值,则仅分隔maxsplit个字符串

mystr.splict(str=' ',2)

把字符串的第一个字符大写

mystr.capitalize()

返回一个原字符串居中,并使用空格填充至长度width的新字符

mystr.center(width)

检查字符串(start,end)是否已obj结束,如果是返回True,否则返回false

mystr.endswith(obj,0,len(mystr))

把字符串mystr中的tab字符号转为空格,默认的空格数tabsize是8

mystr.expandtabs(tabsize=8)

如果mystr至少有一个字符并且所有字符都是字母或数字则返回True,否则返回False

mystr.isalnum()

如果mystr至少有一个数字并且所有字符都是字母或数字则返回True,否则返回False

mystr.isalpha()

如果mystr只包含十进制数字则返回True否则返回False

mystr,isdecimal()

如果mystr只包含数字则返回True否则返回False

mystr.isdigit()

如果mystr中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符

mystr.islower()

如果mystr至少有一个字符并且所有字符都是字母(不含数字和空格)则返回True

mystr.isalpha()

如果mystr只包含十进制数字则返回True否则返回False

mystr.isdecimal()

如果mystr只包含数字返回True否则返回False

mystr,isdigit()

如果mystr中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)

mystr.islower()

如果mystr中只包含空格,则返回True,否则返回False

mystr.isspace()

如果mystr是标题花的(见title())则返回True,否则返回False

mystr.istitle()

如果mystr中包含至少一个区分大小写的字符并且所有这些(区分大小写)字符都是daxie

mystr.isupper()

转换mystr中所有大小写字符为小写

mystr.lower()

转换mystr中的大小写字母为大写

mystr.upper()

mystr中每个字符后面插入str,构造出一个新的字符串

mystr.join(str)

返回一个原字符串左对齐,并使用空格填充至长度width的新字符串

mystr.ljust(width)

返回一个原字符串右对齐,并使用空格填充至长度width的新字符串

mystr.rjust(width)

截掉mystr左边的空格

mystr.lstrip()

删除mystr字符串末尾的空格

mystr.rstrip()

类似于find()函数,不过是从右边开始查找

mystr.rfind(str,start=0,end=len(mystr))

类似于index(),不过是从右边开始

mystr.rindex(str,start=0,end=len(mystr))

把mystr以str分隔成三部分,str前,str和str后

mystr.partition(str)

类似于partition()函数,不过是从右边开始,mystr.rapartition(str)

按照分隔,返回一个包含各行作为元素的列表

mystr.splitlines()

返回长度为width的字符串,原字符mysr右对齐,前面填充0

mystr.zfill(width)

检查字符串是否只包含十进制字符,这种方法只存在于Unicode对象。

mystr.isdecimal()


函数高级

定义一个函数

你可以定义一个由自己想要功能的函数

def functionname(params):

"函数——文档字符串"

function_suite

return [expression]

默认情况下,参数值和参数名称是按函数声明中定义的顺序匹配起来的。


以下为一个简单的python函数,他将一个字符串作为传入参数,在打印到标准显示设备上。

def printme(str):

“打印传入的字符串到标准显示设备上”

print str

return 


按值传递参数和按引用传递参数

1按值传递,单个变量

2按引用传递

如果你在函数里修改了参数,那么在调用这个函数的函数里,原始的参数也被改变

#可写函数说明

def changeme(mylist)

'修改传入的列表"

mylist.append([1,2,3,4])

print "函数内取值:" mylist

return

#调用changeme函数

mylist=[10,20,30]

changeme(mylist)

print "函数外取值" mylist

传入函数的和末尾添加新内容的对象用的是用一个引用。

函数内取值:[10,20,30,[1,2,3,4]]

函数外取值:[10,20,30,[1,2,3,4]]


参数

以下是调用函数时可使用的正式参数类型

必备参数

命名参数

缺省参数


不定长参数列表

一个* -》b是一个元组

def arglist(a,*b)

两个** -》b是一个字典

def arglist(a,**b)


匿名函数

用lambda关键字能创建小型匿名函数。这种函数得名于省略了用def声明函数的标准步骤

lambda函数能接受任何数量的参数但是只能返回一个表达式的值,同时只能包含命令或多个匿名函数不能直接调用print,因为lambda需要一个表达式
lambda函数拥有自己的名字空间,且不能访问自有参数列表之外或全局名字空间的参数
虽然lambda函数看起来只能写一行,却不等于c或c++的内联函数,侯泽的目的是滴啊用小函数语法

lambda函数的语法只包含一个语句
lambda[arg1[,arg2,...argn]]:expression

#可写函数说明
sum = lambda arg1, arg2: arg1 + arg2

>>> sum = lambda arg1 , arg2 : arg1 + arg2
>>> a = sum(1,2)
>>> print a
3
>>> 



你可能感兴趣的:(Python)