零基础学习 Python 之字符串
初识字符串
维基百科对于字符串的定义式:字符串是由零个或者多个字符组成的有限串行。你之前学会敲的第一行 print 代码里的 “Hello World”,就是一个字符串。字符串的本质就是一串字符,不管是中文还是英文抑或是空格等特殊字符都可以作为字符串来看待。
在 Python 里,字符串和上一篇文章( 零基础学习 Python 之数字与运算 )里讲到的数字一样,都是一种对象类型,字符串类型用 str 表示,用英文的单引号或双引号括起来。
>>> 'good good study'
'good good study'
>>> "day day up"
'day day up'
字符串与变量
上面我说到字符串和数字都是一种对象类型,那么在上篇文章中我们说数字可以有变量指向它,那么字符串当然也可以。
>>> string = 'Hello World'
>>> string
'Hello World'
>>> print(string)
Hello World
字符串连接
如果我有两个字符串,分别是 'Hello' 和 'World',那么我想得到 'Hello World' 那可咋整?别怕,Python 里提供了特别简单的办法,那就是相加,就是你们知道的那个加减乘除的那个加。
>>> a = 'Hello'
>>> b = 'World'
>>> a + b
'HelloWorld'
>>> a + ' ' + b
'Hello World'
但是相加只是限同种类型的,比如字符串和字符串相加,数字和数字相加,字符串和数字不可以,会报错。
这里再多说一点,字符串其实还可以乘,看下面的例子就知道怎么用了:
>>> string = 'Python'
>>> string * 3
'PythonPythonPython'
就至此为止了,减和除你们就不用想了。
Python 转义字符
什么时候能用到转义字符呢?下面我们看一个例子:
>>> 'what's your name'
File "<stdin>", line 1
'what's your name'
^
SyntaxError: invalid syntax
为什么会报错呢?眼尖的朋友们可能已经看出来了,字符串里有三个单引号,这样解释器就尴尬了,不知道单引号包裹的到底是谁,所以只好报错了。那么有什么解决办法呢?一种是用 双引号包裹整个字符串,另一个就是要用到我们接下来要说的转义字符了。
>>> "what's your name"
"what's your name"
>>> 'what\'s your name'
"what's your name"
下面给大家放一张常用转义字符的图片,感兴趣的朋友们可以去试试,在交互环境中都是可操作的。

原始字符串
原始字符串就是字符串里的每个字母都是自己原汁原味的,我们 \n 就是 \n ,不是换行符。一种方法就是用上述的转译字符,此外在这还有一种方法,就是在字符串前面加个 r:
>>> string = "c:\now"
>>> print(string)
c:
ow
>>> print(r'c:\now')
c:\now
索引 & 切片
我们在本篇文章刚开始的时候字符串由多个字符构成,那么在 Python 中如何操作每个字符,这里就用到索引和切片。
索引的话其实是起的一个比较高端的名字,其实就是编号,就像考完试的名次一样,这个不是 Python 所特有的,其他的编程语言也是这么叫。
>>> string = 'I love Python'
>>> string[0]
'I'
>>> string[5]
'e'
要想得到第一个字符,就用 string[0],以后依次类推,它和我们现实中的排名不同的是,它是从 0 开始的,你还记得么?空格等特殊的也是字符,所以它们也是有编号的,这是正向的表示,在 Python 中,字符串的索引还可以倒着表示,从最后一个开始 分别是 -1,-2,-3.....
然后人总是不满足的,我可以通过索引一个一个的找出字符来,那我想找其中的一个子串怎么办?这时候我们的切片就闪亮登场了。如果我想得到 love 这个子串怎么办?具体的操作请见下面的例子:
>>> string = 'I love Python'
>>> string[2:6]
'love'
因为 l 的索引是 2,e 的索引是5,所以我们可以看出来切片的作用区间是左闭右开的,即[2, 6)。这里还有一点要说的是,字符串的切片对原字符串没有影响,不会改变它。
切片还有很多有意思的操作,可以切的多姿多彩:
>>> string = 'I love Python'
>>> a = string[3:] #得到从3号到最后的字符串
>>> a
'ove Python'
>>> b = string[:8] #得到从第1个字符到第7个字符
>>> b
'I love P'
>>> c = string[:] #得到所有的字符
>>> c
'I love Python'
是不是觉得很有意思呢?切片的写法还有很多,比如如果是倒序的话我该怎么在切片里表示?有兴趣的可以自己去尝试。
字符串格式化输出
Python 中的格式化和我们所熟知的对磁盘中的分区进行初始化是不一样的概念,我们这里说的是对字符串的格式化,所谓字符串的格式化就是我们先定义一个模板,然后在这个模板的一处或者几处地方留出空位来,然后在那些空位上填上符合设定条件的字符串,并显示结果,这些留出来的空位我们称为占位符。下面我用具体的例子来说明。
>>> 'I love %s' #这里的 %s 就是一个占位符
'I love %s'
>>> 'I love %s' %'Python'
'I love Python'
这种方法是原先很常用的一种方法,现在用的更多的是 format() 方法,下面我来展示具体的用法:
>>> 'I love {0} and {1}'.format('C++','Python')
'I love C++ and Python'
在 format 里面 {0},{1} 就成了占位符,然后不要忘了字符串和 format 中间那个很重要的英文句号。
常用的字符串方法
字符串里的方法有很多,可以通过 dir(str)查看,这么多的方法我不会在这一一介绍,如果想使用的话,可以使用 help() 查看,这里仅仅列举几个常用的。
- find():检测字符串是否包含特定字符,如果包含,则返回开始的索引;否则,返回-1。
- index():检测字符串是否包含指定字符,如果包含,则返回开始的索引值,否则,提示错误.
- count(str1,start,end):返回str1在string中指定索引范围内[start, end)出现的次数。
- replace(str1,count):将str1中的str1替换成str2,如果指定count,则不超过count次。
- replace(str1,count):将str1中的str1替换成str2,如果指定count,则不超过count次。
- split(‘分界符’,maxsplit):maxSplit默认值为-1,表示根据定界符分割所有能分割的,返回值为列表,如果 maxsplit有指定值,则仅分割 maxsplit 个子字符串。
- strip():去掉字符串左右两边的空白字符。
>>> string = 'i love python'
>>> string.find('ov') #检查 str 是否在 string 里面
3
>>> string.index('l')
2
>>> string.count('i',0,5)
1
我这里就随便演示了前三个,当然字符串的方法不只这些,这些函数在交互模式里很好实现,如果没事的话可以随时看几个,在交互模式里按照我上面的样子自己动手试试,这样在用到某个方法的时候才能想起来有,否则的话再自己去写很多代码去实现本身就存在的方法,很是浪费时间。
写在最后
更多内容,欢迎关注公众号「Python空间」,期待和你的交流。
零基础学习 Python 之字符串的更多相关文章
- 零基础学习Python数据分析
网上虽然有很多Python学习的教程,但是大多是围绕Python网页开发等展开.数据分析所需要的Python技能和网页开发等差别非常大,本人就是浪费了很多时间来看这些博客.书籍.所以就有了本文,希望能 ...
- 零基础学习 Python 之数字与运算
写在之前 大家好,这里是零基础学习 Python 系列,在这里我将从最基本的 Python 写起,然后再慢慢涉及到高阶以及具体应用方面.我是完全自学的 Python,所以很是明白自学对于一个人的考验, ...
- 零基础学习 Python 之前期准备
写在之前 从今天开始,我将开始新的篇章 -- 零基础学习 Python,在这里我将从最基本的 Python 写起,然后再慢慢涉及到高阶以及具体应用方面.我是完全自学的 Python,所以很是明白自学对 ...
- 《零基础学习Python制作ArcGIS自定义工具》课程简介
Python for ArcGIS Python for ArcGIS是借助Python语言实现ArcGIS自动化行为的综合,它不止是如课程标题所述的“制作ArcGIS自定义工具”,还包括使用Pyth ...
- 2017寒假零基础学习Python系列之 印子
今日为2017年2月6日,据在慕课网上学习廖雪峰Python教程也快一周左右了,完全是零基础入门Python,大一上学期粗浅的接触学习了C语言,早就听说过Python语言的大名,又想把Python的爬 ...
- 零基础学习Python培训,应该选择哪个培训班?
近几年中,Python一直是市场上最受欢迎的编程语言之一.它语法自然,入门简单,同时应用范围又极广,无论是大火的人工智能.大数据还是传统的web开发.自动化运维,Python都能够大展拳脚.根据职友集 ...
- 零基础学习Python web开发、Python爬虫、Python数据分析,从基础到项目实战!
随着大数据和人工智能的发展,目前Python语言的上升趋势比较明显,而且由于Python语言简单易学,所以不少初学者往往也会选择Python作为入门语言. Python语言目前是IT行业内应用最为广泛 ...
- 零基础学习python 你该怎么做
本人文科生,回顾自己近 2 年的Python 自学经历,有一些学习心得和避坑经验分享给大家,让大家在学习 Python 的过程中少走一些弯路!减少遇到不必要的学习困难! 首先,最开始最大的困难应该就是 ...
- 零基础学习python(2)
再讲新知识之前,先将一些之前没提的东西再介绍一下: (1) 命令行模式 在Windows开始菜单选择“命令提示符”(或者是在搜索栏中输入“cmd”),就进入到命令行模式,它的提示符类似C:\>: ...
随机推荐
- jsop解析获得htmldome
package com.open1111.jsoup; import org.apache.http.HttpEntity;import org.apache.http.client.methods. ...
- java设计模式、框架、架构、平台之间的关系
设计模式<框架<架构<平台,从复用角度讲,设计模式是代码级复用.框架是模块级复用.架构是系统级复用.平台是企业应用级复用. 1.设计模式 为什么要先说设计模式?因为设计模式在 ...
- Tarjan在图论中的应用(一)——用Tarjan来实现强连通分量缩点
前言 \(Tarjan\)是一个著名的将强连通分量缩点的算法. 大致思路 它的大致思路就是在图上每个联通块中任意选一个点开始进行\(Tarjan\)操作(依据:强连通分量中的点可以两两到达,因此从任意 ...
- 2018.2.8 php实现qq登陆接口
PHP实现QQ登录的原理和实现过程 2018-02-08 学习与分享 PHP自学中心 第三方登录,就是使用大家比较熟悉的比如QQ.微信.微博等第三方软件登录自己的网站,这可以免去注册账号.快速留住用户 ...
- css img 等比例自动缩放
按父容器宽度自动缩放,并且保持图片原本的长宽比 img{ width: auto; height: auto; max-width: 100%; max-height: 100%; }
- python读取excel中的数据
import numpy as np import matplotlib.pyplot as plt import pandas as pd #df = pd.read_excel('/Users/N ...
- Oracle 分区表的索引、分区索引
对于分区表,可以建立不分区索引.也就是说表分区,但是索引不分区.以下着重介绍分区表的分区索引. 索引与表一样,也可以分区.索引分为两类:locally partition index(局部分区索引). ...
- Oracle下如何收集 Systemstate dump
2: dump (不包括lock element) 10: dump 11: dump + global cache of RAC 256: short stack (函数堆栈) 258: 256+2 ...
- primeng 中 pickList组件的使用
primeng 是为angular 开发的一个强大的组建库,有很多强大的功能,拿来即用.但要真正满足自己的业务需求,就是按自己的需求进行修改,比如默认的样式等等. 进入正题. pickList 组件的 ...
- 稍微深入点理解C++复制控制【转】
通过一个实例稍微深入理解C++复制控制过程,参考资料<C++ primer>,介绍点基本知识: 1.在C++中类通过特殊的成员函数:复制构造函数.赋值操作符和析构函数来控制复制.赋值和撤销 ...