七、字符串处理
1.编码
2.5 检索字符串
str.count(item,start,end)
# 返回str字符串中start至end中有多少个item
str.find(item,start,end)
str.rfind()
# 返回str字符串中start至end中是否有item
# 0为存在 -1为不存在
# find从字符串左侧开始查找,rfind则为从右侧开始
item in str
# 返回ture/false
# str中是否有item
str.index(item,start,end)
# 返回item在str中的第一个位置
str.startswith(item,start,end)
str.endswith(item,start,end)
#str字符串是否以item起始/结束
2.6 大小写转换
str.lower() # 转换为小写
str.upper() # 转换为大写
2.7 去除字符串中空格和特殊符号
特殊字符: \t \r \n
str.strip([chars]) # 仅去除左右两侧的[chars]
# 默认[chars]为空格+特殊字符
str.lstrip() # 仅去除左侧字符
str.rstrip() # 仅去除右侧字符
2.8 格式化字符串
(1)%操作符
%[(name)][flags][width].[precision]typecode
(2)format()
str.format(args)
[[fill]align][sign][#][0][width][,][.precision][type]
八、正则表达式
8.1.1.行定位符
^ 表示开始
$ 表示结束
8.1.2.元字符
^ $
. 除换行以外的任意字符
\w 字母、数字、下划线或汉字
\W 匹配\w匹配不到的
\s 匹配任意空白符
\b 匹配单词的开始或结束
\d 匹配数字
8.1.3.限定符
? 匹配前面的字符1次或0次
- 匹配前面的字符1次或多次
- 匹配前面的字符0次或多次
8.1.4.字符类
[] 匹配括号内字符
8.1.5.排除字符
[^str] 匹配排除str的字符串
8.1.6.选择字符
| 或
8.1.7.转义字符
\
8.1.8 分组
()
8.2.1 匹配字符串
re.match(pattern,string,[flags]) # 返回匹配的所有字符
# [flags]: re.I 不区分大小写 re.A 让\w不匹配汉字
re.search(pat,str,[flags]) # 返回匹配的第一个字符
re.findall(pat,str,[flags]) # 返回所有匹配结果的列表
8.2.2 替换字符串
re.sub(pattern,repl,str,count,[flags])
8.2.3 分割字符串
re.split(pattern,string,[max_split],[flags])
九、函数
9.1.1 函数的创建
def functionname([parameterlist]):
['''comments''']
[functionbody]
9.1.2 函数的调用
functionname([parameterlist])
9.2.4 为参数设置默认值
def function(parameters... , [parameter1 = defaultvalue1]): # defaultvalue最好是不可变对象
[functionbody]
# 例
def plus(a='1',b = '1'):
c = a+b
return c
# 查看函数自定义的默认值
function.__defaults__
9.2.5 可变参数
def function(*parameters): # *parameters 是 列表
[function]
def function(** parameters): # **parameters 是 字典
[function]
# 例
def sign(**sign):
print()
for key,value in sign.items(): # 遍历字典
print(key,"的星座是:",value)
sign(person1 = '水瓶',person2 = '处女')
9.3 返回值
return [value1,value2,...] # 没有值则返回None
9.4 变量的作用域
局部变量:
1、仅在定义它的函数体内能够访问,函数外部无法访问。
2、使用global函数可以使它变为全局变量
全局变量:
1、既能在函数体内访问,又能在函数外部访问。
2、不使用global函数来创建或者操作全局变量时必须在函数体外。
9.5 匿名函数 lambda
result = lambda [arg1 [,arg2,...,argn]]:expression
#example
result = lambda [x,y]: x*y
print(result(1,2))
2
十、面向对象
10.2.1 定义类
class ClassName:
'''类的帮助信息'''
statement # 定义属性和方法
# 类的命名建议为大写开头的“驼峰式命名法” 例:ClassName 、ExampleClass
10.2.2 创建类的实例
ClassName(parameterlist)
10.2.3 创建init()方法
class ClassName:
def __init__(self): # 定义构造方法
print("类名")
10.2.4 创建类的成员并访问
# 创建类的成员
def functionName(self,parameterlist): # self是必须的参数
block
# 访问
instanceName.functionName(parametervalue)
# 类属性
class ClassName:
attribute = value
# 输出类属性
ClassName.attribute
# 实例属性
class ClassName:
def __init__(self):
self.attribute = value # 实例属性
attribute = value # 类属性
10.2.5 访问限制
_foo # protected 保护类型 可以通过实例名访问
__foo # private 私有类型 不可以通过实例名访问
__foo__ # 系统
# 访问private类型的属性
class = ClassName()
class._ClassName__foo