python符号化函数 python中的符号运算

python基?。耗谥煤⒎椒ā⒆遄址笕?/h2>在写python程序时,常能用到一些函数和方法,总结一下,保存起来,方便查询 。
一、内置函数
# abs()获取数字绝对值
# chr(i)数字转换为字符类型
# divmod() 获取两个数值的商和余数
# enumerate() 将可遍历序列组合为索引序列
# float()转换为浮点数
# format() 格式化字符串
# int()转换为整数
# input() 接受用户输入内容
# len() 计算元素个数
# max() 返回最大值
# min() 返回最小值
# math.ceil() 返回指定数值的上舍整数
# open()打开文件并返回文件对象
# pow() 幂运算
# print()打印输出
# range() 生成器
# reversed()反转所有元素
# round()四舍五入求值
# sorted()对可迭代对象进行排序
# str() 转换为字符串
# sum() 求和
# set() 创建集合
# tuple() 将序列转换为元组
# zip()将可迭代对象打包成元组
二、方法
# append() 添加列表元素
# capitalize()首字母转换为大写
# count()字符出现次数
# close() 关闭文件
# decode() 解码字符串
# dict.keys() 获取字典所有的键
# find()字符串首次出现的索引
# f.read() 读取文件内容
# dict.update()更新字典
# dict.items() 获取字典键/值对
# dict.get() 返回指定键的值
# encode() 编码字符串
# list.sort() 排序列表元素
# index() 元素首次出现的索引
# isdigit() 判断字符串是否只由数字组成
# isupper() 是否所有字母都为大写
# isnum() 判断字符串是否由字母和数字组成
# islower() 是否所有字母都为小写
# isdecimal() 检查字符串是否只包含十进制字符
# isalpha() 检测字符串是否为纯字母
# random.shuffle()随机排序
# random.sample()返回无重复随机数列表
# random.choice() 返回一个随机元素
# random.randint() 生成指定范围的随机整数
# random.randrange() 生成指定范围的指定递增基数随机整数
# pop() 删除列表中的元素
# remove()删除列表中的指定元素
# strip()去除空格
# lstrip()去除左侧空格
# rstrip() 去除右侧空格
# readline() 读取单行内容
# root.after() Tkinter中等待一段时间后再执行命令
# str.isnumeric() 验证字符串是否为数字(适用于Unicode)
# split()分割字符串
# ord() 将字符转换为整数
# replace() 字符串替换
# ljust() 左对齐填充
# rjust() 左对齐填充
# readlines() 读取所有行内容
# datetime.datetime.now() 返回指定时区的本地日期时间
# datetime.datetime.today() 获取当前本地日期的date对象
# datetime.utcnow() 返回当前UTC时间的datetime对象
# time.strptime()把时间字符串解析为元组
# time.time()返回当前时间的时间戳
# time.sleep()暂停指定秒数
# time.strftime() 返回指定格式的日期字符串
# time.mktime() 接收时间元组并返回时间戳
# os.getcwd() 获取当前工作目录
# os.listdir() 获取指定路径下的目录和文件列表
# os.makedirs() 递归创建目录
# os.rename() 重命名目录或文件
# os.path.exists() 判断路径是否存在
# upper() 全部转换为大写字母
# lower()全部转换为小写字母
# sys.stdout.write() 标准输出打印
# sys.stdout.flush()刷新输出
# shutil.copy() 复制单个文件到另一文件或目录
# write() 写入文件内容
# winsound.Beep() 打开电脑扬声器
# zfill() 在字符串前面填充0
三、循环语句
# break终止当前循环
# continue 终止本循环进入下一次循环
# with open() as file 以with语句打开文件(数据保存)
四、转义字符
\行尾续行符
\' 单引号
\'' 双引号
\a 响铃
\e 转义
\n 换行
\t 横向制表符
\f 换页
\xyy 十六进制yy代表的字符
\\反斜杠符号
\b 退格
\000 空
\v 纵向制表符
\r 回车
\0yy 八进制yy代表的字符
\other 其他的字符以普通格式输出
python {'0:b'}.format() divmod() 异或xor^ collections.deque(){ }.format()格式方法的一个指示器
例如:'{0:b}'.format(int(a,2) int(b,2))
这个的意思就是 按照 2进制 a2进制b的格式 输出
: 号后面带填充的字符,只能是一个字符,不指定则默认是用空格填充 。
Python2.6 开始,新增了一种格式化字符串的函数 str.format(),它增强了字符串格式化的功能 。
基本语法是通过 {} 和 : 来代替以前的 %。
format 函数可以接受不限个参数,位置可以不按顺序 。
str.format() 格式化数字的多种方法:
Python divmod() 函数
Python 内置函数
python divmod() 函数把除数和余数运算结果结合起来,返回一个包含商和余数的元组(a // b, a % b) 。
在 python 2.3 版本之前不允许处理复数 。
函数语法
divmod(a, b)
参数说明:
a: 数字
b: 数字
实例
^ -------异或xor
想复杂了
^就是数学里的 那个判断的异或符号
但是python里是按2进制算的
就是说
10进制的就按照转换为2进制 再转换为10进制来算
就是比如 5^3 =6
因为:
5 = 0101(b)
3 = 0011(b)
二进制之后就是: 01100
再换回10进制就是 6
deque是双边队列,具有队列和栈的性质 。相当于可以在两端操作的list 。
以下是deque的常用方法:
数组初始化= [None for _in range(rowNum)]
Python zip() 函数
zip()函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表 。
如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表 。
res = [ab for a, b in zip([0]res, res[0])]
这句琢磨了半天
感觉应该跟三元表达式一样是个倒装句
但是其实应该是个省略句 。。。
1、python自带punctuation包 , 可以消除所有中文标点符号 。
Python itertools模块combinations方法
itertools模块combinations(iterable, r)方法可以创建一个迭代器,返回iterable中所有长度为r的子序列 , 返回的子序列中的项按输入iterable中的顺序排序 。
例1:
例2、实现一位数组的所有排列组合:
例3:利用chain.from_iterable方法将多个迭代器连接起来
python函数修饰符@的使用python函数修饰符@ 修饰符 ‘@’符号用作函数修饰符是python2.4新增加python符号化函数的功能python符号化函数,修饰符必须出现在函数定义前一行python符号化函数,不允许和函数定义在同一行 。也就是说@A def f(): 是非法的 。只可以在模块或类定义层内对函数进行修饰python符号化函数,不允许修修饰一个类 。一个修饰符就是一个函数,它将被修饰的函数做为参数,并返回修饰后的同名函数或其它可调用的东西 。本质上讲,装饰符@类似于 回调函数,把其它的函数(暂且称为目的参数,后面紧接着的函数)作为自己的入参,在目的函数执行前,执行一些自己的操作,比如:计数、打印一些提示信息等 , 然后返回目的函数 。下面列举一个简单的例子 。
创建函数修饰符的规则:
(1)修饰符是一个函数
(2)修饰符取被修饰函数为参数
(3)修饰符返回一个新函数
(4)修饰符维护被维护函数的签名
例子1:被修饰函数不带参数
运行结果:
例子2:使用functools模块提供的修改函数属性的方法wraps
运行结果:
可见test1的函数名称变了 , 如果某些代码用到就会出问题,可以使用functools模块提供的修改函数属性的方法wraps
运行结果:
例子3:被修饰函数带参数
运行结果:
例子4:修饰符带参数,需要比上面例子多一层包装
运行结果:
python常用函数包有哪些?一些python常用函数包:
1、Urllib3
Urllib3是一个 Python 的 HTTP 客户端,它拥有 Python 标准库中缺少的许多功能:
线程安全
连接池
客户端 SSL/TLS 验证
使用分段编码上传文件
用来重试请求和处理 HTTP 重定向的助手
支持 gzip 和 deflate 编码
HTTP 和 SOCKS 的代理支持
【python符号化函数 python中的符号运算】2、Six
six 是一个是 Python 2 和 3 的兼容性库 。这个项目旨在支持可同时运行在 Python 2 和 3 上的代码库 。它提供了许多可简化 Python 2 和 3 之间语法差异的函数 。
3、botocore、boto3、s3transfer、awscli
Botocore是 AWS 的底层接口 。Botocore是 Boto3 库(#22)的基?。?后者让你可以使用 Amazon S3 和 Amazon EC2 一类的服务 。Botocore 还是 AWS-CLI 的基?。笳呶?AWS 提供统一的命令行界面 。
S3transfer(#7)是用于管理 Amazon S3 传输的 Python 库 。它正在积极开发中,其介绍页面不推荐人们现在使用,或者至少等版本固定下来再用 , 因为其 API 可能发生变化,在次要版本之间都可能更改 。Boto3、AWS-CLI和其他许多项目都依赖s3transfer 。
4、Pip
pip是“Pip Installs Packages”的首字母递归缩写 。
pip很容易使用 。要安装一个包只需pip install package name即可,而删除包只需pip uninstall package name即可 。
最大优点之一是它可以获取包列表,通常以requirements.txt文件的形式获取 。该文件能选择包含所需版本的详细规范 。大多数 Python 项目都包含这样的文件 。
如果结合使用pip与virtualenv(列表中的 #57),就可以创建可预测的隔离环境,同时不会干扰底层系统,反之亦然 。
5、Python-dateutil
python-dateutil模块提供了对标准datetime模块的强大扩展 。我的经验是 , 常规的Python datetime缺少哪些功能,python-dateutil就能补足那一块 。
6、Requests
Requests建立在我们的 #1 库——urllib3基础上 。它让 Web 请求变得非常简单 。相比urllib3来说,很多人更喜欢这个包 。而且使用它的最终用户可能也比urllib3更多 。后者更偏底层 , 并且考虑到它对内部的控制级别,它一般是作为其他项目的依赖项 。
7、Certifi
近年来 , 几乎所有网站都转向 SSL,你可以通过地址栏中的小锁符号来识别它 。加了小锁意味着与该站点的通信是安全和加密的,能防止窃听行为 。
8、Idna
根据其 PyPI 页面,idna提供了“对 RFC5891 中指定的应用程序中国际化域名(IDNA)协议的支持 。”
IDNA的核心是两个函数:ToASCII和ToUnicode 。ToASCII会将国际 Unicode 域转换为 ASCII 字符串 。ToUnicode则逆转该过程 。在IDNA包中 , 这些函数称为idna.encode()和idna.decode()
9、PyYAML
YAML是一种数据序列化格式 。它的设计宗旨是让人类和计算机都能很容易地阅读代码——人类很容易读写它的内容,计算机也可以解析它 。
PyYAML是 Python 的YAML解析器和发射器,这意味着它可以读写YAML 。它会把任何 Python 对象写成YAML:列表、字典,甚至是类实例都包括在内 。
10、Pyasn1
像上面的IDNA一样 , 这个项目也非常有用:
ASN.1 类型和 DER/BER/CER 编码(X.208)的纯 Python 实现
所幸这个已有数十年历史的标准有很多信息可用 。ASN.1是 Abstract Syntax Notation One 的缩写,它就像是数据序列化的教父 。它来自电信行业 。也许你知道协议缓冲区或 Apache Thrift?这就是它们的 1984 年版本 。
11、Docutils
Docutils是一个模块化系统,用来将纯文本文档处理为很多有用的格式,例如 HTML、XML 和 LaTeX 等 。Docutils能读取reStructuredText格式的纯文本文档,这种格式是类似于 MarkDown 的易读标记语法 。
12、Chardet
你可以用chardet模块来检测文件或数据流的字符集 。比如说 , 需要分析大量随机文本时,这会很有用 。但你也可以在处理远程下载的数据,但不知道用的是什么字符集时使用它 。
13、RSA
rsa包是一个纯 Python 的 RSA 实现 。它支持:
加密和解密
签名和验证签名
根据 PKCS#1 1.5 版生成密钥
它既可以用作 Python 库,也能在命令行中使用 。
14、Jmespath
JMESPath,发音为“James path”,使 Python 中的 JSON 更容易使用 。它允许你声明性地指定如何从 JSON 文档中提取元素 。
15、Setuptools
它是用于创建 Python 包的工具 。不过,其文档很糟糕 。它没有清晰描述它的用途,并且文档中包含无效链接 。最好的信息源是这个站点,特别是这个创建 Python 包的指南 。
16、Pytz
像dateutils一样,这个库可帮助你处理日期和时间 。有时候,时区处理起来可能很麻烦 。幸好有这样的包,可以让事情变得简单些 。
17、Futures
从 Python 3.2 开始,python 提供current.futures模块,可帮助你实现异步执行 。futures 包是该库适用于 Python 2 的 backport 。它不适用于 Python3 用户,因为 Python 3 原生提供了该模块 。
18、Colorama
使用 Colorama,你可以为终端添加一些颜色:
更多Python知识请关注Python自学网
享学课堂浅谈Python序列内建函数都有哪些1、Python类型操作符和内建函数总结
表4.5列出了所有操作符和内建函数python符号化函数,其中操作符顺序是按优先级从高到低排列的 。同一种灰度的操作符拥有同样的优先级 。注意在operator模块中有这些(和绝大多数Python)操作符相应的同功能的函数可供使用 。
表4.5 标准类型操作符和内建函数
操作符/函数
描述
结果a
字符串表示
``
对象的字符串表示
str
内建函数
cmp(obj1, obj2)
比较两个对象
int
repr(obj)
对象的字符串表示
str
str(obj)
对象的字符串表示
str
type(obj)
检测对象的类型
type
值比较
小于
bool
大于
bool
=
小于或等于
bool
=
大于或等于
bool
==
等于
bool
!=
不等于
bool
不等于
bool
对象比较
is

bool
is not
不是
bool
布尔操作符
not
逻辑反
bool
and
逻辑与
bool
or
逻辑或
bool
2、Python数值类型操作符和内建函数
一、工厂函数
数值工厂函数总结类(工厂函数) 操作
bool(obj) b返回obj对象的布尔值python符号化函数 , 也就是 obj.__nonzero__()方法的返回值 。
int(obj, base=10)返回一个字符串或数值对象的整数表 示 , 类似string.atoi();
从Python 1.6起, 引入了可选的进制参数 。
long(obj, base=10)返回一个字符或数据对象的长整数表 示,类似string.atol(),
从Python1.6起,引入了可选的进制参数 float(obj),
返回一个字符串或数据对象的浮点数 表示,类似string.atof() 。
complex(str) or返回一个字符串的复数表示,或 者根据给定的实数,
complex(real, imag=0.0) ?。耙桓隹裳?的虚数部分)生成一个复数对象 。
二、内建函数
1、分类
Python 有五个运算内建函数用于数值运算python符号化函数:
abs(num), coerce(num1,num2), divmod(num1,num2), pow(num1,num2,mod=1)和 round(flt,ndig=0)
其中abs()返回给定参数的绝对值 。如果参数是一个复数,那么就返回math.sqrt(num.real2num.imag2).
coerce()是一个数据类型转换函数,不过它的行为更像一个运算符.数coerce()为程序员提供了不依赖Python 解释器,而是自定义两个数值类型转换的方法 。对一种新创建的数值类型来说,这个特性非常有用.函数coerce()仅返回一个包含类型转换完毕的两个数值元素的元组.
divmod()内建函数把除法和取余运算结合起来, 返回一个包含商和余数的元组.对整数来说,它的返回值就是地板除和取余操作的结果.对浮点数来说,返回的商部分是math.floor(num1/num2),对复数来说,商部分是ath.floor((num1/num2).real).
pow()它和双星号 (**)运算符都可以进行指数运算.不过二者的区别并不仅仅在于一个是运算符,一个是内建函数.在Python 1.5 之前 , 并没有 ** 运算符,内建函数pow()还接受第三个可选的参数,一个余数参数.如果有这个参数的,pow() 先进行指数运算,然后将运算结果和第三个参数进行取余运算.这个特性主要用于密码运算 , 并且比 pow(x,y) % z 性能更好, 这是因为这个函数的实现类似于C 函数pow(x,y,z).
round()用于对浮点数进行四舍五入运算 。它有一个可选的小数位数参数.如果不提供小数位参数,它返回与第一个参数最接近的整数(但仍然是浮点类型).第二个参数告诉round 函数将结果精确到小数点后指定位数.
2、函数int()/round()/math.floor()它们之间的不同之处:
函数 int()直接截去小数部分.(返回值为整数)
函数 floor() 得到最接近原数但小于原数的整数.(返回值为浮点数)
函数 round() 得到最接近原数的整数.(返回值为浮点数)
3、进制转换函数:
返回字符串表示的8 进制和16 进制整数,它们分别是内建函数:
oct()和 hex(). oct(255)='0377'/hex(255)='0xff'
函数chr()接受一个单字节整数值(0到255),返回一个字符串(ASCII),其值为对应的字符.chr(97)='a'
函数ord()则相反,它接受一个字符(ASCII 或 Unicode),返回其对应的整数值.ord('A')=65
3、Python字符串函数
(一)标准类型操作符和标准内建函数
1)、标准类型操作符
,,=,=,==,!=,对象值得比较
注:做比较时字符串是按ASCII值的大小来比较的
is 对象身份比较
and,or,not 布尔类型
2)标准内建函数
type(obj)
cmp(obj1,obj2)
str(obj)和repr(obj) 或反引号运算符(``) 可以方便的以字符串的方式获取对象的
内容、类型、数值属性等信息 。str()函数得到的字符串可读性好,而repr()函数得到的字符
串通常可以用来重新获得该对象, 通常情况下 obj == eval(repr(obj)) 这个等式是成立的
isinstance(obj,type) 判断对象的类型
(二)序列操作
1、序列操作
字符串属于序列对象,可以使用所有序列的操作和函数
切片 [] [:] [::]
简单总结:
*索引(S[i])获取特定偏移的元素 。
——第一个元素偏移为0
——(S[0])获取第一个元素 。
——负偏移索引意味着从最后或右边反向进行计数
——(S[-2])获取倒数第二个元素(就像S[len(s)-2]一样
*分片[S[i:j]提取对应的部分作为一个序列
——右边界不包含在内
——分片的边界默认为0和序列的长度,如果没有给出的话S[:]
——(S[1:3])获取了从偏移为1,直到但不包括偏移为3的元素
——(S[1:])获取从偏移为1到末尾之间的元素
——(S[:3])获取从偏移为0直到但不包括偏移为3的元素
——(S[:-1])获取从偏移为0直到但不包括最后一个元素之间的元素
——(S[:])获取从偏移为0到末尾之间的元素,这有效地实现了顶层S拷贝
拷贝了一个相同值,但是是不同内存区域的对象 。对象字符串这样不可变的对象不是很有用,但是对于可以实地修改的对象来说很有用 。
比如列表 。
扩展分片:第三个限制值 【步进】
完整形式:X[I:J:K]:这标识索引X对象的元素,从偏移为I直到J-1,每隔K元素索引一次 。第三个限制值,K,默认为1
实例
Python Code
1
2
3
4
5
S='abcdefghijk'
S[1:10]
'bcdefghij'
S[1:10:2]
'bdfhj
也可以使用负数作为步进 。
分片表达式
Python Code
1
2
"hello"[::-1]
'olleh'
通过负数步进,两个边界的意义实际上进行了反转 。
3、成员操作符 in , not in
返回布尔值True 或False
可以使用string模块来判断输入字符的合法性,可见成品中的idcheck.py
4、字符串连接
连接字符串 ‘name’ ' ' 'jin'
字符串格式化 '%s %s' % ('name','jin')
join()方法 ' '.join(('name','jin')) ' '.join(['name','jin'])
5、删除清空字符串
del aString
aString=''
(三)、序列函数
序列类型函数
len(str) 返回字串的长度
enumerate(iter):接受一个可迭代对象作为参数,返回一个enumerate
max(str)/min(str):max()和min()函数对其他的序列类型可能更有用,但对于string类型它们能很好地运行,返回最大或者最小的字符(按照ASCII 码值排列),
zip([it0, it1,... itN]) 返回一个列表,其第一个元素是it0,it1,...这些元素的第一个元素组成的一个元组,第二个...,类推.
reversed(seq)c 接受一个序列作为参数,返回一个以逆序访问的迭代器(PEP 322)
sorted(iter,func=None,key=None,reverse=False) 接受一个可迭代对象作为参数 , 返回一个有序的列表;可选参数func,key 和reverse 的含义跟list.sort()内建函数的参数含义一样.
注意:
sorted等需要在原处修改的函数无法用在字符串对象,但可以产生新的对象
sum处理的对象是数字,不能用在字符串
sorted(s)
['a', 'e', 'e', 'g', 'g', 'g', 'o']
(四)只适合于字符串类型的函数
1)raw_input()函数
内建的raw_input()函数使用给定字符串提示用户输入并将这个输入返回,下面是一个使
用raw_input()的例子:
user_input = raw_input("Enter your name: ")
prin user_input
2)str() and unicode()
str()和unicode()函数都是工厂函数,就是说产生所对应的类型的对象.它们接受一个任
意类型的对象,然后创建该对象的可打印的或者Unicode 的字符串表示. 它们和basestring 都
可以作为参数传给isinstance()函数来判断一个对象的类型
3)chr(), unichr(), and ord()
chr()函数用一个范围在range(256)内的(就是0 到255)整数做参数,返回一个对应的字符.unichr()跟它一样 , 只不过返回的是Unicode 字符
ord()函数是chr()函数(对于8 位的ASCII 字符串)或unichr()函数(对于Unicode 对象)
的配对函数,它以一个字符(长度为1 的字符串)作为参数,返回对应的ASCII 数值,或者Unicode
数值,如果所给的Unicode 字符超出了你的Python 定义范围,则会引发一个TypeError 的异常
(五)、只适用于字符串的操作符
1、格式化操作符 %
字符串格式化符号
格式化字符 转换方式
%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 是小数点后的位数(如果可用的话)
2、字符串模板: 更简单的替代品
由于新式的字符串Template 对象的引进使得string 模块又重新活了过来,Template 对象
有两个方法,substitute()和safe_substitute().前者更为严谨,在key 缺少的情况下它会报一
个KeyError 的异常出来,而后者在缺少key 时,直接原封不动的把字符串显示出
3、原始字符串操作符( r/R )
字符串抑制转义r'带特殊符号的字串'
myfile=open(r'C:\new\text.data','w')
4、Unicode 字符串操作符( u/U )
u'abc' U 0061 U 0062 U 0063
u'?' U 1234
u'abc?\n' U 0061 U 0062 U 0063 U 1234 U 0012
(六)字符串对象的方法:
1、删减
T2.lstrip() 移除字符串前面字符(默认空格),返回字符串
T2.rstrip() 移除字符串后面字符(默认空格),返回字符串
T2.strip() 移除字符串前后面空格,返回字符串 默认空格,可以其他字符 S.strip('"')
2、切割
partition(sep),
rpartition(sep),
splitlines([keepends]),#把S按照行分割符分为一个list,keepends是一个bool值,如果为真每行后而会保留行分割符
split([sep [,maxsplit]]),#以sep为分隔符,把S分成一个list 。maxsplit表示分割的次数 。默认的分割符为空白字符
rsplit([sep[,maxsplit]]) #从右到左切割
备注:
partition()函数族是2.5版本新增的方法 。它接受一个字符串参数,并返回一个3个元素的 tuple 对象 。
如果sep没出现在母串中 , 返回值是 (sep, ‘’, ‘’);
否则,返回值的第一个元素是 sep 左端的部分,第二个元素是 sep 自身,第三个元素是 sep 右端的部分 。
S.partition(';')
('', ';', ' generated by /sbin/dhclient-script\nnameserver 172.16.10.171\nnameserver 8.8.8.8\nnameserver 172.16.0.2\nnameserver 178.79.131.110\nnameserver 202.96.199.133\n')
参数 maxsplit 是分切的次数,即最大的分切次数,所以返回值最多有 maxsplit 1 个元素 。
s.split() 和 s.split(‘ ‘)的返回值不尽相同
' hello world!'.split()
['hello', 'world!']
' hello world!'.split(' ')
['', '', 'hello', '', '', 'world!']
S.split('\n',3)
['; generated by /sbin/dhclient-script', 'nameserver 172.16.10.171', 'nameserver 8.8.8.8', 'nameserver 172.16.0.2\nnameserver 178.79.131.110\nnameserver 202.96.199.133\n']
超过最大切割个数后面的全部为一个元素
按行切割
S
'; generated by /sbin/dhclient-script\nnameserver 172.16.10.171\nnameserver 8.8.8.8\nnameserver 172.16.0.2\nnameserver 178.79.131.110\nnameserver 202.96.199.133\n'
S.splitlines()
['; generated by /sbin/dhclient-script', 'nameserver 172.16.10.171', 'nameserver 8.8.8.8', 'nameserver 172.16.0.2', 'nameserver 178.79.131.110', 'nameserver 202.96.199.133']
产生差异的原因在于当忽略 sep 参数或sep参数为 None 时与明确给 sep 赋予字符串值时 split() 采用两种不同的算法 。
对于前者,split() 先去除字符串两端的空白符,然后以任意长度的空白符串作为界定符分切字符串
即连续的空白符串被当作单一的空白符看待;
对于后者则认为两个连续的 sep 之间存在一个空字符串 。因此对于空字符串(或空白符串),它们的返回值也是不同的:
''.split()
[]
''.split(' ')
['']
3、变形
lower(),#全部小写
upper(),#全部小写
capitalize(),#首字母大写
swapcase(),#大小写交换
title()#每个单词第一个大写,其他小写
备注
因为title() 函数并不去除字符串两端的空白符也不会把连续的空白符替换为一个空格,
所以建议使用string 模块中的capwords(s)函数,它能够去除两端的空白符,再将连续的空白符用一个空格代替 。
Python Code
1
2
3
4
' hello world!'.title()
' Hello World!'
string.capwords(' hello world!')
'Hello World!'
4、连接
join(seq)
join() 函数的高效率(相对于循环相加而言),使它成为最值得关注的字符串方法之一 。
它的功用是将可迭代的字符串序列连接成一条长字符串,如:
conf = {'host':'127.0.0.1',
... 'db':'spam',
... 'user':'sa',
... 'passwd':'eggs'}
';'.join("%s=%s"%(k, v) for k, v in conf.iteritems())
'passswd=eggs;db=spam;user=sa;host=127.0.0.1'
S=''.join(T) #使用空字符串分割把字符列表转换为字符串
5、查找
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]])
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中的符号运算的介绍到此就结束了 , 不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

    推荐阅读