python字符串操作
本篇文章将介绍python的字符串操作,更多内容请参考:python学习指南
一、查看帮助文档
在学习编程语言过程中,不管是python语言还是其它语言时我们都应该学会查看API文档,查看帮助信息,以便我们进行开发使用。 学习python查看文档有两种方式:
- 下载官方的API文档进行查阅,官方地址:python官方地址
- 可以在本地搭建好的环境中,进入命令窗口并切换到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']
三、其它函数
- capitalize()函数:返回一个首字母大写的字符串。
- center()函数:S.center(width, [fillchar])->string,返回一个把原字符串移到中间,默认把两边添加空格的字符串,也可以自己制定填充物
- decode()函数:S.decode([encoding[, errors]])->object,编码
- encode()函数:S.encode([encoding[, errors]])->object,解码
- endswith()函数,S.endswith(suffix[,start[, end]])->bool,检查是否以suffix结尾,可以指定位置,做循环的判定条件很有用,免去==!
- isalnum()函数,S.isalnum()->bool,判断S中是否全为数字或者字母[并至少有一个字符],是则返回True,没有字符返回False
- isalpha()函数,S.isalpha()->bool函数,判断是否全为字母【并且至少有一个字符】
- isdigit()函数,S.isdigit()->bool,判断是否全为数字【并且至少有一个数字】
- 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()
- 2016: [Usaco2010]Chocolate Eating
- javascript 闭包详解
- 3016: [Usaco2012 Nov]Clumsy Cows
- POJ 3207 Ikki's Story IV - Panda's Trick(2-SAT)
- 3359: [Usaco2004 Jan]矩形
- 漫谈Java IO之 Netty与NIO服务器
- Java线程的几种状态
- POJ3683 Priest John's Busiest Day(2-SAT)
- javascript 面向对象(实现继承的几种方式)
- Base64 的 JavaScript 实现 js-base64
- HTTP请求详解
- 漫谈Java IO之 NIO那些事儿
- 1593: [Usaco2008 Feb]Hotel 旅馆
- BZOJ 1823: [JSOI2010]满汉全席(2-SAT)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 完整的卸载Jdk java环境教程
- HTML 元素标签语义化及使用场景
- 共享内存原理与VCS监控采集实战
- Spark中的聚类算法
- 【Linux_Shell 脚本编程学习笔记六、shell的数值运算】
- Java自动化测试(adb常用命令 32)
- 前端学习计算机理论知识的好处
- 【Vue 学习笔记 一、Vue开发环境搭建】
- Vue 图片上传组件(base64 版):vue-upload-imgs
- 三、运行时的动态常量(学习笔记)
- Vue Cli 3 打包配置--自动忽略 console.log 语句
- git 常用命令介绍
- PAT (Basic Level) Practice (中文)1043 输出PATest (20 分)
- PAT (Basic Level) Practice (中文)1047 编程团体赛 (20 分)
- Vue中computed分析