Python3 数据类型-字符串
字符串是 Python 中最常用的数据类型,是一个个字符组成的有序的序列,是字符的集合。
一 字符串定义
创建字符串很简单,可以使用引号('或"或""")来创建字符串,只要为变量分配一个值即可。
实例(Pytho3.0+):
s1 = 'string'
s2 = "string2"
s3 = '''this's a "String"'''
s4 = 'hello \n magedu.com'
print(s4)
#hello
# magedu.com s5 = r'hello \n magedu.com'
print(s5)
#hello \n magedu.com
#字符串前面加r,表示的意思是禁止字符转义 s6 = 'c:\windows\nt'
print(s6)
#c:\windows
#t s7 = R"c:\windows\nt"
# 字符串前面加r,表示的意思是禁止字符转义
print(s7)
#c:\windows\nt s8 = 'c:\windows\\nt'
print(s7)
#c:\windows\nt
# \ 转义字符,去除特殊字符的含义 sql = """select * from user where name='tom'"""
二 字符串元素访问
索引访问
实例(Python3.0+):
sql = "select * from user where name='tom'"
print(sql[4])
# 字符串'c' sql[4] = 'o'
# TypeError: 'str' object does not support item assignment
# 错误的,因为字符串是不可变类型
序列访问
实例(Python3.0+):
str1 = "python"
for c in str1:
print(c)
print(type(c)) # 什么类型,当然还是字符串类型(str) """
p
<class 'str'>
y
<class 'str'>
t
<class 'str'>
h
<class 'str'>
o
<class 'str'>
n
<class 'str'>
"""
迭代访问
实例(Python3.0+):
str1 = "python"
str1 = list(str1)
print(str1)
# ['p', 'y', 't', 'h', 'o', 'n']
三 字符串修改
str.replace(old.new[,count]) -> str
- 字符串中找到配皮替换为新字符串,返回新字符串
- count表示替换几次,不指定就是全部替换
实例(Python3.0+):
str1 = 'www.baidu.com'
print(str1.replace('www', 'sss'))
# 'sss.baidu.com'
print(str1.replace('w', 's', 2))
# 'ssw.baidu.com'
str.strip([chars]) -> str
- 从字符串两端去除指定的字符集chars中的所有字符
- 如果chars没有指定,去除两端的空白字符及换行符
实例(Python3.0+):
s = "\r \n\t hello python \n \t"
print(s.strip())
#"hello python"
s = "i am very very very sorry"
print(s.strip('iy'))
#" am very very very sorr"
str.lstrip([chars]) -> str
- 从左开始去除指定的字符集chars中的所有字符
- 如果chars没有指定,去除左边的空白字符及换行符
实例(Python3.0+):
s = "i am very very very sorry"
print(s.lstrip('iy'))
#" am very very very sorry"
str.rstrip([chars]) -> str
- 从右开始去除指定的字符集chars中的所有字符
- 如果chars没有指定,去除右边的空白字符及换行符
实例(Python3.0+):
s = "i am very very very sorry"
print(s.rstrip('iy'))
#"i am very very very sorr"
四 字符串查找
str.find(sub,[,start[,end]]) -> int
- 在指定的区间(start,end),从左到右,查找子串sub,找到返回索引,没找到返回-1
实例(Python3.0+):
s = "i am very very very sorry"
print(s.find('very')) # 5
print(s.find('very', 5)) # 从索引5开始查找 # 5
print(s.find('very', 6, 13)) # 从索引6到13间查找 # -1
str.rfind(sub,[,start[,end]]) -> int
- 在指定的区间(start,end),从右到左,查找子串sub,找到返回索引,没找到返回-1
实例(Python3.0+):
s = "i am very very very sorry"
print(s.rfind('very', 10))
print(s.rfind('very', 10, 15))
print(s.rfind('very', -10, -1)) # 15
print(s.rfind('very', -1, -10) ) # -1
str.index(sub[,start[,end]]) -> int
- 在指定的区间(start,end),从左到右,查找子串sub,找到返回索引,没找到抛出异常ValueError
一般情况下查找字符串不适用index,返回异常不容易处理,会导致程序崩溃
实例(Python3.0+):
s = "i am very very very sorry"
print(s.index('very')) # 5 索引从0开始
print(s.index('very',5) )
print(s.index('very',6,13))
str.rindex(sub[,start[,end]]) -> int
- 在指定的区间(start,end),从右到左,查找子串sub,找到返回索引,没找到抛出异常ValueError
- 一般情况下查找字符串不适用index,返回异常不容易处理,会导致程序崩溃
实例(Python3.0+):
s = "i am very very very sorry"
print(s.rindex('very', 10))
print(s.rindex('very', 10, 15))
print(s.rindex('very', -10, -1)) # 15
print(s.rindex('very', -1, -10)) # -1
str.count(sub[,start[,end]]) -> int
- 在指定的区间(start,end),从左到右,统计子串sub出现的次数
实例(Python3.0+):
s = 'I am very very very sorry'
print(s.count('very')) # 3
print(s.count('very',5)) # 3
print(s.count('very',5,14)) # 2
五 字符串判断
str.endswith(suffix[,start[,end]]) -> bool
- 在指定区间(start,end),字符串是否是suffix结尾
str.startswith(suffix[,start[,end]]) -> bool
- 在指定区间(start,end),字符串是否是suffix开头
实例(Python3.0+):
s = "i am very very very sorry" """
首先打印出每个字符的索引:
方法1:
num = 0
for i in s:
print(num,"-",i,end="")
num +=1
# 0 - i 1 - 2 - a 3 - m 4 - 5 - v 6 - e 7 - r 8 - y 9 - 10 - v 11 - e 12 - r 13 - y 14 - 15 - v 16 - e 17 - r 18 - y 19 - 20 - s 21 - o 22 - r 23 - r 24 - y 方法2:
for i,j in enumerate(s):
print(i,"-",j,end=" ")
# 0 - i 1 - 2 - a 3 - m 4 - 5 - v 6 - e 7 - r 8 - y 9 - 10 - v 11 - e 12 - r 13 - y 14 - 15 - v 16 - e 17 - r 18 - y 19 - 20 - s 21 - o 22 - r 23 - r 24 - y
"""
print(s.startswith('very'))
# False
print(s.startswith('very', 5))
# True
print(s.startswith('very', 5, 9))
# True
print(s.endswith('very', 5, -1))
# False
print(s.endswith('very', 5, 100))
# True
is系列

六 字符串切割
str.split(sep=None,maxsplit=-1) -> list of
- 从左到右
- seq指定分割字符串,缺省的情况下空白字符串(一个或多个空白字符)作为分隔符
- maxsplit指定分割的次数,-1表示遍历整个字符串(默认是-1)
实例(Python3.0+):
s1 = "i'm \ta super student" print(s1.split())
# ["i'm", 'a', 'super', 'student']
# \t 在默认的情况下被当成分隔符(\t表示Tab键) print(s1.split(' '))
# ["i'm", '\ta', 'super', 'student'] print(s1.split(' ', maxsplit=2))
# ["i'm", '\ta', 'super student'] print(s1.split('\t', maxsplit=2))
# ["i'm ", 'a super student']
str.rsplit(sep=None,maxsplit=-1) -> list of strings
- 从右往左切割
- sep指定分割字符串,缺省的情况下空白字符串作为分隔符
- maxsplit指定分割次数,-1表示遍历整个字符串(默认是-1)
实例(Python3.0+):
s1 = "i'm \ta super student" print(s1.rsplit())
# ["i'm", 'a', 'super', 'student']
# \t 在默认的情况下被当成分隔符 print(s1.rsplit('super'))
# ["i'm \ta ", 'uper ', 'tudent'] print(s1.rsplit(' '))
# ["i'm", '\ta', 'super', 'student'] print(s1.rsplit(' ', maxsplit=2)) #或 print(s1.rsplit(' ', 2))
# ["i'm", '\ta', 'super student'] maxsplit可以省却,直接写值 print(s1.rsplit('\t', maxsplit=2))
# ["i'm ", 'a super student']
str.splitlins([keepnds]) -> list of strings
- 按照行来切割字符串
- keepends指的是是否保留行分割符,默认不保留分隔符
- 行分割符包括\n \r\n \r等
实例(Python3.0+):
str1 = 'ab c\n\nde fg\rkl\r\n' print(str1.splitlines())
#['ab c', '', 'de fg', 'kl']
print(str1.splitlines(True))
#['ab c\n', '\n', 'de fg\r', 'kl\r\n'] s1 = """i'm a super student.
you're a super teacher.""" print(s1)
#i'm a super student.
#you're a super teacher. print(s1.splitlines())
#["i'm a super student.", "you're a super teacher."] print(s1.splitlines(True))
#["i'm a super student.\n", "you're a super teacher."]
str.partition(sep) -> (head,sep,tail)
- 从左至右,遇到分隔符就把字符串分割成两部分,返回头、分隔符、尾三部分的三元组;如果没有找到分隔符,就返回头、2个空元素的三元组
- sep 分隔字符串,必须指定
实例(Python3.0+):
s1 = "i'm a super student"
print(s1.partition('s'))
# ("i'm a","s","uper student")
print(s1.partition(' '))
#("i'm", ' ', 'a super student')
print(s1.partition('abc'))
# ("i'm a super student",'','')
str.rpartition(sep) -> (head,sep,tail)
- 从右到左,遇到分隔符就把字符串分割成两部分,返回头、分隔符、尾三部分的三元组;如果没有找到分隔符,就返回头、2个空元素的三元组
- sep 分隔字符串,必须指定
实例(Python3.0+):
str1 = "I am supper student"
print(str1.rpartition(" "))
# ('I am supper', ' ', 'student')
七 字符串大小写
str.upper()
- 把字符串中的字符转换成大写
实例(Python3.0+):
str1 = "i am a supper student"
print(str1.upper())
# I AM A SUPPER STUDENT
str.lower()
- 把字符串中的字符转换成小写
- 只能转换26个英文字母,特殊字符无法转换
实例(Python3.0+):
str1 = "I AM A SUPPER STUDENT"
print(str1.lower())
# i am a supper student
str.casefold()
- 把字符串中的字符转换成小写
- 比之lower,可以转换特殊字符
实例(Python3.0+):
S1 = "Runoob EXAMPLE....WOW!!!" # 英文
S2 = "ß" # 德语 print(S1.lower())
# runoob example....wow!!!
print(S1.casefold())
# runoob example....wow!!!
print(S2.lower())
# ß
print(S2.casefold()) # 德语的"ß"正确的小写是"ss"
# ss
str.swapcase()
- 把字符串中的大写转换成小写,小写字符转换成大写
实例(Python3.0+):
str1 = "I Am A Supper Student"
print(str1.swapcase())
#i aM a sUPPER sTUDENT
八 字符串排版
str.title() -> str
- 标题的每个单词首字母大写
str.capitalize() -> str
- 首个字母大写
实例(Python3.0+):
str1 = "i am supper student" print(str1.title())
#I Am Supper Student
print(str1.capitalize())
#I am supper student
center(width[,fillchar]) -> str
- width 打印宽度
- fillchar 填充的字符
实例(Python3.0+):
s1 = 'abc'
print(s1.center(50,'#'))
#'#######################abc########################'
zfill(width) -> str
- width 打印宽度,居右,左边用0填充
实例(Python3.0+):
s1 = 'abc'
print(s1.zfill(50))
'00000000000000000000000000000000000000000000000abc'
ljust(width[,fillchar]) -> str
- width 打印宽度,左对齐,右边默认空格填充
- fillchar 填充字符
实例(Python3.0+):
s1 = "abc"
print(s1.ljust(20))
#"abc "
print(s1.ljust(20,"*"))
#abc*****************
rjust(width[,fillchar]) -> str
- width 打印宽度,右对齐,左边默认空格填充
- fillchar 填充字符
实例(Python3.0+):
s1 = 'abc'
print(s1.rjust(20))
#" abc"
print(s1.rjust(50,"$"))
#'$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$abc'
Python3 数据类型-字符串的更多相关文章
- Python基础数据类型-字符串(string)
Python基础数据类型-字符串(string) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客使用的是Python3.6版本,以及以后分享的每一篇都是Python3.x版 ...
- 整理了最全的Python3数据类型转换方法,可以收藏当手册用
本文基于python3.8版本,总结了各种数据类型直接的转换规则和方法.算是比较全了,可以收藏当手册来查. 概述 数据类型转换,指的是通过某种方法,将一个数据由原来的类型转换为另外一个类型.比如,我们 ...
- 自学Python2.1-基本数据类型-字符串str(object)
Python str方法总结 class str(object): """ str(object='') -> str str(bytes_or_buffer[, ...
- redis数据类型-字符串类型
Redis数据类型 字符串类型 字符串类型是Redis中最基本的数据类型,它能存储任何形式的字符串,包括二进制数据.你可以用其存储用户的邮箱.JSON化的对象甚至是一张图片.一个字符串类型键允许存储的 ...
- python学习第九讲,python中的数据类型,字符串的使用与介绍
目录 python学习第九讲,python中的数据类型,字符串的使用与介绍 一丶字符串 1.字符串的定义 2.字符串的常见操作 3.字符串操作 len count index操作 4.判断空白字符,判 ...
- Python基础:数据类型-字符串(7)
1.字符串基本操作 字符串是由字符组成的一串字符序列,字符串是有顺序的,从左到右,索引从0开始,依次递增. Python中字符串类型:str. Python中字符串的三种表示方式: (1)普通字符串: ...
- 自学Python2.1-基本数据类型-字符串str(object) 上
自学Python之路 自学Python2.1-基本数据类型-字符串str(object) 上 字符串是 Python 中最常用的数据类型.我们可以使用引号('或")来创建字符串. 创建字符串 ...
- 自学Python2.1-基本数据类型-字符串方法 下
自学Python之路 自学Python2.1-基本数据类型-字符串方法 下 class str(object): """ str(object='') -> str ...
- GoLang基础数据类型--->字符串处理大全
GoLang基础数据类型--->字符串处理大全 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 欢迎加入: 高级运维工程师之路 59843264 ...
随机推荐
- 学习笔记(2)centos7 下安装mysql
centos7安装mysql 本文通过yum方式安装mysql 1.添加mysql yum 仓库 去mysql开发者中心(http://dev.mysql.com/downloads/repo/yum ...
- es6 数组扩展方法
1.扩展运算符 含义: 扩展运算符,三个点(...),将一个数组转为用逗号分隔的参数顺序. 例如: console.log([1,2,3]); console.log(...[1,2,3]); 结 ...
- Ext自定义控件 - 自学ExtJS
本文所有思想表达均为个人意见,如有疑义请多批评,如有雷同不甚荣幸. 转载请注明出处:Nutk'Z http://www.cnblogs.com/nutkz/p/3448801.html 在用到ExtJ ...
- 丑数(Ugly Numbers, UVa 136)
丑数(Ugly Numbers, UVa 136) 题目描述 我们把只包含因子2.3和5的数称作丑数(Ugly Number).求按从小到大的顺序的第1500个丑数.例如6.8都是丑数,但14不是,因 ...
- 01-http简介-四层 七层 三次握手
HTTP简介.请求方法与响应状态码 接下来想系统的回顾一下TCP/IP协议族的相关东西,当然这些东西大部分是在大学的时候学过的,但是那句话,基础的东西还是要不时的回顾回顾的.接下来的几篇博客都是关于T ...
- 原型 - 实现自己的jQuery
每个第一次使用jq的开发者都感到惊叹,jq的$太神奇了,究竟是怎么做到的使用$控制dom 赞叹前人之余,探究其本源才是前端开发者应该做的事,社区常常说,不要重复造轮子, 可是啊,连轮子都造不出来,又怎 ...
- Java : Spring基础 AOP
简单的JDK动态代理例子(JDK动态代理是用了接口实现的方式)(ICar是接口, GoogleCar是被代理对象, MyCC是处理方法的类): public class TestCar { publi ...
- docker 环境下创建 overlay 网络方案
一.环境 三台机器,其中一台安装 consul(192.168.1.21), 两台创建网络(192.168.1.32,33) 二.实现步骤 1.构建环境 1)三台机器部署docker环境 2)选择一台 ...
- win10每次重新启动,eclipse不能打开,要重新配jdk环境的解决办法
在后面加上反斜杠就好,也不知道是什么原因,知道的同学希望可以在下面的评论告诉我.
- 关于verilog中的signed类型
在数字电路中,出于应用的需要,我们可以使用无符号数,即包括0及整数的集合:也可以使用有符号数,即包括0和正负数的集合.在更加复杂的系统中,也许这两种类型的数,我们都会用到. 有符号数通常以2的补码形式 ...