教程集 www.jiaochengji.com
教程集 >  Python编程  >  Python入门  >  正文 Python字符串及基本操作(入门必看)

Python字符串及基本操作(入门必看)

发布时间:2021-12-20   编辑:jiaochengji.com
教程集为您提供Python字符串及基本操作(入门必看)等资源,欢迎您收藏本站,我们将为您提供最新的Python字符串及基本操作(入门必看)资源

字符串的意思就是“一串字符”,比如“Hello,Charlie”是一个字符串,“How are you?”也是一个字符串。

Python 要求字符串必须使用引号括起来,使用单引号也行,使用双引号也行,只要两边的引号能配对即可。

Python字符串和转义字符

字符串的内容几乎可以包含任何字符,英文字符也行,中文字符也行。

<pre class="brush:html;toolbar:false">Python 3.x 对中文字符支持较好,但 Python 2.x 则要求在源程序中增加“#coding:utf-8”才能支持中文字符。</pre>

字符串既可用单引号括起来,也可用双引号括起来,它们没有任何区别。例如如下程序:

<pre class="brush:html;toolbar:false">str1 = 'Charlie' str2 = "php中文网" print(str1) print(str2)</pre>

但需要说明的是,Python 有时候没有我们期望的那么聪明。如果字符串内容本身包含了单引号或双引号,此时就需要进行特殊处理:

使用不同的引号将字符串括起来。

对引号进行转义。

先看第一种处理方式。假如字符串内容中包含了单引号,则可以使用双引号将字符串括起来。例如:

<pre class="brush:html;toolbar:false;">str3 = 'I'm a coder'</pre>

由于上面字符串中包含了单引号,此时 Python 会将字符串中的单引号与第一个单引号配对,这样就会把 'I' 当成字符串,而后面的 m a coder' 就变成了多余的内容,从而导致语法错误。

为了避免这种问题,可以将上面代码改为如下形式:

<pre class="brush:html;toolbar:false">str3 = "I'm a coder"</pre>

上面代码使用双引号将字符串括起来,此时 Python 就会把字符串中的单引号当成字符串内容,而不是和字符串开始的引号配对。

假如字符串内容本身包含双引号,则可使用单引号将字有串括起来,例如如下代码:

<pre class="brush:html;toolbar:false">str4 = '"Spring is here,let us jam!", said woodchuck.'</pre>

接下来看第二种处理方式:使用转义字符。Python 允许使用反斜线(\)将字符串中的特殊字符进行转义。假如字符串既包含单引号,又包含双引号,此时必须使用转义字符,例如如下代码:

<pre class="brush:html;toolbar:false">str5 = '"we are scared,Let\'s hide in the shade",says the bird'</pre>

拼接字符串

如果直接将两个字符串紧挨着写在一起,Python 就会自动拼接它们,例如如下代码:

<pre class="brush:html;toolbar:false">s1 = "Hello,"'Charlie' print(s1)</pre>

上面代码将会输出:

<pre class="brush:html;toolbar:false">Hello,Charlie</pre>

上面这种写法只是书写字符串的一种特殊方法,并不能真正用于拼接字符串。Python 使用加号( )作为字符串的拼接运算符,例如如下代码:

<pre class="brush:html;toolbar:false">s2 = "Python " s3 = "iS Funny" #使用 拼接字符串 s4 = s2   s3 print(s4)</pre>

repr 和字符串

有时候,我们需要将字符串与数值进行拼接,而 Python 不允许直接拼接数值和字符串,程序必须先将数值转换成字符串。

为了将数值转换成字符串,可以使用 str() 或 repr() 函数,例如如下代码:

<pre class="brush:html;toolbar:false">s1 = "这是数字: " p = 99.8 #字符串直接拼接数值,程序报错 print(s1   p) #使用str()将数值转换成字符串 print(s1   str(p)) #使用repr()将数值转换成字符串 print(s1   repr(p))</pre>

上面程序中直接拼接字符串和数值,程序会报错。

str() 和 repr() 函数都可以将数值转换成字符串,其中 str 本身是 Python 内置的类型(和 int、float 一样),而 repr() 则只是一个函数。此外,repr 还有一个功能,它会以 Python 表达式的形式来表示值。对比如下代码:

<pre class="brush:html;toolbar:false">st = "I will play my fife" print (st) print(repr(st))</pre>

上面代码中 st 本身就是一个字符串,但程序依然使用了 repr() 对字符串进行转换。运行上面程序,可以看到如下输出结果:

<pre class="brush:html;toolbar:false">I will play my fife 'I will play my fife'</pre>

通过上面的输出结果可以看出,如果直接使用 print() 函数输出字符串,将只能看到字符串的内容,没有引号;但如果先使用 repr() 函数对字符串进行处理,然后再使用 print() 执行输出,将可以看到带引号的字符串,这就是字符串的 Python 的表达式形式。

在交互式解释器中输入一个主量或表达式时,Python 会自动使用 repr() 函数处理该变量或表达式。

使用 input 和 raw_input 获取用户输入

input() 函数用于向用户生成一条提示,然后获取用户输入的内容。由于 input() 函数总会将用户输入的内容放入字符串中,因此用户可以输入任何内容,input() 函数总是返回一个字符串。

例如如下程序:

<pre class="brush:html;toolbar:false">msg = input("请输入你的值:") print (type(msg)) print(msg)</pre>

第一次运行该程序,我们输入一个整数,运行过程如下:

<pre class="brush:html;toolbar:false">请输入你的值:2 <class 'str'> 2</pre>

第二次运行该程序,我们输入一个浮点数,运行过程如下:

<pre class="brush:html;toolbar:false">请输入你的值: 1.2 <class 'str'> 1.2</pre>

第三次运行该程序,我们输入一个字符串,运行过程如下:

<pre class="brush:html;toolbar:false">请输入你的值:Hello <class 'str'> Hello</pre>

<span style="color: rgb(68, 68, 68); font-family: "Helvetica Neue", 微软雅黑, "Microsoft Yahei", Helvetica, Arial, sans-serif; white-space: normal; background-color: rgb(255, 255, 255);">从上面的运行过程可以看出,无论输入哪种内容,始终可以看到 input() 函数返回字符串,程序总会将用户输入的内容转换成字符串。</span>

Python长字符串

前面介绍 Python 多行注释时提到使用三个引号(单引号、双引号都行)来包含多行注释内容,其实这是长字符串写法,只是由于在长字符串中可以放置任何内容,包括放置单引号、双引号都可以,如果所定义的长字符串没有赋值给任何变量,那么这个字符串就相当于被解释器忽略了,也就相当于注释掉了。

实际上,使用三个引号括起来的长字符串完全可以赋值给变量,例如如下程序:

<pre class="brush:html;toolbar:false">s = '''"Let's go fishing", said Mary. "OK, Let's go", said her brother. they walked to a lake''' print(s)</pre>

上面程序使用三个引号定义了长字符串,该长字符串中既可包含单引号,也可包含双引号。

当程序中有大段文本内容要定义成字符串时,优先推荐使用长字符串形式,因为这种形式非常强大,可以让字符串中包含任何内容,既可包含单引号,也可包含双引号。

此外,Python 还允许使用转义字符(\)对换行符进行转义,转义之后的换行符不会“中断”字符串。例如如下代码:

<pre class="brush:html;toolbar:false">s2 = 'The quick brown fox \ jumps over the lazy dog' print(s2)</pre>

<span style="color: rgb(68, 68, 68); font-family: "Helvetica Neue", 微软雅黑, "Microsoft Yahei", Helvetica, Arial, sans-serif; white-space: normal; background-color: rgb(255, 255, 255);"></span>

上面 s2 字符串的内容较长,故程序使用了转义字符(\)对内容进行了转义,这样就可以把一个字符串写成两行。

需要说明的是,Python 不是格式自由的语言,因此 Python 程序的换行、缩进都有其规定的语法。所以,Python 的表达式不允许随便换行。如果程序需要对 Python 表达式换行,同样需要使用转义字符(\)进行转义,代码如下:

<pre class="brush:html;toolbar:false">num = 20   3 / 4   \     2 * 3 print(num)</pre>

上面程序中有一个表达式,为了对该表达式换行,程序需要使用转义字符。

Python原始字符串

由于字符串中的反斜线都有特殊的作用,因此当字符串中包含反斜线时,就需要对其进行转义。

比如写一条 Windows 的路径 G:\publish\codes\02\2.4,如果在 Python 程序中直接这样写肯定是不行的,需要写成 G:\\publish\\codes\\02\\2.4,这很烦人,此时可借助于原始字符串来解决这个问题。

原始字符串以“r”开头,原始字符串不会把反斜线当成特殊字符。因此,上面的 Windows 路径可直接写成 r'G:\publish\codes\02\2.4'。

关于原始字符串的用法看如下程序:

<pre class="brush:html;toolbar:false">s1 = r'G:\publish\codes\02\2.4' print(s1)</pre>

如果原始字符串中包含引号,程序同样需要对引号进行转义(否则 Python 同样无法对字符串的引号精确配对),但此时用于转义的反斜线会变成字符串的一部分。

例如如下代码:

<pre class="brush:html;toolbar:false"># 原始字符串包含的引号,同样需要转义 s2 = r'"Let\'s go", said Charlie' print(s2)</pre>

上面代码会生成如下输出结果:

<pre class="brush:html;toolbar:false">"Let\'s go", said Charlie</pre>

<span style="color: rgb(68, 68, 68); font-family: "Helvetica Neue", 微软雅黑, "Microsoft Yahei", Helvetica, Arial, sans-serif; white-space: normal; background-color: rgb(255, 255, 255);">
</span>

您可能感兴趣的文章:
一篇文章搞定Python二级考试
Python字符串及基本操作(入门必看)
Python基本语法与变量的相关介绍
最全面的12种Python学习方式
python自学用什么书
python u是什么意思
《Python2爬虫入门教程指南》(系列教程)
零基础Python学习路线图,Python初学者必须要了解,让你少走弯路
Python基础之基本数据类型
Python re正则表达式模块及其用法

[关闭]
~ ~