"""
在C语言入门的时候字符串没有好好学习,导致后期语言根本没有入门,
更导致之后大量的codeing时间浪费,效率低下。
因此,借助这次Python入门,好好地将字符串这一节学一学,弥补一下。
"""

1、字符串基本操作

前边已经说过,所有标准序列操作都适用于字符串,但字符串是不可变的,因此,所有元素的赋值和切片赋值操作都是非法的

2、设置字符串的格式(完整版)

字符串设置方法很多,在这里主要是调用方法format,并提供要设置其格式的值。

3、字符串方法  center      find      join    lower     replace    split      strip       translate        is开头的方法

#center  通过在两边添加填充字符(默认为空格)让字符串居中
>>> "The middle by Jimmy Eat World".center(39)
' The middle by Jimmy Eat World '
>>> "The middle by Jimmy Eat World".center(39,"*")
'*****The middle by Jimmy Eat World*****' #find 在字符串中寻找子串 ,如果找到,返回子串的第一字符的索引,否则返回-1
>>> sentence="jiameng is a very cool boy"#空格也是字符串的一部分
>>> sentence.find("is")
8
>>> sentence.find("world")
-1
>>> sentence.find("cool")
18
>>> sentence.find("cool",0,6)#指定了搜索的起点和终点
-1 #join 非常重要的字符串方法,其作用与split相反,用于合并序列的元素。
#所合并序列的元素都必须是字符串
>>> list1=[1,2,3,4,5]
>>> str="+++"
>>> list2=['','','','','']
>>> str.join(list1)
Traceback (most recent call last):
File "<pyshell#177>", line 1, in <module>
str.join(list1)
TypeError: sequence item 0: expected str instance, int found
>>> str.join(list2)
'1+++2+++3+++4+++5' #lower 返回字符串的小写版本
#可用于检查列表中是否存在某个元素,但又不想区分大小写的时候比较有用
>>> str="The World is Very Beautiful ! @17801231733.COM"
>>> str.lower()
'the world is very beautiful ! @17801231733.com' #replace 将指定子串都替换为另一个字符串,并返回替换后的结果。可用于批量查找替换
'the world is very beautiful ! @17801231733.com'
>>> str="jiameng is so cool ! I like jiameng!"
>>> str.replace("jiameng","beiyou")
'beiyou is so cool ! I like beiyou!' #split 是一个非常重要的字符串方法,作用与join相反,用于将字符串拆分为序列
>>> '1+2+3+4+5'.split("+")
['', '', '', '', '']
>>> "C:home/file/homeworks/math".split("/")
['C:home', 'file', 'homeworks', 'math']
>>> "Jiameng is very beautiful !".split()#如果没有指定分隔符,将会在单个或者连续的空白字符(空格、制表符、换行符号等)处进行拆分
['Jiameng', 'is', 'very', 'beautiful', '!'] #strip 将字符串开头和结尾的空白(不包含中间的空白)删除,并返回删除后的结果
#这个方法也很有用,就像lower一样,如果用户不小心多输入了空格,你仍然能够找到对应的元素
>>> str=" good! good! very good! "
>>> str.strip()
'good! good! very good!'
>>> str="**** googd! good ** very good! ***"
>>> str.strip("*")
' googd! good ** very good! ' #translate 与replace一样替换字符串中的指定部分,但是不同的是,replace只能替换单字符,但是translate可以同时替换多个字符,因此效率比replace高。
#但是使用translate 之前,必须创建一个转换表。这个转换表指出了不同Unicode码点之间的转换关系。
要创建转换表,可对字符串str调用方法maketrans ,这个方法接收两个参数:两个长度相同的字符串,他们指定要将第一个字符串中的字符都替换为第二个字符串中相应位置的字符。
>>> table=str.maketrans("ac","bd"," ")#还可以添加第三个参数,指定要将哪些字母删除
>>> str="aaa ccc OK!"
>>> table
{97: 98, 99: 100, 32: None}#table 里是Unicode码点之间的映射
>>> str.translate(table)
'bbbdddOK!'

本章新介绍的函数:

函数 描述
string.capwords(s[ ,sep) 使用spilt根据sep拆分s,将每一项的首字母大写,再以空格为分隔符将它们合并起来
ascii(obj) 创建指定对象的ASCII表示

未完待续......

Python学习2——使用字符串(完整版)的更多相关文章

  1. Python学习-第二天-字符串和常用数据结构

    Python学习-第二天-字符串和常用数据结构 字符串的基本操作 def main(): str1 = 'hello, world!' # 通过len函数计算字符串的长度 print(len(str1 ...

  2. 国内某Python大神自创完整版,系统性学习Python

    很多小伙伴纠结于这个一百天的时间,我觉得完全没有必要,也违背了我最初放这个大纲上来的初衷,我是觉得这个学习大纲还不错,自学按照这个来也能相对系统的学习知识,而不是零散细碎的知识最后无法整合,每个人的基 ...

  3. Python分布式爬虫打造搜索引擎完整版-基于Scrapy、Redis、elasticsearch和django打造一个完整的搜索引擎网站

    Python分布式爬虫打造搜索引擎 基于Scrapy.Redis.elasticsearch和django打造一个完整的搜索引擎网站 https://github.com/mtianyan/Artic ...

  4. Python学习杂记_3_字符串操作的常用方法

    字符串操作 字符串是可以通过下标来进行取值的,但是由于字符串是不可变变量,不能通过下标来修改它的值(形式如 字符串[下标]),下标从0开始,最大下标值是字符串长度减1,即len(string)-1 P ...

  5. python学习笔记(字符串操作、字典操作、三级菜单实例)

    字符串操作 name = "alex" print(name.capitalize()) #首字母大写 name = "my name is alex" pri ...

  6. Python实现简单的Web完整版(一)

    在拖了一周之后,今天终于在一个小时之内将一个迷你的Web写出来了,最近改其它项目的bug头好大,但是好喜欢这样的状态. 黑色的12月,所有的任务都聚集在了12月,然后期末考试也顾不上好好复习了,但是但 ...

  7. Python学习笔记3—字符串

    原始字符串 使用\转义或者r,这种方法在网站设置网站目录结构的时候非常管用. >>> dos="c:\news" >>> print dos c ...

  8. 【Python学习笔记】字符串操作

    字符串的表示 python中的字符串是一个常量,可以使用单引号'',双引号""或三引号""" """来创建一个字符串常量 ...

  9. python学习之初识字符串

    刚接触一门语言时,字符串是很容易遇到的, 例如要从读入或者写出, 字符串与数字间的转换等. 由于字符串, 列表和元组等类型具有一定的共性(由对象组成的序列,如字符串是字符序列), 在Python中统称 ...

随机推荐

  1. iTerm2 半透明颜色主题与字体配置

    下载iTerm2https://www.iterm2.com/ 安装. 下载这个主题https://raw.githubusercontent.com/mbadolato/iTerm2-Color-S ...

  2. Android studio 导入项目报 Error:Cause: peer not authenticated 异常

    修改build.gradle文件(project级的) 一.dependencies { classpath 'com.android.tools.build:gradle:1.0.1'}将class ...

  3. 从源码看Java集合之ArrayList

    Java集合之ArrayList - 吃透增删查改 从源码看初始化以及增删查改,学习ArrayList. 先来看下ArrayList定义的几个属性: private static final int ...

  4. StringUtils的isNotEmpty,isNotBlank方法的区别

    这两个用着用着老是混淆或者忘记,今天写一下做个笔记,对比下两个判断方法的区别 isNotEmpty: 判断某字符串是否非空,等于!isEmpty(String str),这里不能排除空格字符 Stri ...

  5. python将py文件转换为pyc

    python -m py_compile lib/ylpy.py python -m py_compile lib/ylpy.py python 一个.py文件如何调用另一个.py文件中的类和函数 A ...

  6. 如何规避同时使用v-if与v-for?

    先将结果过滤,再用v-if循环 遇到问题:使用Vue -computed传参数不成功, 后来将参数放在compute里面方法名里再构造参数进行传递

  7. Objective-C中的一些方法命名“潜规则”

    在基于Apple Xcode的Objective-C中,有一些方法命名潜规则,比如就property而言,假定你定义了如下property: @interface MyObject @property ...

  8. MyISAM与InnoDB之间的区别

    区别: 1. InnoDB支持事务,MyISAM不支持,对于InnoDB每一条SQL语言都默认封装成事务,自动提交,这样会影响速度,所以最好把多条SQL语言放在begin和commit之间,组成一个事 ...

  9. spring boot中Elasticsearch默认版本问题

    这是今天遇上的一个问题. 添加的依赖是7.2.0版本的Elasticsearch,但是其中有两项是6.4.3的,导致我从其他地方移植过来的代码报错. 据大神说,这是因为spring boot中默认的E ...

  10. 【DSP开发】DSP能用VS2010生成的链接库文件吗?

    [DSP开发]DSP能用VS2010生成的链接库文件吗? 声明:引用请注明出处http://blog.csdn.net/lg1259156776/ 说明:可能这个问题让行家看上去就会莞尔一笑,但是很多 ...