①.、创建python文件,文件名为:testlistadd.py;
old_list?=?['a','b','c','d']
new_list?=?['1'+x?for?x?in?old_list]
print(new_list)
①.、Python类型操作符和内建函数总结
操作符/函数
描 述
结 果a
字符串表示
++
对象的字符串表示
str
内建函数
比较两个对象
int
repr(obj)
str(obj)
type(obj)
检测对象的类型
type
值比较
小于
bool
大于
=
小于或等于
大于或等于
==
等于
!=
不等于
对象比较
is
是
is not
不是
布尔操作符
not
逻辑反
and
逻辑与
or
逻辑或
第一段:工厂函数
数值工厂函数总结类(工厂函数) 操作
bool(obj) b 返回obj对象的布尔值,也就是 obj.__nonzero__()方法的返回值.
int(obj, base=10) 返回一个字符串或数值对象的整数表 示, 类似string.atoi();
long(obj, base=10) 返回一个字符或数据对象的长整数表 示,类似string.atol(),
返回一个字符串或数据对象的浮点数 表示,类似string.atof().
complex(str) or返回一个字符串的复数表示,或 者根据给定的实数,
complex(real, imag=0.0) (及一个可选 的虚数部分)生成一个复数对象.
第二段:内建函数
①.、分类
Python 有五个运算内建函数用于数值运算:
coerce()是一个数据类型转换函数,不过它的行为更像一个运算符.数coerce()为程序员提供了不依赖Python 解释器,而是自定义两个数值类型转换的方法.对一种新创建的数值类型来说, 这个特性非常有用.函数coerce()仅返回一个包含类型转换完毕的两个数值元素的元组.
round()用于对浮点数进行四舍五入运算.它有一个可选的小数位数参数.如果不提供小数位参数, 它返回与第一个参数最接近的整数(但仍然是浮点类型).第二个参数告诉round 函数将结果精确到小数点后指定位数.
函数 int()直接截去小数部分.(返回值为整数)
函数 floor() 得到最接近原数但小于原数的整数.(返回值为浮点数)
函数 round() 得到最接近原数的整数.(返回值为浮点数)
(一)标准类型操作符和标准内建函数
①.)、标准类型操作符
,,=,=,==,!=,对象值得比较
注:做比较时字符串是按ASCII值的大小来比较的
is 对象身份比较
and,or,not 布尔类型
str(obj)和repr(obj) 或反引号运算符(++) 可以方便的以字符串的方式获取对象的
内容、类型、数值属性等信息.str()函数得到的字符串可读性好, 而repr()函数得到的字符
串通常可以用来重新获得该对象, 通常情况下 obj == eval(repr(obj)) 这个等式是成立的
isinstance(obj,type) 判断对象的类型
(二)序列操作
①.、序列操作
字符串属于序列对象,可以使用所有序列的操作和函数
切片 [] [:] [::]
简单总结:
*索引(S[i])获取特定偏移的元素.
——第一个元素偏移为0
——(S[0])获取第一个元素.
——负偏移索引意味着从最后或右边反向进行计数
*分片[S[i:j]提取对应的部分作为一个序列
——右边界不包含在内
——分片的边界默认为0和序列的长度,如果没有给出的话S[:]
——(S[1:])获取从偏移为1到末尾之间的元素
——(S[:-1])获取从偏移为0直到但不包括最后一个元素之间的元素
——(S[:])获取从偏移为0到末尾之间的元素,这有效地实现了顶层S拷贝
拷贝了一个相同值,但是是不同内存区域的对象.对象字符串这样不可变的对象不是很有用,但是对于可以实地修改的对象来说很有用.
比如列表.
扩展分片:第三个限制值 【步进】
完整形式:X[I:J:K]:这标识索引X对象的元素,从偏移为I直到J-1,每隔K元素索引一次.第三个限制值,K,默认为1
实例
Python Code
S='abcdefghijk'
S[1:10]
'bcdefghij'
'bdfhj
也可以使用负数作为步进.
分片表达式
"hello"[::-1]
'olleh'
通过负数步进,两个边界的意义实际上进行了反转.
返回布尔值True 或False
可以使用string模块来判断输入字符的合法性,可见成品中的idcheck.py
+ 连接字符串 'name'+' '+'jin'
字符串格式化 '%s %s' % ('name','jin')
join()方法 ' '.join(('name','jin')) ' '.join(['name','jin'])
del aString
aString=''
(三)、序列函数
序列类型函数
len(str) 返回字串的长度
enumerate(iter):接受一个可迭代对象作为参数,返回一个enumerate
max(str)/min(str):max()和min()函数对其他的序列类型可能更有用,但对于string类型它们能很好地运行,返回最大或者最小的字符(按照ASCII 码值排列),
zip([it0, it1,... itN]) 返回一个列表,其第一个元素是it0,it1,...这些元素的第一个元素组成的一个元组,第二个...,类推.
sorted(iter,func=None,key=None,reverse=False) 接受一个可迭代对象作为参数,返回一个有序的列表;可选参数func,key 和reverse 的含义跟list.sort()内建函数的参数含义一样.
注意:
sorted等需要在原处修改的函数无法用在字符串对象,但可以产生新的对象
sum处理的对象是数字,不能用在字符串
sorted(s)
['a', 'e', 'e', 'g', 'g', 'g', 'o']
(四)只适合于字符串类型的函数
①.)raw_input()函数
内建的raw_input()函数使用给定字符串提示用户输入并将这个输入返回,下面是一个使
用raw_input()的例子:
user_input = raw_input("Enter your name: ")
prin user_input
str()和unicode()函数都是工厂函数,就是说产生所对应的类型的对象.它们接受一个任
意类型的对象,然后创建该对象的可打印的或者Unicode 的字符串表示. 它们和basestring 都
可以作为参数传给isinstance()函数来判断一个对象的类型
的配对函数,它以一个字符(长度为1 的字符串)作为参数,返回对应的ASCII 数值,或者Unicode
数值,如果所给的Unicode 字符超出了你的Python 定义范围,则会引发一个TypeError 的异常
(五)、只适用于字符串的操作符
①.、格式化操作符 %
字符串格式化符号
格式化字符 转换方式
%c 转换成字符(ASCII 码值,或者长度为一的字符串)
%ra 优先用repr()函数进行字符串转换
%s 优先用str()函数进行字符串转换
%d / %i 转成有符号十进制数
%ub 转成无符号十进制数
%ob 转成无符号八进制数
%xb/%Xb (Unsigned)转成无符号十六进制数(x/X 代表转换后的十六进制字符的大
小写)
%e/%E 转成科学计数法(e/E 控制输出e/E)
%f/%F 转成浮点数(小数部分自然截断)
%g/%G %e 和%f/%E 和%F 的简写
%% 输出%
格式化操作符辅助指令
符号 作用
* 定义宽度或者小数点精度
- 用做左对齐
+ 在正数前面显示加号( + )
sp 在正数前面显示空格
# 在八进制数前面显示零('0'),在十六进制前面显示'0x'或者'0X'(取决于
用的是'x'还是'X')
0 显示的数字前面填充'0'而不是默认的空格
% '%%'输出一个单一的'%'
(var) 映射变量(字典参数)
m.n m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话)
由于新式的字符串Template 对象的引进使得string 模块又重新活了过来,Template 对象
有两个方法,substitute()和safe_substitute().前者更为严谨,在key 缺少的情况下它会报一
个KeyError 的异常出来,而后者在缺少key 时,直接原封不动的把字符串显示出
字符串抑制转义r'带特殊符号的字串'
myfile=open(r'C:\new\text.data','w')
(六)字符串对象的方法:
①.、删减
partition(sep),
rpartition(sep),
splitlines([keepends]),#把S按照行分割符分为一个list,keepends是一个bool值,如果为真每行后而会保留行分割符
split([sep [,maxsplit]]),#以sep为分隔符,把S分成一个list.maxsplit表示分割的次数.默认的分割符为空白字符
rsplit([sep[,maxsplit]]) #从右到左切割
备注:
如果sep没出现在母串中,返回值是 (sep, '', '');
否则,返回值的第一个元素是 sep 左端的部分,第二个元素是 sep 自身,第三个元素是 sep 右端的部分.
S.partition(';')
参数 maxsplit 是分切的次数,即最大的分切次数,所以返回值最多有 maxsplit+1 个元素.
s.split() 和 s.split(' ')的返回值不尽相同
' hello world!'.split()
['hello', 'world!']
' hello world!'.split(' ')
['', '', 'hello', '', '', 'world!']
超过最大切割个数后面的全部为一个元素
按行切割
S
S.splitlines()
产生差异的原因在于当忽略 sep 参数或sep参数为 None 时与明确给 sep 赋予字符串值时 split() 采用两种不同的算法.
对于前者,split() 先去除字符串两端的空白符,然后以任意长度的空白符串作为界定符分切字符串
即连续的空白符串被当作单一的空白符看待;
对于后者则认为两个连续的 sep 之间存在一个空字符串.所以呢对于空字符串(或空白符串),它们的返回值也是不同的:
''.split()
[]
''.split(' ')
['']
lower(),#全部小写
upper(),#全部小写
capitalize(),#首字母大写
swapcase(),#大小写交换
title()#每个单词第一个大写,其他小写
备注
因为title() 函数并不去除字符串两端的空白符也不会把连续的空白符替换为一个空格,
所以建议使用string 模块中的capwords(s)函数,它能够去除两端的空白符,再将连续的空白符用一个空格代替.
' hello world!'.title()
' Hello World!'
string.capwords(' hello world!')
'Hello World!'
join(seq)
join() 函数的高效率(相对于循环相加而言),使它成为最值得关注的字符串方法之一.
它的功用是将可迭代的字符串序列连接成一条长字符串,如:
... 'db':'spam',
... 'user':'sa',
... 'passwd':'eggs'}
';'.join("%s=%s"%(k, v) for k, v in conf.iteritems())
S=''.join(T) #使用空字符串分割把字符列表转换为字符串
count( sub[, start[, end]]),#计算substr在S中出现的次数
find( sub[, start[, end]]),#返回S中出现sub的第一个字母的标号,如果S中没有sub则返回-1.start和end作用就相当于在S[start:end]中搜索
index( substr[, start[, end]]),#与find()相同,只是在S中没有substr时,会返回一个运行时错误
rfind( sub[, start[,end]]),#返回S中最后出现的substr的第一个字母的标号,如果S中没有substr则返回-1,也就是说从右边算起的第一次出现的substr的首字母标号
rindex( sub[, start[, end]])
find()----找到的第一个符合字符的index
rfind()-----找到最后一个符合的字符的index
find()函数族找不到时返回-1,index()函数族则抛出ValueError异常.
另,也可以用 in 和 not in 操作符来判断字符串中是否存在某个模板
replace(old, new[,count]),#把S中的oldstar替换为newstr,count为替换次数.这是替换的通用形式,还有一些函数进行特殊字符的替换
translate(table[,deletechars]) #使用上面的函数产后的翻译表,把S进行翻译,并把deletechars中有的字符删掉
replace()函数的 count 参数用以指定最大替换次数
translate() 的参数 table 可以由 string.maketrans(frm, to) 生成
translate() 对 unicode 对象的支持并不完备,建议不要使用
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 参数,善加利用,可以优化性能.
字符串在输出时的对齐:
center(width[, fillchar]), 字符串中间对齐
ljust(width[, fillchar]), 字符串左对齐,不足部分用fillchar填充,默认的为空格
rjust(width[, fillchar]), 字符串右对齐,不足部分用fillchar填充,默认的为空格
zfill(width), 把字符串变成width长,并在右对齐,不足部分用0补足
expandtabs([tabsize])把字符串中的制表符(tab)转换为适当数量的空格.
fillchar 参数指定了用以填充的字符,默认为空格
zfill的z为zero的缩写,顾名思义,是以字符0进行填充,用于数值输出
encode([encoding[,errors]]),
decode([encoding[,errors]])
这是一对互逆操作的方法,用以编码和解码字符串.因为str是平台相关的,它使用的内码依赖于操作系统环境,
而unicode是平台无关的,是Python内部的字符串存储
① 字符串字母处理
str.ljust(width, fillchar)、str.center(width, fillchar)、str.rjust(width, fillchar)
返回一个指定的宽度 width 「居左」/「居中」/「居右」的字符串,如果 width 小于字符串宽度直接返回字符串,否则使用 fillchar 去填充.
str.count(sub, start, end)
#统计字符串里某个字符出现的次数.可选参数为在字符串搜索的开始与结束位置.
start, end遵循**"左闭右开"**原则.
str.endswith(suffix, start, end)和str.startswith(substr, beg, end)
#判断字符串是否以指定后缀结尾/开头,如果以指定后缀「结尾」/「开头」返回 True,否则返回 False.
str.join() #将序列中的元素以指定的字符连接生成一个新的字符串.
str.len() #返回对象(字符、列表、元组等)长度或项目个数.
str.lstrip()、str.rstrip()、str.strip() #截掉字符串「左边」/「右边」/「左右」两侧的空格或指定字符.
str0 = ' Hello World!' str0.lstrip() 'Hello World!' str1 = 'aaaa Hello World!' str1.lstrip('a') ' Hello World!'
①.0. str.maketrans(intab, outtab)和str.translate(table)
str.maketrans()创建字符映射的转换表
str.maketrans()根据参数table给出的表转换字符串的字符.
str.maketrans()传入的也可以是字典
①.1. 字符串替换
str.replace(old, new, max)
str.split(str, num)
str.zfill(width)
返回指定长度的字符串,原字符串右对齐,前面填充0.
我们可以创建一个用来生成指定边界的斐波那契数列的函数:
def fib(n): # write Fibonacci series up to n
... """Print a Fibonacci series up to n."""
... a, b = 0, 1
... while a n:
... print(a, end=' ')
... a, b = b, a+b
... print()
...
# Now call the function we just defined:
关键字 def 引入了一个函数 定义.在其后必须跟有函数名和包括形式参数的圆括号.函数体语句从下一行开始,必须是缩进的.
函数体的第一行语句可以是可选的字符串文本,这个字符串是函数的文档字符串,或者称为 docstring.(更多关于 docstrings 的信息请参考 文档字符串) 有些工具通过 docstrings 自动生成在线的或可打印的文档,或者让用户通过代码交互浏览;在你的代码中包含 docstrings 是一个好的实践,让它成为习惯吧.
函数 调用 会为函数局部变量生成一个新的符号表.确切的说,所有函数中的变量赋值都是将值存储在局部符号表.变量引用首先在局部符号表中查找,然后是包含函数的局部符号表,然后是全局符号表,最后是内置名字表.所以呢,全局变量不能在函数中直接赋值(除非用 global 语句命名),尽管他们可以被引用.
函数引用的实际参数在函数调用时引入局部符号表,所以呢,实参总是 传值调用 (这里的 值 总是一个对象 引用 ,而不是该对象的值).[1] 一个函数被另一个函数调用时,一个新的局部符号表在调用过程中被创建.
一个函数定义会在当前符号表内引入函数名.函数名指代的值(即函数体)有一个被 Python 解释器认定为 用户自定义函数 的类型. 这个值可以赋予其他的名字(即变量名),然后它也可以被当作函数使用.这可以作为通用的重命名机制:
fib
f = fib
f(100)
如果你使用过其他语言,你可能会反对说:fib 不是一个函数,而是一个方法,因为它并不返回任何值.事实上,没有 return 语句的函数确实会返回一个值,虽然是一个相当令人厌烦的值(指 None ).这个值被称为 None (这是一个内建名称).如果 None 值是唯一被书写的值,那么在写的时候通常会被解释器忽略(即不输出任何内容).如果你确实想看到这个值的输出内容,请使用 print() 函数:
以上就是土嘎嘎小编为大家整理的PYTHON生成符号函数相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!