python学习笔记之二:使用字符串
这里会介绍如何使用字符串格式化其他的值,并了解一下利用字符串的分割,连接,搜索等方法能做些什么。
1.基本字符串操作
所有标准的序列操作(索引,分片,乘法,判断成员资格,求长度,取最大值和最小值)对字符串同样适用。但是要千万记住:字符串是不可变的。因此下面的分片赋值是不合法的:
>>> website = "www.python.org"
>>> website[-3:] = "com"
TypeError:object doesn't support slice assignment
2.字符串格式化:精简版
字符串格式化使用字符串格式化操作符,即百分号%来实现。
在%的左侧放置一个字符串,在右侧则放置希望格式化的值。可以使用一个值,如一个字符串或者数字,也可以使用多个值的元组或者字典。一般情况下使用元组:
>>> format = "hello,%s. %s enough for ya?"
>>> values = ("world","Hot")
>>> print format %values
hello world,Hot enough for ya?
3.字符串格式化:完整版
格式化操作符的右操作数可以是任何东西,如果是元组的话,则其中的每一个元素都会被单独格式化,每个值都需要一个对应的转换说明符。
注意:如果需要转换的元组作为转换表达式的一部分存在,那么必须将它用圆括号括起来,以避免出错。
>>> '%s plus %s equals %s' %(1,1,2)
'1 plus 1 equals 2'
基本的转换说明符包括以下部分,注意:这些项的顺序是至关重要的。
(1)%字符:标记转换说明符的开始;
(2)转换标志(可选):-表示左对齐;+表示在转换值之前要加上正负号;“”(空白字符)表示整数之前保留空格;0表示转换值若位数不够则用0填充。
(3)最小字段宽度(可选):转换后的字符串至少应该具有该值指定的宽度。如果是*,则宽度会从值元组中读出。
(4)点(.)后跟精确度(可选):如果转换的是实数,精确度表示出现在小数点后的位数。如果转换的是字符串,那么该数字就表示最大字段宽度。如果是*,那么精度将会从元组中读出。
(5)转换类型
3.1 简单转换
只需要写出转换类型,使用起来很简单:
>>> "price of eggs: $%d" % 42
'price of eggs:$42'
3.2 字段宽度和精度
字符宽度是转换后的值所保留的最小字符个数,精度对于数字转换来说,是结果中应该包含的小数位数,对字符串转换来说是转换后的值所能包含的最大字符个数。
可以使用*作为字段宽度或精度,此时数值会从元组参数中读出:
>>> '%5.*s' % (3,'hello')
' hel'
3.3 符号、对齐和0填充
在字段宽度和精度值之前还可放置一个“标表”,可以是零,加号,减号或空格。
>>> '010.2f' % pi
'0000003.14'
>>> print ('%+5d' % 10) + '\n' + ('%+5d' % -10)
+10
-10
>>> '%-10.2f' % pi
'2.14 '
>>> print('% 5d' % 10) + '\n' + ('% 5d' % -10)
10
-10
4.字符串方法
4.1 find
find方法可以在一个较长的字符串中查找子字符串。它返回子串所在位置的最左端索引,如果没有找到则返回-1.
>>> "with a moo-moo here".find('moo')
7
>>> title = "python 's flying"
>>> title.find(flying)
11
这个方法还可以接受可选的起始点和结束点参数。注意:由起始值和终止值指定的范围包含第一个指引,但不包含第二个索引。
>>>subject = "get rich now"
>>>subject.find('get',1)
-1
>>>subject.find('rich',2,8)
4
4.2 jion
jion方法是非常重要的字符串方法,它是split方法的逆方法,用来在队列中连接元素。
>>> seq = ['','','']
>>> j = '+'
>>> j.jion(seq)
'1+2+3'
注意:需要连接的队列元素必须都是字符串。
4.3 lower
lower方法返回字符串的小写字母版。
>>> "THIS IS A CAT".lower()
'this is a cat'
4.4 replace
replace方法返回某字符串的所有匹配项均被替换后得到的字符串。(类似于“查找并替换”)
>>> 'this is a test'.replace('is','eez')
'theez eez a test'
4.5 split
这是一个非常重要的字符串方法,是jion的逆方法,用来将字符串分割成序列
>>> '1+2+3'.split('+')
['','','']
注意:如果不提供任何分隔符,程序会把所有空格作为分隔符(空格,制表,换行等)
4.6 strip
strip方法返回去除两侧(不包括内部)空格的字符串:
>>> " this is a cake ".strip()
'this is a cake'
也可以指定需要去除的字符,将它们列为参数即可:
>>> "*** spam * for everyone!!!".strip('* !')
'spam * for everyone'
4.7 translate
translate方法和replace方法一样,可以替换字符串中的某些部分,但是和前者不同的是,translate方法只处理单个字符。它的优势在于可以同时进行多个替换,有时候比replace效率高得多。
在使用translate转换之前,需要先完成一张转换表。转换表中是以某字符替换某字符的对应关系。因为这个表有多达256个项目,我们还是不要自己写了,使用string模块里面的maketrans函数就行。
maketrans函数接收两个参数:两个等长的字符串,表示第一个字符串中的每个字符都用第二个字符串中相同位置的字符替换。
>>> from string import maketrans
>>> table = maketrans('cs','kz')
>>> 'this is an incredible test'.translate(table)
'thiz iz an inkredible tezt'
translate的第二个参数是可选的,这个参数是用来指定需要删除的字符的。如想要删除所有空格:
>>> 'this is an incredible test'.translate(table,' ')
'thizizaninkredibletezt'
python学习笔记之二:使用字符串的更多相关文章
- python学习笔记(二)— 字符串(string)
字符串是 Python 中最常用的数据类型.我们可以使用引号('或")来创建字符串. 创建字符串很简单,只要为变量分配一个值即可.例如: var1 = 'Hello World!' var2 ...
- Python学习笔记(二)——列表
Python学习笔记(二)--列表 Python中的列表可以存放任何数据类型 >>> list1 = ['Hello','this','is','GUN',123,['I','Lov ...
- Python学习笔记(二):条件控制语句与循环语句及常用函数的用法
总结的内容: 1.条件控制语句 2.while循环语句 3.for循环语句 4.函数的用法 一.条件控制语句 1.介绍 Python条件语句是通过一条或多条语句的执行结果(True或者False)来决 ...
- 【Python学习笔记之二】浅谈Python的yield用法
在上篇[Python学习笔记之一]Python关键字及其总结中我提到了yield,本篇文章我将会重点说明yield的用法 在介绍yield前有必要先说明下Python中的迭代器(iterator)和生 ...
- Python学习笔记(十二)—Python3中pip包管理工具的安装【转】
本文转载自:https://blog.csdn.net/sinat_14849739/article/details/79101529 版权声明:本文为博主原创文章,未经博主允许不得转载. https ...
- JavaScript学习笔记(二)——字符串
在学习廖雪峰前辈的JavaScript教程中,遇到了一些需要注意的点,因此作为学习笔记列出来,提醒自己注意! 如果大家有需要,欢迎访问前辈的博客https://www.liaoxuefeng.com/ ...
- python 学习笔记(十二) 文件和序列化
python 文件读写和序列化学习.## python文件读写`1 打开并且读取文件` f = open('openfile.txt','r') print(f.read()) f.close() ` ...
- Python学习笔记(三)字符串类型及其操作(2)
1.字符串的表示 字符串是字符的序列表示,可以由一对单引号(‘).双引号(“)或三引号(’‘’)构成.其中,单引号.双引号和三引号都可以表示单行字符串,但是只有三引号可以表示多行字符串 在使用双引号时 ...
- python学习笔记7(使用字符串)
一.字符串格式化,在%左侧放置一个字符串,右侧放置希望格式化的值. >>> format = 'Hello,%s,%s enough for ya?' >>> va ...
- Python学习笔记(二)Python的数据类型和变量
Python的字符串 Python使用''和""将字符串括起来,与ruby类似,特殊之处是Python可以使用r''表示''内部的字符串默认不转义,如: print(r'\\\t\ ...
随机推荐
- c++ try throw catch
c++ try throw catch 这三者联合使用 , try { statement list; } catch( typeA arg ) { statement list; } catch( ...
- 一场刺激的游戏——很文艺的山东省第四届ACM赛总结(菜鸟版)
人生就像一个个节点,节点中或许有成功,失败,满足,遗憾,但是只要它是不可复制的,在日后,便是美好. ...
- CF 17B Hierarchy
Nick's company employed n people. Now Nick needs to build a tree hierarchy of «supervisor-surbodinat ...
- 配置虚拟主机并更改Apache默认解析路径
配置虚拟主机,非常easy 改动以下文件: 加入以下几句话 <VirtualHost *:80> ##ServerAdmin webmaster@dummy-host2.example.c ...
- kiss框架学习
#parse("$!jc.skinpath/exam/cart.ascx") var CategoryId = "$!this.loadCategory_combo(). ...
- 深入认识Tigase XMPP Server(上)
深入认识Tigase XMPP Server(上) 作者:chszs,转载需注明.博客主页:http://blog.csdn.net/chszs 本文的目的是深入认识Tigase XMPP Serve ...
- Facial Landmark Detection
源地址:http://www.learnopencv.com/facial-landmark-detection/#comment-2471797375 OCTOBER 18, 2015 BY SAT ...
- 《转》Linux下的多线程编程
原地址:http://linux.chinaunix.net/doc/program/2001-08-11/642.shtml 1 引言 线程(thread)技术早在60年代就被提出,但真正应用多线程 ...
- Unix文本处理工具之awk
Unix命令行下输入的命令是文本,输出也都是文本.因此,掌握Unix文本处理工具是很重要的一种能力.awk是Unix常用的文本处理工具中的一种,它是以其发明者(Aho,Weinberger和Kerni ...
- Android开发:TextView添加超链接的简便方法
TextView中加入超链接的方式很多,但下面的方式应该的最简便合理的 strings.xml中定义字串 <string name="blog"><a href= ...