Python 专题三 字符串的基础知识


Posted in Python onMarch 19, 2017

在Python中最重要的数据类型包括字符串、列表、元组和字典等.该篇主要讲述Python的字符串基础知识.

一.字符串基础

字符串指一有序的字符序列集合,用单引号、双引号、三重(单双均可)引号引起来.如:

s1='www.csdn.NET'   s2="www.csdn.Net"   s3='''aaabbb'''

其中字符串又包括:

1.转义字符串

像C语言中定义了一些字母前加"\"来表示常见的那些不能显示的ASCII字符,python也有转义字符.如下:

  \\-反斜杠符号   \'-单引号   \"-双引号  \ a-响铃   \b-退格(Backspace) 

  \n-换行   \r-回车   \f-换页   \v-纵向制表符   \t-横向制表符   \e-转义

  \000-空   \oyy-八进制数yy代表的字符   \xyy-十进制yy代表的字符

2.raw字符串

Python中原始字符串(raw strings),r关闭转义机制.告诉Python后面是连串,"\"不当转义字符处理.例:

#转义字符和raw字符 
s1="aa\nbb" 
print s1 
s2=r"aa\nbb" 
print s2 
 
#输出 
aa 
bb 
aa\nbb 
 
#raw原始字符串处理磁盘路径 
open(r'C:\temp\test.txt','a+') 
open('C:\\temp\\test.txt','a+')

3.unicode字符串

告诉Python是Unicode编码,Unicode(统一码、万国码)是一种在计算机上使用的字符编码.在Unicode之前用的都是ASCII码,Unicode通过使用一个或者多个字节来表示一个字符.Python里面默认所有字面上的字符串都用ASCII编码,可以通过在字符串前面加一个'u'前缀的方式声明Unicode字符串,这个'u'前缀告诉Python后面的字符串要编成Unicode字符串.例:s=u'aa\nbb'

中文处理一直很让人头疼,推荐:Unicode和Python的中文处理

4.格式化字符串

字符串格式化功能使用字符串格式化操作符%(百分号)实现,在%的左侧放置一个字符串(格式化字符串),而右侧放置希望格式化的值,也可是元组和字典.如果需要在字符串里包括百分号,使用%%.如果右侧是元组的话,则其中每一个元素都会被单独格式化,每个值都对应一个转化说明符.例:

"your age %d,sex %s,record %f"%(28,"Male",78.5)

输出:'your age 28,sex Male,record 78.500000'

它有点类似于C语言的printf("%d",x),其中百分号%相当于C语言的逗号.其中字符串格式化转换类型如下:

  d,i  带符号的十进制整数

  o   不带符号的八进制

  u   不带符号的十进制

  x   不带符号的十六进制(小写)

  X   不带符号的十六进制(大写)

  e,E  科学计数法表示的浮点数(小写,大写)

  f,F   十进制浮点数

  c   单字符

  r    字符串(使用repr转换的任意Python)

  s   字符串(使用str转换的任意Python)

  g,G  指数大于4或小于精度值和e相同,否则和f相同

二.字符串操作

字符串的基础操作包括分割,索引,乘法,判断成员资格,求长度等.

1.+连接操作

如:s1='csdn' s2='Eastmount' s3=s1+s2

print s1,s2 => 输出:csdn Eastmount
print s3 => 输出:csdnEastmount

2.*重复操作

如:s1='abc'*5

print s1 => 输出:abcabcabcabcabc

3.索引s[index]

Python的索引格式string_name[index],可以访问字符串里面的字符成员.

4.切片s[i:j]

Python中切片的基本格式是s[i:j:step],其中step表示切片的方向,起点不写从0开始,终点不写切到最后.如:

s='abcdefghijk'
  sub=s[3:8] 
  print sub => 输出defgh_
      3 78 (起点是3 终点8不取)

其中当step=-1时表示反方向切片.如:

s='abcdefghijk'
  sub=s[-1:-4:-1]
  print sub => 输出kji

因为最后一个"-1"表示从反方向切片,s[9]='j' s[-2]='j',正方向第一个'a'索引下标值为0,最后一个'k'索引下标值为-1.故'j'为-2,而sub[-1:-4:-1]表示从k(-1位置)切到h(-4位置,但不取该值).故结果为"kji".

如果想完成字符串逆序,s='www.baidu.com',则可s1=[-1::-1]即可.起点为m(-1),无终点表示切到最后.

5.字段宽度和精度

前面讲述的format()函数中涉及到该知识,如'%6.2f'%12.345678 输出"口12.35"其中6表示字段宽度,2表示精度,故补一个空格,同时采用四舍五入的方法结果输出12.35.

同时,零(0)可表示数字将会用0填充,减号(-)用来实现左对齐数值,空白(" ")意味着正数前加上空格,在正负数对其时非常有用,加号表示不管正数还是负数都标识出符号,对齐时也有用.例:

#字段宽度和精度 
num = 12.345678 
s1 = '%6.2f'%num 
print s1 
#补充0 
s2 = '%08.2f'%num 
print s2 
#减号实现左对齐 
s3 = '%-8.2f'%num 
print s3 
#空白 
print ('% 5d'%10) + '\n' + ('% 5d'%-10) 
#符号 
print ('%+5d'%10) + '\n' + ('%+5d'%-10) 
 
#输出 
 12.35 
00012.35 
12.35 
 10 
 -10 
 +10 
 -10

三.字符串方法

字符串从string模块中"继承"了很多方法,下面讲解一些常用的方法:

find()

在一个较长的字符串中查找子字符串,它返回子串所在位置的最左端索引,如果没有找到则返回-1.其格式为"S.find(sub [,start [,end]]) -> int",其中该方法可接受可选的起始点和结束点参数.而rfind()从右往左方向查找.

title = 'Hello Python,Great Python' 
length = len(title) 
print length 
print title.find('Python') 
print title.find('Python',10,30) 
 
#输出: 
25 
6 
19

join()

其格式为"S.join(iterable) -> string",含义为"Return a string which is the concatenation of the strings in the iterable. The separator between elements is S."即用来在队列中添加元素,但队列中元素必须是字符串.它是split方法的逆方法.

seq = ['1','2','3','4'] 
sep = '+' 
print sep.join(seq) #连接字符串列表 sep表示'+'连接 
 
dirs = '','usr','bin','env' 
print '/'.join(dirs) 
print 'C:'+'\\'.join(dirs) 
 
#输出 
1+2+3+4 
/usr/bin/env 
C:\usr\bin\env

split()

字符串分割函数,格式为"S.split([sep [,maxsplit]]) -> list of strings",将字符串分割成序列,如果不提供分割符,程序将会把所有空格作为分隔符.

#按空格拆分成4个单词,返回list 
s = 'please use the Python!' 
li = s.split() 
print li 
print '1+2+3+4+5'.split('+') 
#输出 
['please', 'use', 'the', 'Python!'] 
['1', '2', '3', '4', '5']

strip()

去掉开头和结尾的空格键(两侧且不包含内部),S.strip([chars])可以去除指定字符.而函数lstrip()去除字符串最开始的所有空格,rstrip()去除字符串最尾部的所有空格.

replace()

该方法返回某字符串的所有匹配项均被替换后得到字符串,如文字处理程序中"查找并替换"功能.

translate()

该方法和replace一样,可以替换字符串中某部分,但与前者的区别是translate只处理单个字符,它的优势在于可以同时替换多个,有时候效率比replace高.

如:s='eastmount' s1=s.replace('e','E') => 替换后'Eastmount'

字符串判断方法

  isalnum()判断是否都是有效字符(字母+数字),如判断密码帐号,输出Ture\False.

  isalpha()判断是否是字母

  isdigit()判断是否是数字

  islower()判断是否全是小写

  isupper()判断是否全是大写

  isspace()判断是否是空格(' ')

lower()

该方法返回字符串的小写字母版,在判断用户名不区分大小写时使用.upper()转换为大写,title()函数将字符串转换为标题——所有单词的首字母大写,而其他字母小写,但是它使用的单词划分方法可能会得到不自然的结果.

s = 'this is a good idea' 
s1 = s.upper() 
print s1 
s2 = s.title() 
print s2 
 
#输出 
THIS IS A GOOD IDEA 
This Is A Good Idea

PS:我主要是通过《Python基础教程》和"51CTO学院 智普教育的python视频"学习.所以文中引用了很多视频中的知识、书籍知识和自己的知识,感谢那些作者和老师,希望文章对大家有所帮助,才开始学习python知识,如果文章中有错误或不足之处,还请海涵,也希望大家提出意见与君共勉.勿喷~

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Python 相关文章推荐
python使用beautifulsoup从爱奇艺网抓取视频播放
Jan 23 Python
Python深入学习之特殊方法与多范式
Aug 31 Python
在Python的web框架中中编写日志列表的教程
Apr 30 Python
利用PyInstaller将python程序.py转为.exe的方法详解
May 03 Python
python学生信息管理系统
Mar 13 Python
python之DataFrame实现excel合并单元格
Feb 22 Python
详解flask入门模板引擎
Jul 18 Python
python创建文件时去掉非法字符的方法
Oct 31 Python
scrapy-redis的安装部署步骤讲解
Feb 27 Python
python字符串格式化方式解析
Oct 19 Python
python线程里哪种模块比较适合
Aug 02 Python
使用Python的开发框架Brownie部署以太坊智能合约
May 28 Python
关于python的bottle框架跨域请求报错问题的处理方法
Mar 19 #Python
Python 专题二 条件语句和循环语句的基础知识
Mar 19 #Python
解决Python requests 报错方法集锦
Mar 19 #Python
python字符串str和字节数组相互转化方法
Mar 18 #Python
Python执行时间的计算方法小结
Mar 17 #Python
python django事务transaction源码分析详解
Mar 17 #Python
Python自动生产表情包
Mar 17 #Python
You might like
Window下PHP三种运行方式图文详解
2013/06/11 PHP
用 Composer构建自己的 PHP 框架之设计 MVC
2014/10/30 PHP
php封装的单文件(图片)上传类完整实例
2016/10/18 PHP
Yii2中简单的场景使用介绍
2017/06/02 PHP
深入理解Yii2.0乐观锁与悲观锁的原理与使用
2017/07/26 PHP
PHP 获取 ping 时间的实现方法
2017/09/29 PHP
获取Javscript执行函数名称的方法
2006/12/22 Javascript
js右键菜单效果代码
2007/07/21 Javascript
JS控制弹出新页面窗口位置和大小的方法
2015/03/02 Javascript
JavaScript设计模式经典之工厂模式
2016/02/24 Javascript
浅谈jquery高级方法描述与应用
2016/10/04 Javascript
一个Js文件函数中调用另一个Js文件函数的方法演示
2017/08/14 Javascript
浅谈vue+webpack项目调试方法步骤
2017/09/11 Javascript
解决html-jquery/js引用外部图片时遇到看不了或出现403的问题
2017/09/22 jQuery
微信小程序 如何获取网络状态
2019/07/26 Javascript
vue.config.js常用配置详解
2019/11/14 Javascript
python list 合并连接字符串的方法
2013/03/09 Python
python自动安装pip
2014/04/24 Python
仅用50行代码实现一个Python编写的计算器的教程
2015/04/17 Python
python实现word 2007文档转换为pdf文件
2018/03/15 Python
Python openpyxl 遍历所有sheet 查找特定字符串的方法
2018/12/10 Python
sqlalchemy实现时间列自动更新教程
2020/09/02 Python
CSS3中HSL和HSLA的简单使用示例
2015/07/14 HTML / CSS
NIHAOMARKET官方海外旗舰店:意大利你好华人超市
2018/01/27 全球购物
狗狗玩具、零食和咀嚼物的月度送货服务:Super Chewer
2018/08/22 全球购物
params有什么用
2016/03/01 面试题
校园之星获奖感言
2014/01/29 职场文书
致标枪运动员广播稿
2014/02/06 职场文书
介绍信格式
2015/01/30 职场文书
戒赌保证书
2015/05/11 职场文书
2015年学校政教处工作总结
2015/05/26 职场文书
技术转让协议书
2016/03/19 职场文书
2016年清明节网上祭英烈活动总结
2016/04/01 职场文书
优秀大学生申请书
2019/06/24 职场文书
pytorch 中autograd.grad()函数的用法说明
2021/05/12 Python
Python实现为PDF去除水印的示例代码
2022/04/03 Python