python工厂函数原理 python 工厂( 五 )


rfind( sub[, start[,end]]),#返回S中最后出现的substr的第一个字母的标号,如果S中没有substr则返回-1,也就是说从右边算起的第一次出现的substr的首字母标号
rindex( sub[, start[, end]])
T2.find('ie') 字符串方法调用:搜索
find()----找到的第一个符合字符的index
rfind()-----找到最后一个符合的字符的index
备注:
find()函数族找不到时返回-1,index()函数族则抛出ValueError异常 。
另,也可以用 in 和 not in 操作符来判断字符串中是否存在某个模板
6、替换
replace(old, new[,count]),#把S中的oldstar替换为newstr,count为替换次数 。这是替换的通用形式 , 还有一些函数进行特殊字符的替换
translate(table[,deletechars]) #使用上面的函数产后的翻译表,把S进行翻译,并把deletechars中有的字符删掉
备注:
replace()函数的 count 参数用以指定最大替换次数
translate() 的参数 table 可以由 string.maketrans(frm, to) 生成
translate() 对 unicode 对象的支持并不完备,建议不要使用
7、判定
isalnum(),#是否全是字母和数字 , 并至少有一个字符
isalpha(),是否全是字母,并至少有一个字符
isdigit(),是否全是数字,并至少有一个字符 ,如果是全数字返回True,否则返回False
islower(),#S中的字母是否全是小写
isupper(),#S中的字母是否是大写
isspace(),#是否全是空白字符,并至少有一个字符
istitle(),S是否是首字母大写的
startswith(prefix[, start[, end]]), #是否以prefix开头
endswith(suffix[,start[, end]]),#以suffix结尾
备注:
这些函数都比较简单,顾名知义 。需要注意的是*with()函数族可以接受可选的 start, end 参数,善加利用,可以优化性能 。
另,自 Py2.5 版本起,*with() 函数族的 prefix 参数可以接受 tuple 类型的实参 , 当实参中的某人元素能够匹配,即返回 True 。
8、填充
字符串在输出时的对齐:
center(width[, fillchar]), 字符串中间对齐
ljust(width[, fillchar]), 字符串左对齐 , 不足部分用fillchar填充,默认的为空格
rjust(width[, fillchar]), 字符串右对齐 , 不足部分用fillchar填充,默认的为空格
zfill(width), 把字符串变成width长 , 并在右对齐,不足部分用0补足
expandtabs([tabsize])把字符串中的制表符(tab)转换为适当数量的空格 。
fillchar 参数指定了用以填充的字符,默认为空格
zfill的z为zero的缩写,顾名思义,是以字符0进行填充,用于数值输出
expandtabs()的tabsize 参数默认为8 。它的功能是把字符串中的制表符(tab)转换为适当数量的空格 。
9、编码
encode([encoding[,errors]]),
decode([encoding[,errors]])
这是一对互逆操作的方法,用以编码和解码字符串 。因为str是平台相关的 , 它使用的内码依赖于操作系统环境,
而unicode是平台无关的,是Python内部的字符串存储
Python嵌套函数和闭包在Python语言中,可以在函数中定义函数 。这种在函数中嵌套定义python工厂函数原理的函数也叫内部函数 。我们来看下面的代码:
上述代码中,定义python工厂函数原理了函数greet,在函数greet内部又定义了一个函数inner_func, 并调用该函数打印了一串字符 。
我们可以看到,内部函数inner_func的定义和使用与普通函数基本相同 。需要注意的是变量的作用域,在上述代码中,函数参数name对于全局函数greet是局部变量,对内部函数inner_func来说则是非局部变量 。内部函数对于非局部变量的访问规则类似于标准的外部函数访问全局变量 。

推荐阅读