python字符串操作

本篇文章将介绍python的字符串操作,更多内容请参考:python学习指南

一、查看帮助文档

在学习编程语言过程中,不管是python语言还是其它语言时我们都应该学会查看API文档,查看帮助信息,以便我们进行开发使用。
学习python查看文档有两种方式:

  1. 下载官方的API文档进行查阅,官方地址:python官方地址
  2. 可以在本地搭建好的环境中,进入命令窗口并切换到python环境,使用dir()和help()方法函数进行查看,比如,我想查看str字符串中有哪些属性和方法,使用dir(str)命令可以查看,如果想查看具体的某个方法的使用,如index()方法,可以使用help(str.index)的方式查看方法的使用。

二、字符串常见函数

lower():将字符串全变成小写;upper():将字符串全变成大写;原字符串保持不变

#定义一个字符串变量
str1 = "AbCd"
#将str1变成小写,赋值给str2
str2 = str1.lower()
#将str1变成大写,赋值给str3
str3 = str1.upper()

find()函数:函数原型:SttringObject.find(sub, [end]),作用是返回字符串中第一个出现sub的第一个字母的下标,如果没有找到sub子串,则返回-1。start和end是可选参数,从start位置下标开始,到end位置下标结束,在[start, end]中进行查找

str1 = "abcdefghijklmn"
index1 = str1.find("mn", 0, 13)

rfind(),函数原型:StringObject.rfind(sub, [start, [end]]),返回字符串中最后出现sub的第一个字母的标号,如果字符串中没有sub,则返回-1

>>>str1 = 'abcabcabcabc'
>>>index1 = str1.rfind('ab')
>>>index1
6

index()函数,函数原型StringObject.index(sub, [start,[end]]),作用跟find函数一样

>>>str1 = 'hello world'
>>>index = str1.index('ll')
>>>index
2
>>>index1 = str1.index('xx')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: substring not found

注意:find()函数和index()函数的作用是一样的,在一个字符串中查找子串的位置下标。区别在于,在没有找到子串的情况下,find函数的返回值是-1;而index()函数就会出现一个ValueError的异常。

count()函数,函数原型:StringObject.count(sub, [start, [end]]),计算sub在字符串中出现的次数

#定义一个字符串变量
str1 = "hello,world! hello.python!"
#计算子串'he'在str1字符串中出现的总次数
countNum = str1.count('he')

replace()函数,函数原型:StringObject.replace(oldstr, newstr, [, count]),其中count参数为替换的次数(不输入为全部替换)

#定义一个字符串变量
>>>str1 = "xyzxyzxyzxxxx"
#使用replace()函数,将'xyz'替换成'abc'
>>>str2 = str1.replace('xyz', 'abc')
>>>str2

strip()函数,函数原型:StringObject.strip([char]),把字符串前后有char的字符全部去掉,默认去掉空格。lstrip([char]):去掉字符串左边有char的字符;rstrip([char]):去掉字符串右边有char的字符。

>>>str1 = '    my name is ...   '
>>>str2 = str1.strip()
>>>str2
my name is ...
>>>str3 = '******hello evenyone!*****'
>>>str4 = str3.strip('*')
>>>str4
'hello everyone!'

join()方法,函数原型:StringObject.join(iterable),其中iterable是可迭代类型如列表。作用是用来在队列中添加元素,但需要添加的队列元素都必须是字符串。返回值是一个字符串类型。

>>>seq = [1, 2, 3, 4]
>>>sep = '+'
>>>str1 = sep.join(seq)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: sequence item 0: expected str instance, int found

split()方法,函数原型:StringObject.split(sep=None, maxsplit=-1),作用是将字符串分割成序列。sep默认情况下是以空格作为分隔符。

>>>dirs = "/usr/bin/env"
>>>dirList = dirs.split("/")
>>>dirList
['', 'user', 'bin', 'env']

三、其它函数

  1. capitalize()函数:返回一个首字母大写的字符串。
  2. center()函数:S.center(width, [fillchar])->string,返回一个把原字符串移到中间,默认把两边添加空格的字符串,也可以自己制定填充物
  3. decode()函数:S.decode([encoding[, errors]])->object,编码
  4. encode()函数:S.encode([encoding[, errors]])->object,解码
  5. endswith()函数,S.endswith(suffix[,start[, end]])->bool,检查是否以suffix结尾,可以指定位置,做循环的判定条件很有用,免去==!
  6. isalnum()函数,S.isalnum()->bool,判断S中是否全为数字或者字母[并至少有一个字符],是则返回True,没有字符返回False
  7. isalpha()函数,S.isalpha()->bool函数,判断是否全为字母【并且至少有一个字符】
  8. isdigit()函数,S.isdigit()->bool,判断是否全为数字【并且至少有一个数字】
  9. islower()函数,S.islower()->bool,判断字母是否全为小写(有数字不影响)【并至少有一个字符】

四、Python字符串运算符

操作符 描述 实例
+ 字符串连接 a = 'hello' + 'python',运行结果:a=‘hellopython’
* 重复输出字符串 a = '-'*5,运行结果:a = '-----'
[] 通过索引获取字符串中的字符 a = 'hello' ,b = a[0],运行结果为:b = 'h'
[:] 截取字符串中一部分字符 a = 'hello world' ,b = a[1:4],运行结果:b='ell'
in 成员运算符,如果字符串中包含给定的字符返回True,不包含返回False 'h' in a,其中a = ‘hello’,运行结果:True
not in 成员运算符,如果字符串中包含给定的字符返回False,不包含返回True 'h' in a,其中a = ‘hello’,运行结果:False
r/R 原始字符串 - 原始字符串:所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符。 原始字符串除在字符串的第一个引号前加上字母"r"(可以大小写)以外,与普通字符串有着几乎完全相同的语法。 print r'\n',运行结果为:\n

注意点:1、list、str、dict都是可迭代,可用for循环。
2、计算字符串的长度使用len(str),或者str.len()

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342

推荐阅读更多精彩内容