您现在的位置是:首页 > 网站制作 > PythonPython

Python 字符串

胜于蓝2013-12-29【Python】人已围观

简介字符串是 Python 中最常用的数据类型。我们可以使用引号('或")来创建字符串。创建字符串很简单,只要为变量分配一个值即可。例如:var1 = 'Hello World!'var2 = "P

字符串是 Python 中最常用的数据类型。我们可以使用引号('或")来创建字符串。NyV胜于蓝|优秀个人博客

创建字符串很简单,只要为变量分配一个值即可。例如:NyV胜于蓝|优秀个人博客

var1 = 'Hello World!'
var2 = "Python Runoob"

Python 访问字符串中的值

Python 不支持单字符类型,单字符在 Python 中也是作为一个字符串使用。NyV胜于蓝|优秀个人博客

Python 访问子字符串,可以使用方括号来截取字符串,如下实例:NyV胜于蓝|优秀个人博客

实例(Python 2.0+)

#!/usr/bin/python var1 = 'Hello World!' var2 = "Python Runoob" print "var1[0]: ", var1[0] print "var2[1:5]: ", var2[1:5]

以上实例执行结果:NyV胜于蓝|优秀个人博客

var1[0]:  H
var2[1:5]:  ytho

Python 字符串连接

我们可以对字符串进行截取并与其他字符串进行连接,如下实例:NyV胜于蓝|优秀个人博客

实例(Python 2.0+)

#!/usr/bin/python # -*- coding: UTF-8 -*- var1 = 'Hello World!' print "输出 :- ", var1[:6] + 'Runoob!'

以上实例执行结果NyV胜于蓝|优秀个人博客

输出 :-  Hello Runoob!

Python 转义字符

在需要在字符中使用特殊字符时,python 用反斜杠 \ 转义字符。如下表:NyV胜于蓝|优秀个人博客

转义字符 描述
\(在行尾时) 续行符
\\ 反斜杠符号
\' 单引号
\" 双引号
\a 响铃
\b 退格(Backspace)
\e 转义
\000
\n 换行
\v 纵向制表符
\t 横向制表符
\r 回车
\f 换页
\oyy 八进制数,yy代表的字符,例如:\o12代表换行
\xyy 十六进制数,yy代表的字符,例如:\x0a代表换行
\other 其它的字符以普通格式输出

Python字符串运算符

下表实例变量 a 值为字符串 "Hello",b 变量值为 "Python":NyV胜于蓝|优秀个人博客

操作符 描述 实例
+ 字符串连接 >>>a + b 'HelloPython'
* 重复输出字符串 >>>a * 2 'HelloHello'
[] 通过索引获取字符串中字符 >>>a[1] 'e'
[ : ] 截取字符串中的一部分 >>>a[1:4] 'ell'
in 成员运算符 - 如果字符串中包含给定的字符返回 True >>>"H" in a True
not in 成员运算符 - 如果字符串中不包含给定的字符返回 True >>>"M" not in a True
r/R 原始字符串 - 原始字符串:所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符。 原始字符串除在字符串的第一个引号前加上字母"r"(可以大小写)以外,与普通字符串有着几乎完全相同的语法。 >>>print r'\n' \n >>> print R'\n' \n
% 格式字符串 请看下一章节

实例(Python 2.0+)

#!/usr/bin/python # -*- coding: UTF-8 -*- a = "Hello" b = "Python" print "a + b 输出结果:", a + b print "a * 2 输出结果:", a * 2 print "a[1] 输出结果:", a[1] print "a[1:4] 输出结果:", a[1:4] if( "H" in a) : print "H 在变量 a 中" else : print "H 不在变量 a 中" if( "M" not in a) : print "M 不在变量 a 中" else : print "M 在变量 a 中" print r'\n' print R'\n'

以上程序执行结果为:NyV胜于蓝|优秀个人博客

a + b 输出结果: HelloPython
a * 2 输出结果: HelloHello
a[1] 输出结果: e
a[1:4] 输出结果: ell
H 在变量 a 中
M 不在变量 a 中
\n
\n

Python 字符串格式化

Python 支持格式化字符串的输出 。尽管这样可能会用到非常复杂的表达式,但最基本的用法是将一个值插入到一个有字符串格式符 %s 的字符串中。NyV胜于蓝|优秀个人博客

在 Python 中,字符串格式化使用与 C 中 sprintf 函数一样的语法。NyV胜于蓝|优秀个人博客

如下实例:NyV胜于蓝|优秀个人博客

#!/usr/bin/python

print "My name is %s and weight is %d kg!" % ('Zara', 21) 

以上实例输出结果:NyV胜于蓝|优秀个人博客

My name is Zara and weight is 21 kg!

python 字符串格式化符号:NyV胜于蓝|优秀个人博客

    符   号 描述
      %c  格式化字符及其ASCII码
      %s  格式化字符串
      %d  格式化整数
      %u  格式化无符号整型
      %o  格式化无符号八进制数
      %x  格式化无符号十六进制数
      %X  格式化无符号十六进制数(大写)
      %f  格式化浮点数字,可指定小数点后的精度
      %e  用科学计数法格式化浮点数
      %E  作用同%e,用科学计数法格式化浮点数
      %g  %f和%e的简写
      %G  %F 和 %E 的简写
      %p  用十六进制数格式化变量的地址

格式化操作符辅助指令:NyV胜于蓝|优秀个人博客

符号 功能
* 定义宽度或者小数点精度
- 用做左对齐
+ 在正数前面显示加号( + )
<sp> 在正数前面显示空格
# 在八进制数前面显示零('0'),在十六进制前面显示'0x'或者'0X'(取决于用的是'x'还是'X')
0 显示的数字前面填充'0'而不是默认的空格
% '%%'输出一个单一的'%'
(var) 映射变量(字典参数)
m.n. m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话)

Python2.6 开始,新增了一种格式化字符串的函数 str.format(),它增强了字符串格式化的功能。NyV胜于蓝|优秀个人博客


Python三引号(triple quotes)

python中三引号可以将复杂的字符串进行复制:NyV胜于蓝|优秀个人博客

python三引号允许一个字符串跨多行,字符串中可以包含换行符、制表符以及其他特殊字符。NyV胜于蓝|优秀个人博客

三引号的语法是一对连续的单引号或者双引号(通常都是成对的用)。NyV胜于蓝|优秀个人博客

 >>> hi = '''hi 
there'''
>>> hi   # repr()
'hi\nthere'
>>> print hi  # str()
hi 
there  

三引号让程序员从引号和特殊字符串的泥潭里面解脱出来,自始至终保持一小块字符串的格式是所谓的WYSIWYG(所见即所得)格式的。NyV胜于蓝|优秀个人博客

一个典型的用例是,当你需要一块HTML或者SQL时,这时当用三引号标记,使用传统的转义字符体系将十分费神。NyV胜于蓝|优秀个人博客

 errHTML = '''
<HTML><HEAD><TITLE>
Friends CGI Demo</TITLE></HEAD>
<BODY><H3>ERROR</H3>
<B>%s</B><P>
<FORM><INPUT TYPE=button VALUE=Back
ONCLICK="window.history.back()"></FORM>
</BODY></HTML>
'''
cursor.execute('''
CREATE TABLE users (  
login VARCHAR(8), 
uid INTEGER,
prid INTEGER)
''')

Unicode 字符串

Python 中定义一个 Unicode 字符串和定义一个普通字符串一样简单:NyV胜于蓝|优秀个人博客

>>> u'Hello World !'
u'Hello World !'

引号前小写的"u"表示这里创建的是一个 Unicode 字符串。如果你想加入一个特殊字符,可以使用 Python 的 Unicode-Escape 编码。如下例所示:NyV胜于蓝|优秀个人博客

>>> u'Hello\u0020World !'
u'Hello World !'

被替换的 \u0020 标识表示在给定位置插入编码值为 0x0020 的 Unicode 字符(空格符)。NyV胜于蓝|优秀个人博客


python的字符串内建函数

字符串方法是从python1.6到2.0慢慢加进来的——它们也被加到了Jython中。NyV胜于蓝|优秀个人博客

这些方法实现了string模块的大部分方法,如下表所示列出了目前字符串内建支持的方法,所有的方法都包含了对Unicode的支持,有一些甚至是专门用于Unicode的。NyV胜于蓝|优秀个人博客

方法 描述

string.capitalize()NyV胜于蓝|优秀个人博客

把字符串的第一个字符大写NyV胜于蓝|优秀个人博客

string.center(width)NyV胜于蓝|优秀个人博客

返回一个原字符串居中,并使用空格填充至长度 width 的新字符串NyV胜于蓝|优秀个人博客

string.count(str, beg=0, end=len(string))NyV胜于蓝|优秀个人博客

返回 str 在 string 里面出现的次数,如果 beg 或者 end 指定则返回指定范围内 str 出现的次数NyV胜于蓝|优秀个人博客

string.decode(encoding='UTF-8', errors='strict')NyV胜于蓝|优秀个人博客

以 encoding 指定的编码格式解码 string,如果出错默认报一个 ValueError 的 异 常 , 除非 errors 指 定 的 是 'ignore' 或 者'replace'NyV胜于蓝|优秀个人博客

string.encode(encoding='UTF-8', errors='strict')NyV胜于蓝|优秀个人博客

以 encoding 指定的编码格式编码 string,如果出错默认报一个ValueError 的异常,除非 errors 指定的是'ignore'或者'replace'NyV胜于蓝|优秀个人博客

string.endswith(obj, beg=0, end=len(string))NyV胜于蓝|优秀个人博客

检查字符串是否以 obj 结束,如果beg 或者 end 指定则检查指定的范围内是否以 obj 结束,如果是,返回 True,否则返回 False.NyV胜于蓝|优秀个人博客

string.expandtabs(tabsize=8)NyV胜于蓝|优秀个人博客

把字符串 string 中的 tab 符号转为空格,tab 符号默认的空格数是 8。NyV胜于蓝|优秀个人博客

string.find(str, beg=0, end=len(string))NyV胜于蓝|优秀个人博客

检测 str 是否包含在 string 中,如果 beg 和 end 指定范围,则检查是否包含在指定范围内,如果是返回开始的索引值,否则返回-1NyV胜于蓝|优秀个人博客

string.format()NyV胜于蓝|优秀个人博客

格式化字符串NyV胜于蓝|优秀个人博客

string.index(str, beg=0, end=len(string))NyV胜于蓝|优秀个人博客

跟find()方法一样,只不过如果str不在 string中会报一个异常.NyV胜于蓝|优秀个人博客

string.isalnum()NyV胜于蓝|优秀个人博客

如果 string 至少有一个字符并且所有字符都是字母或数字则返NyV胜于蓝|优秀个人博客

回 True,否则返回 FalseNyV胜于蓝|优秀个人博客

string.isalpha()NyV胜于蓝|优秀个人博客

如果 string 至少有一个字符并且所有字符都是字母则返回 True,NyV胜于蓝|优秀个人博客

否则返回 FalseNyV胜于蓝|优秀个人博客

string.isdecimal()NyV胜于蓝|优秀个人博客

如果 string 只包含十进制数字则返回 True 否则返回 False.NyV胜于蓝|优秀个人博客

string.isdigit()NyV胜于蓝|优秀个人博客

如果 string 只包含数字则返回 True 否则返回 False.NyV胜于蓝|优秀个人博客

string.islower()NyV胜于蓝|优秀个人博客

如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True,否则返回 FalseNyV胜于蓝|优秀个人博客

string.isnumeric()NyV胜于蓝|优秀个人博客

如果 string 中只包含数字字符,则返回 True,否则返回 FalseNyV胜于蓝|优秀个人博客

string.isspace()NyV胜于蓝|优秀个人博客

如果 string 中只包含空格,则返回 True,否则返回 False.NyV胜于蓝|优秀个人博客

string.istitle()NyV胜于蓝|优秀个人博客

如果 string 是标题化的(见 title())则返回 True,否则返回 FalseNyV胜于蓝|优秀个人博客

string.isupper()NyV胜于蓝|优秀个人博客

如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True,否则返回 FalseNyV胜于蓝|优秀个人博客

string.join(seq)NyV胜于蓝|优秀个人博客

以 string 作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串NyV胜于蓝|优秀个人博客

string.ljust(width)NyV胜于蓝|优秀个人博客

返回一个原字符串左对齐,并使用空格填充至长度 width 的新字符串NyV胜于蓝|优秀个人博客

string.lower()NyV胜于蓝|优秀个人博客

转换 string 中所有大写字符为小写.NyV胜于蓝|优秀个人博客

string.lstrip()NyV胜于蓝|优秀个人博客

截掉 string 左边的空格NyV胜于蓝|优秀个人博客

string.maketrans(intab, outtab])NyV胜于蓝|优秀个人博客

maketrans() 方法用于创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标。NyV胜于蓝|优秀个人博客

max(str)NyV胜于蓝|优秀个人博客

返回字符串 str 中最大的字母。NyV胜于蓝|优秀个人博客

min(str)NyV胜于蓝|优秀个人博客

返回字符串 str 中最小的字母。NyV胜于蓝|优秀个人博客

string.partition(str)NyV胜于蓝|优秀个人博客

有点像 find()和 split()的结合体,从 str 出现的第一个位置起,把 字 符 串 string 分 成 一 个 3 元 素 的 元 组 (string_pre_str,str,string_post_str),如果 string 中不包含str 则 string_pre_str == string.NyV胜于蓝|优秀个人博客

string.replace(str1, str2,  num=string.count(str1))NyV胜于蓝|优秀个人博客

把 string 中的 str1 替换成 str2,如果 num 指定,则替换不超过 num 次.NyV胜于蓝|优秀个人博客

string.rfind(str, beg=0,end=len(string) )NyV胜于蓝|优秀个人博客

类似于 find()函数,不过是从右边开始查找.NyV胜于蓝|优秀个人博客

string.rindex( str, beg=0,end=len(string))NyV胜于蓝|优秀个人博客

类似于 index(),不过是从右边开始.NyV胜于蓝|优秀个人博客

string.rjust(width)NyV胜于蓝|优秀个人博客

返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串NyV胜于蓝|优秀个人博客

string.rpartition(str)NyV胜于蓝|优秀个人博客

类似于 partition()函数,不过是从右边开始查找NyV胜于蓝|优秀个人博客

string.rstrip()NyV胜于蓝|优秀个人博客

删除 string 字符串末尾的空格.NyV胜于蓝|优秀个人博客

string.split(str="", num=string.count(str))NyV胜于蓝|优秀个人博客

以 str 为分隔符切片 string,如果 num 有指定值,则仅分隔 num+ 个子字符串NyV胜于蓝|优秀个人博客

string.splitlines([keepends])NyV胜于蓝|优秀个人博客

按照行('\r', '\r\n', \n')分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符。NyV胜于蓝|优秀个人博客

string.startswith(obj, beg=0,end=len(string))NyV胜于蓝|优秀个人博客

检查字符串是否是以 obj 开头,是则返回 True,否则返回 False。如果beg 和 end 指定值,则在指定范围内检查.NyV胜于蓝|优秀个人博客

string.strip([obj])NyV胜于蓝|优秀个人博客

在 string 上执行 lstrip()和 rstrip()NyV胜于蓝|优秀个人博客

string.swapcase()NyV胜于蓝|优秀个人博客

翻转 string 中的大小写NyV胜于蓝|优秀个人博客

string.title()NyV胜于蓝|优秀个人博客

返回"标题化"的 string,就是说所有单词都是以大写开始,其余字母均为小写(见 istitle())NyV胜于蓝|优秀个人博客

string.translate(str, del="")NyV胜于蓝|优秀个人博客

根据 str 给出的表(包含 256 个字符)转换 string 的字符,NyV胜于蓝|优秀个人博客

要过滤掉的字符放到 del 参数中NyV胜于蓝|优秀个人博客

string.upper()NyV胜于蓝|优秀个人博客

转换 string 中的小写字母为大写NyV胜于蓝|优秀个人博客

string.zfill(width)NyV胜于蓝|优秀个人博客

返回长度为 width 的字符串,原字符串 string 右对齐,前面填充0NyV胜于蓝|优秀个人博客

Tags:

很赞哦! ()

上一篇:Python Number(数字)

下一篇:Python 列表(List)

文章评论

当前时间

快速排名

  • 网站建设|万词霸屏,企业软文推广,刷下拉框
  • 快速排名:不用再等SEO三个月,只需3-7天即可把行业关键词覆盖百度搜索引擎首页,点击不收费,排名报表,真实访问量报表一目了然。

合作加盟

  • 扫码请注明来意,否则不会通过
  • 填写商户姓名不要带有“超市”,“便利店” ,“百货”等
  • 扫码成为快钱代理
  • 扫码加站长微信,为您推荐快钱总部负责人
  • 快钱POSS机(电签版)
  • 1,免押版:签约费率快捷交易0.38%,常规交易0.65%
  • 贷记卡单笔≥3000元视为激活
  • 2,,有押版:签约快捷交易0.38%,常规交易0.65%
  • 激活首刷≥99元,扣除99元系统服务费,多出部分shishi到账
  • 电签版ipos参与每月扶持奖励
  • 电签版ipos与Mpos单独考核台均
  • 30台以上有效激活奖励3000元扶持金
  • 当月交易额≥3000元的为活跃用户

本站推荐

站点信息

  • 建站时间:2018-10-24
  • 网站程序:帝国CMS7.5
  • 主题模板《今夕何夕》
  • 文章统计7074篇文章
  • 标签管理标签云
  • 统计数据百度统计
  • 扫描二维码:请注明来意,否则不会通过
  • 微信号:扫描二维码,关注我们
歌名 - 歌手
0:00