字符串是Python的一种基本类型,字符串的操作包括字符串格式化输出、字符串的截取、合并,字符串的查找和替换等操作。

字符串定义

Python中有3种表示字符串的方法:单引号、双引号、三引号。引号使用说明:

(1)单引号和双引号作用相同,如果字符串中包含单引号,可以使用双引号表示,若字符串中包含双新号,可以使用单引号表示。

(2)三引号中可以包含单引号、双引号或换行字符;

(3)如果字符串中包含特殊字符,使用转义字符。

Str = "Python"
Str = 'Python'
Str = '''he say "Hello Python"'''
Str = 'he say "Hello Python"'
Str = "he say \"Hello Python\""

字符串格式化

"%s" % str1 #元素格式化字符串
"%s %s" % (str1, str2)
"%(name)s %(age)d "%{'name':'Zhangsan','age':20} #字典格式化字符串用法

常用的格式化字符串替代符号

%s 格式化字符串
%d 格式化整型
%f 格式化浮点数字,可指定小数点后的精度

实例

print "%s %s %.2f" % ('Zhangsan', 20,20000.33)
print "%(name)s %(age)d %(Salary).2f"%{'name':'Zhangsan','age':20, 'Salary':20000.33}

如果需要对齐输出,可以使用如下函数

str.center(width) #返回一个原字符串居中,并使用空格填充至长度 width 的新字符串
str.ljust(width) #返回一个原字符串左对齐,并使用空格填充至长度 width 的新字符串
str.rjust(width) #返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串

实例

>>> Str = "Python"
>>> print Str.center(15)
Python
>>> print Str.center(15, "*")
*****Python****
>>> print Str.ljust(15)
Python
>>> print Str.rjust(15)
Python

字符串判断

Str.startswith(substring, [,start [,end]]) #判断字符串是否是以指定子字符串开头,如果是则返回 True,否则返回 False
Str.endswith(substring, [,start [,end]]) #判断字符串是否以指定后缀结尾,如果以指定后缀结尾返回True,否则返回False
Str.isalnum() #如果str是否全部为数字或字母,是则返回True,否则返回False
Str.isalpha() #判断str是否全部为字母,是则返回True,否则返回 False
Str.isdecimal() #判断str是否只包含十进制数字,是则返回True 否则返回False.
Str.isdigit() #判断str是否只包含数字,是则返回True 否则返回False.
Str.islower() #判断str是否全部为小写字符,是则返回True,否则返回False
Str.isnumeric() #判断str是否全部为数字字符,是则返回True,否则返回False
Str.isspace() #判断str是否只包含空格,是则返回True,否则返回 False.
Str.istitle() #判断str是标题化的,是则返回True,否则返回False
Str.isupper() #判断str是否全部为大写字符,是则返回True,否则返回False

实例

>>> Str = "Python.py"
>>> Str.endswith('.py')
True
>>> Str.startswith('Py')
True

字符串合并

字符串的拼接打印或给新变量赋值有如下几种方式,但是建议常用+号或者%格式化方式完成。具体描述及实例说明如下:

str1+str2 #利用+号拼接字符串输出
str1,str2 #以逗号","拼接字符串,字符串间以空格分隔
str1str2 #直接放置一起拼接字符串
str1 str2 #以空格相隔拼接,输出也是直接拼接字符串。
'%s %s %' % (str1,str2) #以%拼接字符串。
sep.join([str1,str2]) #利用join拼接字符串,sep是分割符。

实例1(正常处理)

>>> Str = 'Python'+ '|' + 'Java' + '|' + 'Shell' 最常用的形式,建议使用
>>> print Str
Python|Java|Shell >>> Str = 'Python', '|', 'Java', '|', 'Shell' 注意:输出元组形式('Python', '|', 'Java', '|', 'Shell')
>>> print Str
('Python', '|', 'Java', '|', 'Shell') >>> Str = 'Python''|''Java''|''Shell' 直接拼接
>>> print Str
Python|Java|Shell >>> Str = 'Python' '|' 'Java' '|' 'Shell' 和上述一致
>>> print Str
Python|Java|Shell >>> Str = 'Buy %s books cost %d RMB' % ('Python', 100)
>>> print Str
Buy Python books cost 100 RMB >>> Str = '|'.join(['Python', 'Java','Shell'])
>>> print Str
Python|Java|Shell

实例2(包含变量的拼接处理)

>>> Str1 = "Python"
>>> Str2 = Str1 "Java"
File "<stdin>", line 1
Str2 = Str1 "Java"
^
SyntaxError: invalid syntax

字符串截取

str[start : end : step]

实例

Str = ""
Str[1:8] #输出'1234567',索引从0开始计数,从下标1开始取数,第8位不取。
Str[1:] #输出'123456789',从下标1开始到最后
Str[:8] #输出'01234567',从下标0开始到第8位
Str[1:8:2] #输出'1357',从下标1开始,间隔2取字符
Str[::-1] #输出'9876543210',字符串取反

字符串删除前后指定字符

Python strip() 方法用于移除字符串头尾指定的字符,默认为空白符(包括'\n', '\t', ' ', '\r')

Str.strip([chars]) #删除str字符串前后指定字符
Str.lstrip([chars]) #删除str字符串头部指定字符
Str.rstrip([chars]) #删除str字符串尾部指定字符

实例

>>> "  abc def    ".strip()
'abc def'
>>> " abc def ".lstrip()
'abc def '
>>> " abc def ".rstrip()
' abc def'
>>> "!!!!@@abc@@!!!".strip('!@')
'abc'

字符串比较

Python直接使用"==" "!="操作符比较两个字符内容。

>>> "Python" == "Python"
True
>>> "Python" == "python"
False
>>> "Python" != "python"
True

字符串查找

str.find(substr [, start [ , end]]) #查找str是否包含substr,如果start和end指定范围,则检查是否包含在指定范围内,如果是返回开始的索引值,否则返回-1
str.rfind(substr [, start [ , end]]) #同find(),从右边开始查找。
str.index(substr [, start [ , end]]) #同find(),如果substr不在str中会报一个异常。
str.rindex(substr [, start [ , end]]) #同index(),从右边开始。

实例

>>> Str = '2018-02-01 <ver>"VERSION1.0"</ver><ver>"VERSION2.0"</ver>'
>>> Str.find('<ver>') #从字符串开始处开始查找
11
>>> Str.rfind('<ver>') #从字符串尾部开始查找
34
>>> Str.index('<ver>') #同字符串开始处开始查找
11
>>> Str.rindex('<ver>')
34
>>> Str.find('<Ver>') #没有匹配字符串,输出-1
-1
>>> Str.index('<Ver>') #没有匹配字符串,报错。
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: substring not found
>>>

字符串替换

Python中字符串的替换是通过replace()函数实现,但replace()不支持正则表达式语法。

str.replace(old,new[,max]) #把old替换成new,如max指定,则替换不超过max次.

实例

>>> Str = "IP1:192.168.0.1, IP2:127.0.0.1"
>>> Str.replace('192.168.0.1','10.10.10.10')
'IP1:10.10.10.10, IP2:127.0.0.1'
>>> print Str
IP1:192.168.0.1, IP2:127.0.0.1 #原字符串内容不会发生变化。

如果想将2个IP地址全部替换为10.10.10.10,可以继续使用replace()函数

>>> Str.replace('192.168.0.1','10.10.10.10').replace('127.0.0.1','10.10.10.10')
'IP1:10.10.10.10, IP2:10.10.10.10'

但是如果超过3个以上不同的字符串全部替换,就不适合使用replace函数了。可以使用re模块的sub函数。

>>> import re
>>> re.sub(r'\d+\.\d+\.\d+\.\d+','10.10.10.10',Str)
'IP1:10.10.10.10, IP2:10.10.10.10'

字符串分割

str.split(substr="" [,num]) #以substr为分隔符切片str,如果num指定,则仅分隔 num 个子字符串。默认分割字符是空格

实例

>>> Str = "Python Java Shell"
>>> Str.split() #默认是以空格做为分割符,连续的空格可以认为是一个空格
['Python', 'Java', 'Shell']
>>> Str = "Python,Java,Shell"
>>> Str.split(',') #指定以逗号做为分割符
['Python', 'Java', 'Shell']

如果需要指定多个分割符,字符串的split()函数就不适合了。需要使用re模块的split()函数。

>>> Str = "Python:Java:Shell|C++|Ruby"
>>> Str.split(':')
['Python', 'Java', 'Shell|C++|Ruby']

使用re.split()方法分割如下:

>>> import re
>>> Str = "Python:Java:Shell|C++|Ruby"
>>> re.split(r'[:|]',Str)
['Python', 'Java', 'Shell', 'C++', 'Ruby']

字符串大小写转换

str.lower() #所有大写字符转换为小写.
str.upper() #所有小写字母转换为大写
str.swapcase() #字符串中的大小写互转
str.capitalize() #把字符串的第一个字符大写
str.title() #所有单词都是以大写开始,其余字母均为小写

实例

>>> Str  = "aBc def"
>>> Str.lower()
'abc def'
>>> Str.upper()
'ABC DEF'
>>> Str.swapcase()
'AbC DEF'
>>> Str.capitalize()
'Abc def'
>>> Str.title()
'Abc Def'

Python 字符串基本操作的更多相关文章

  1. 关于python字符串基本操作

    python字符串基本操作,比如字符串的替换.删除.截取.复制.连接.分割等.都是一些关于字符串的一些方法.下面来列举一些,相信对学习python还是有些帮助的. 1.去除空格--strp(): &g ...

  2. python字符串基本操作

  3. 3. python 字符串的一般使用

    3. python 字符串的一般使用 1.基本操作 1)使用+连接 >>> "abc"+"efg"    'abcefg'    >&g ...

  4. Python SQLAlchemy基本操作和常用技巧包含大量实例,非常好python

    http://www.makaidong.com/%E8%84%9A%E6%9C%AC%E4%B9%8B%E5%AE%B6/28053.shtml "Python SQLAlchemy基本操 ...

  5. Python 字符串——巧取值和列表——巧取值 对比

    Python 字符串——巧取值和列表——巧取值 对比 1.字符串取值实例: samp_string = "Whatever you are, be a good one." for ...

  6. 关于python字符串连接的操作

    python字符串连接的N种方式 注:本文转自http://www.cnblogs.com/dream397/p/3925436.html 这是一篇不错的文章 故转 python中有很多字符串连接方式 ...

  7. StackOverFlow排错翻译 - Python字符串替换: How do I replace everything between two strings without replacing the strings?

    StackOverFlow排错翻译 - Python字符串替换: How do I replace everything between two strings without replacing t ...

  8. Python 字符串

    Python访问字符串中的值 Python不支持单字符类型,单字符也在Python也是作为一个字符串使用. Python访问子字符串,可以使用方括号来截取字符串,如下实例: #!/usr/bin/py ...

  9. python字符串方法的简单使用

    学习python字符串方法的使用,对书中列举的每种方法都做一个试用,将结果记录,方便以后查询. (1) s.capitalize() ;功能:返回字符串的的副本,并将首字母大写.使用如下: >& ...

随机推荐

  1. MySQL 开启和查看bin-log日志

    1.5.7版本前修改my.cnf文件,添加log-bin=my-bin(my.cnf的位置根据自己安装的路径查看)# vi /usr/local/mysql/my.cnflog-bin=my-bin  ...

  2. 第11章 拾遗5:IPv6和IPv4共存技术(1)_双栈技术和6to4隧道技术

    6. IPv6和IPv4共存技术 6.1 双栈技术 (1)双协议主机的协议结构 (2)双协议栈示意图 ①双协议主机在通信时首先通过支持双协议的DNS服务器查询与目的主机名对应的IP地址. ②再根据指定 ...

  3. /storage/xx-xx/, /sdcard, /mnt/sdcard 三者的区别

    本文针对Android 7.1 /sdcard是/mnt/sdcard的符号链,指向/storage/self/primary, /mnt/sdcard,也是符号链,指向/storage/self/p ...

  4. MapReduce Demo

    功能:统计公司员工一个月内手机上网上行流量.下行流量及总流量. 测试数据如下: 13612345678     6000    1000 13612345678     2000    3000 13 ...

  5. CentOS7.4安装部署openstack [Liberty版] (一)

    一.OpenStack简介 OpenStack是一个由NASA(美国国家航空航天局)和Rackspace合作研发并发起的,以Apache许可证授权的自由软件和开放源代码项目. OpenStack是一个 ...

  6. tomcat7.0安装笔记

    1. 解压,新增系统环境变量CATALINA_HOME,值为tomcat所在目录,如E: tomcat7.0 PS:安装JAVA时没有配置系统变量JAVA_HOME,导致报错无法启动tomcat,新建 ...

  7. centos7 安装 nvm

    cd 到 /usr/local下创建nvm文件夹,并进入nvm目录, 执行命令: wget -qO- https://raw.githubusercontent.com/creationix/nvm/ ...

  8. css grid 网格布局

    前几天研究了一下这个布局方式,笔记待更新 先放一下学习站点 文档 我应该尝试使用CSS Grid Layout的IE实现吗 https://hacks.mozilla.org/2018/02/css- ...

  9. 27.Docker集群部署

    对于scrapy的部署方式 1.Scrapyd 安装扩展组件,远程控制scrapy任务,包括部署源代码,启动任务,监听任务.scrapy-client .scrapyd api 协助完成部署和监听操作 ...

  10. SPARK快学大数据分析概要

    Spark 是一个用来实现快速而通用的集群计算的平台.在速度方面,Spark 扩展了广泛使用的MapReduce 计算模型,而且高效地支持更多计算模式,包括交互式查询和流处理.在处理大规模数据集时,速 ...