python删除指定字符串字符串中指定位置字符

Python 基础教程
Python 字符串
字符串是 Python 中最常用的数据类型。我们可以使用引号('或")来创建字符串。
创建字符串很简单,只要为变量分配一个值即可。例如:
var1 = 'Hello World!'
var2 = "Python Runoob"
Python访问字符串中的值
Python不支持单字符类型,单字符也在Python也是作为一个字符串使用。
Python访问子字符串,可以使用方括号来截取字符串,如下实例:
#!/usr/bin/python
var1 = 'Hello World!'
var2 = "Python Runoob"
print "var1[0]: ", var1[0]
print "var2[1:5]: ", var2[1:5]
以上实例执行结果:
var2[1:5]:
Python字符串更新
你可以对已存在的字符串进行修改,并赋值给另一个变量,如下实例:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
var1 = 'Hello World!'
print "更新字符串 :- ", var1[:6] + 'Runoob!'
以上实例执行结果
更新字符串 :-
Hello Runoob!
Python转义字符
在需要在字符中使用特殊字符时,python用反斜杠(\)转义字符。如下表:
转义字符描述
\(在行尾时)
反斜杠符号
退格(Backspace)
纵向制表符
横向制表符
八进制数,yy代表的字符,例如:\o12代表换行
十六进制数,yy代表的字符,例如:\x0a代表换行
其它的字符以普通格式输出
Python字符串运算符
下表实例变量a值为字符串"Hello",b变量值为"Python":
操作符描述实例
+字符串连接 a + b 输出结果: HelloPython
*重复输出字符串 a*2 输出结果:HelloHello
[]通过索引获取字符串中字符 a[1] 输出结果 e
[ : ]截取字符串中的一部分 a[1:4] 输出结果 ell
in成员运算符 - 如果字符串中包含给定的字符返回 True
H in a 输出结果 1
not in 成员运算符 - 如果字符串中不包含给定的字符返回 True
M not in a 输出结果 1
r/R原始字符串 - 原始字符串:所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符。
原始字符串除在字符串的第一个引号前加上字母"r"(可以大小写)以外,与普通字符串有着几乎完全相同的语法。 print r'\n' 输出 \n 和 print R'\n' 输出 \n
%格式字符串请看下一章节
实例如下:
#!/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 中"
print "H 不在变量 a 中"
if( "M" not in a) :
print "M 不在变量 a 中"
print "M 在变量 a 中"
print r'\n'
print R'\n'
以上程序执行结果为:
a + b 输出结果: HelloPython
a * 2 输出结果: HelloHello
a[1] 输出结果: e
a[1:4] 输出结果: ell
H 在变量 a 中
M 不在变量 a 中
Python字符串格式化
Python 支持格式化字符串的输出 。尽管这样可能会用到非常复杂的表达式,但最基本的用法是将一个值插入到一个有字符串格式符 %s 的字符串中。
在 Python 中,字符串格式化使用与 C 中 sprintf 函数一样的语法。
如下实例:
#!/usr/bin/python
print "My name is %s and weight is %d kg!" % ('Zara', 21)
以上实例输出结果:
My name is Zara and weight is 21 kg!
python字符串格式化符号:
&&& 符&& 号
描述&&&&& %c&格式化字符及其ASCII码&&&&& %s&格式化字符串&&&&& %d&格式化整数&&&&& %u&格式化无符号整型&&&&& %o&格式化无符号八进制数&&&&& %x&格式化无符号十六进制数&&&&& %X&格式化无符号十六进制数(大写)&&&&& %f&格式化浮点数字,可指定小数点后的精度&&&&& %e&用科学计数法格式化浮点数&&&&& %E&作用同%e,用科学计数法格式化浮点数&&&&& %g&%f和%e的简写&&&&& %G&%f 和 %E 的简写&&&&& %p&用十六进制数格式化变量的地址
格式化操作符辅助指令:
*定义宽度或者小数点精度
-用做左对齐
+在正数前面显示加号( + )
&sp&在正数前面显示空格
# 在八进制数前面显示零('0'),在十六进制前面显示'0x'或者'0X'(取决于用的是'x'还是'X')
0 显示的数字前面填充'0'而不是默认的空格
% '%%'输出一个单一的'%'
(var)映射变量(字典参数)
m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话)
Python三引号(triple quotes)
python中三引号可以将复杂的字符串进行复制:
python三引号允许一个字符串跨多行,字符串中可以包含换行符、制表符以及其他特殊字符。
三引号的语法是一对连续的单引号或者双引号(通常都是成对的用)。
&&& hi = '''hi
'hi\nthere'
&&& print hi
三引号让程序员从引号和特殊字符串的泥潭里面解脱出来,自始至终保持一小块字符串的格式是所谓的WYSIWYG(所见即所得)格式的。
一个典型的用例是,当你需要一块HTML或者SQL时,这时用字符串组合,特殊字符串转义将会非常的繁琐。
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 字符串和定义一个普通字符串一样简单:
&&& u'Hello World !'
u'Hello World !'
引号前小写的"u"表示这里创建的是一个 Unicode 字符串。如果你想加入一个特殊字符,可以使用 Python 的 Unicode-Escape 编码。如下例所示:
&&& u'Hello\u0020World !'
u'Hello World !'
被替换的 \u0020 标识表示在给定位置插入编码值为 0x0020 的 Unicode 字符(空格符)。
python的字符串内建函数
字符串方法是从python1.6到2.0慢慢加进来的——它们也被加到了Jython中。
这些方法实现了string模块的大部分方法,如下表所示列出了目前字符串内建支持的方法,所有的方法都包含了对Unicode的支持,有一些甚至是专门用于Unicode的。
把字符串的第一个字符大写
返回一个原字符串居中,并使用空格填充至长度 width 的新字符串
返回 str 在 string 里面出现的次数,如果 beg 或者 end 指定则返回指定范围内 str 出现的次数
以 encoding 指定的编码格式解码 string,如果出错默认报一个 ValueError 的 异 常 , 除 非 errors 指 定 的 是 'ignore' 或 者'replace'
以 encoding 指定的编码格式编码 string,如果出错默认报一个ValueError 的异常,除非 errors 指定的是'ignore'或者'replace'
检查字符串是否以 obj 结束,如果beg 或者 end 指定则检查指定的范围内是否以 obj 结束,如果是,返回 True,否则返回 False.
把字符串 string 中的 tab 符号转为空格,tab 符号默认的空格数是 8。
检测 str 是否包含在 string 中,如果 beg 和 end 指定范围,则检查是否包含在指定范围内,如果是返回开始的索引值,否则返回-1
跟find()方法一样,只不过如果str不在 string中会报一个异常.
如果 string 至少有一个字符并且所有字符都是字母或数字则返
回 True,否则返回 False
如果 string 至少有一个字符并且所有字符都是字母则返回 True,
否则返回 False
如果 string 只包含十进制数字则返回 True 否则返回 False.
如果 string 只包含数字则返回 True 否则返回 False.
如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True,否则返回 False
如果 string 中只包含数字字符,则返回 True,否则返回 False
如果 string 中只包含空格,则返回 True,否则返回 False.
如果 string 是标题化的(见 title())则返回 True,否则返回 False
如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True,否则返回 False
以 string 作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串
返回一个原字符串左对齐,并使用空格填充至长度 width 的新字符串
转换 string 中所有大写字符为小写.
截掉 string 左边的空格
maketrans() 方法用于创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标。
返回字符串 str 中最大的字母。
返回字符串 str 中最小的字母。
有点像 find()和 split()的结合体,从 str 出现的第一个位置起,把 字 符 串 string 分 成 一 个 3 元 素 的 元 组 (string_pre_str,str,string_post_str),如果 string 中不包含str 则 string_pre_str == string.
把 string 中的 str1 替换成 str2,如果 num 指定,则替换不超过 num 次.
类似于 find()函数,不过是从右边开始查找.
类似于 index(),不过是从右边开始.
返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串
string.rpartition(str)
类似于 partition()函数,不过是从右边开始查找.
删除 string 字符串末尾的空格.
以 str 为分隔符切片 string,如果 num有指定值,则仅分隔 num 个子字符串
按照行分隔,返回一个包含各行作为元素的列表,如果 num 指定则仅切片 num 个行.
检查字符串是否是以 obj 开头,是则返回 True,否则返回 False。如果beg 和 end 指定值,则在指定范围内检查.
在 string 上执行 lstrip()和 rstrip()
翻转 string 中的大小写
返回"标题化"的 string,就是说所有单词都是以大写开始,其余字母均为小写(见 istitle())
根据 str 给出的表(包含 256 个字符)转换 string 的字符,
要过滤掉的字符放到 del 参数中
转换 string 中的小写字母为大写
返回长度为 width 的字符串,原字符串 string 右对齐,前面填充0
isdecimal()方法检查字符串是否只包含十进制字符。这种方法只存在于unicode对象。Python startswith() 函数 判断字符串开头_Linux编程_Linux公社-Linux系统门户网站
你好,游客
Python startswith() 函数 判断字符串开头
来源:Linux社区&
作者:doiido
函数:startswith()
作用:判断字符串是否以指定字符或子字符串开头
一、函数说明语法:string.startswith(str, beg=0,end=len(string))& & &
或string[beg:end].startswith(str)&参数说明:string:& 被检测的字符串str:& & & 指定的字符或者子字符串。(可以使用元组,会逐一匹配)beg:& & 设置字符串检测的起始位置(可选)end:& & 设置字符串检测的结束位置(可选)如果存在参数 beg 和 end,则在指定范围内检查,否则在整个字符串中检查
返回值如果检测到字符串,则返回True,否则返回False。默认空字符为True
函数解析:如果字符串string是以str开始,则返回True,否则返回False
&&& s = 'hello good boy doiido'&&& print s.startswith('h')True&&& print s.startswith('hel')True&&& print s.startswith('h',4)False&&& print s.startswith('go',6,8)True
#匹配空字符集&&& print s.startswith('')True#匹配元组&&& print s.startswith(('t','b','h'))True
常用环境:用于if判断
&&& if s.startswith('hel'):&print "you are right"else:&print "you are wrang"
you are right
--------------------------------------分割线 --------------------------------------
上源码安装Python3.4&
《Python核心编程 第二版》.(Wesley J. Chun ).[高清PDF中文版]
《Python开发技术详解》.( 周伟,宗杰).[高清PDF扫描版+随书视频+代码]
Python脚本获取Linux系统信息
在下用Python搭建桌面算法交易研究环境
Python 语言的发展简史
Python 的详细介绍:Python 的下载地址:
本文永久更新链接地址:
相关资讯 & & &
& (12/01/:04)
& (04/21/:40)
& (12/09/:27)
& (07/12/:06)
& (04/05/:56)
图片资讯 & & &
   同意评论声明
   发表
尊重网上道德,遵守中华人民共和国的各项有关法律法规
承担一切因您的行为而直接或间接导致的民事或刑事法律责任
本站管理人员有权保留或删除其管辖留言中的任意内容
本站有权在网站内转载或引用您的评论
参与本评论即表明您已经阅读并接受上述条款Python 字符串方法详解 - 开源中国社区
当前访客身份:游客 [
当前位置:
& Python 字符串方法详解
本文最初发表于赖勇浩(恋花蝶)的博客(),如蒙转载,敬请保留全文完整,切勿去除本声明和作者信息。
&&&&&& 在编程中,几乎90% 以上的代码都是关于整数或字符串操作,所以与整数一样,Python 的字符串实现也使用了许多拿优化技术,使得字符串的性能达到极致。与 C++ 标准库(STL)中的 std::string&不同,python 字符串集合了许多字符串相关的算法,以方法成员的方式提供接口,使用起来非常方便。
&字符串方法大约有几十个,这些方法可以分为如下几类(根据 manuals 整理):
center(width[, fillchar]) ,
ljust(width[, fillchar]),
rjust(width[, fillchar]),
zfill(width),
expandtabs([tabsize])
lfillchar 参数指定了用以填充的字符,默认为空格
l顾名思义,zfill()即是以字符0进行填充,在输出数值时比较常用
lexpandtabs()的tabsize 参数默认为8。它的功能是把字符串中的制表符(tab)转换为适当数量的空格。
strip([chars]),
lstrip([chars]),
rstrip([chars])
*strip()函数族用以去除字符串两端的空白符,空白符由string.whitespace常量定义。
capitalize(),
swapcase(),
title()函数是比较特别的,它的功能是将每一个单词的首字母大写,并将单词中的非首字母转换为小写(英文文章的标题通常是这种格式)。
&&& 'hello wORld!'.title()
'Hello World!'
因为title() 函数并不去除字符串两端的空白符也不会把连续的空白符替换为一个空格,所以建议使用string 模块中的capwords(s)函数,它能够去除两端的空白符,再将连续的空白符用一个空格代替。
&&& '&hello
&& world!'.title()
&& World!'
&&& string.capwords('&hello
&& world!')
'Hello World!'
partition(sep),
rpartition(sep),
splitlines([keepends]),
split([sep [,maxsplit]]),
rsplit([sep[,maxsplit]])
l*partition()函数族是2.5版本新增的方法。它接受一个字符串参数,并返回一个3个元素的 tuple 对象。如果sep没出现在母串中,返回值是 (sep, ‘’, ‘’);否则,返回值的第一个元素是 sep 左端的部分,第二个元素是 sep 自身,第三个元素是 sep 右端的部分。
l参数 maxsplit 是分切的次数,即最大的分切次数,所以返回值最多有 maxsplit+1 个元素。
ls.split() 和 s.split(‘ ‘)的返回值不尽相同
&&& '&hello
&& world!'.split()
['hello', 'world!']
&&& '&hello
&& world!'.split(' ')
['', '', 'hello', '', '', 'world!']
产生差异的原因在于当忽略 sep 参数或sep参数为 None 时与明确给 sep 赋予字符串值时 split() 采用两种不同的算法。对于前者,split() 先去除字符串两端的空白符,然后以任意长度的空白符串作为界定符分切字符串(即连续的空白符串被当作单一的空白符看待);对于后者则认为两个连续的 sep 之间存在一个空字符串。因此对于空字符串(或空白符串),它们的返回值也是不同的:
&&& ''.split()
&&& ''.split(' ')
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=db=user=host=127.0.0.1'
isalnum(),
isalpha(),
isdigit(),
islower(),
isupper(),
isspace(),
istitle(),
startswith(prefix[, start[, end]]),
endswith(suffix[,start[, end]])
这些函数都比较简单,顾名知义。需要注意的是*with()函数族可以接受可选的 start, end 参数,善加利用,可以优化性能。
另,自 Py2.5 版本起,*with() 函数族的 prefix 参数可以接受 tuple 类型的实参,当实参中的某人元素能够匹配,即返回 True。
count( sub[, start[, end]]),
find( sub[, start[, end]]),
index( sub[, start[, end]]),
rfind( sub[, start[,end]]),
rindex( sub[, start[, end]])
find()函数族找不到时返回-1,index()函数族则抛出ValueError异常
另,也可以用 in 和 not in 操作符来判断字符串中是否存在某个模板。
replace(old, new[,count]),
translate(table[,deletechars])
lreplace()函数的 count 参数用以指定最大替换次数
ltranslate() 的参数 table 可以由 string.maketrans(frm, to) 生成
ltranslate() 对 unicode 对象的支持并不完备,建议不要使用。
encode([encoding[,errors]]),
decode([encoding[,errors]])
这是一对互逆操作的方法,用以编码和解码字符串。因为str是平台相关的,它使用的内码依赖于操作系统环境,而unicode是平台无关的,是Python内部的字符串存储方式。unicode可以通过编码(encode)成为特定编码的str,而str也可以通过解码(decode)成为unicode。
1)C++ 中可以通过 boost.string_algo 库来获得同样方便的字符串处理能力。
2)这些字符串方法在 python1.6 版本才开始提供,如果你使用的python版本非常老,可能需要使用string模块来获得这些方便的算法。
原文链接:
共有1个评论
<span class="a_vote_num" id="a_vote_num_
总结的不错,谢谢!
更多开发者职位上
有什么技术问题吗?
彭博的其它问题
类似的话题【Python】批量删除指定位置的文件名中的某些字符串,有需要的朋友可以参考下。因为在手机上看一些视频文件和文字文件,从一些网站上下载的资料都会有一个很长的文件名前内容,使得手机看起来非常不方便,今天花了点时间用python写了一个小片段,达到了当前的目的就是删除指定字符串,当然这个程序还有待改善和丰富,但也是今天的成果,发上来供大家参考和使用。#!/usr/bin/env python#-*- coding: utf-8 -*-#Date: #Function:批量重命名文件import sysimport osdef getpath():
print '请输入路径信息:/n'
dpath = raw_input('=======').replace('//','/')
return dpathdef getfn(path):
fnlist = os.listdir(path)
os.chdir(path)
print os.getcwd()
for fname in fnlist:print fname
return fnlistdef newfnlist(fnlist):
print '请输入要删除的文字:/n'
delchar = raw_input('&&&&&')
newfnlist = []
for fname in fnlist:newname = fname.replace(delchar,'')newfnlist.append(newname)
for i in newfnlist:print i
return newfnlistdef rename(oldfnlist,newfnlist):
fnum = len(oldfnlist)
while fnum:if i & fnum:os.rename(oldfnlist[i],newfnlist[i])i = i+1else:breakpath = getpath()oldlist = getfn(path)newlist = newfnlist(oldlist)rename(oldlist,newlist)

我要回帖

更多关于 js截取指定位置字符串 的文章

 

随机推荐