最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • Python字符串详解(包含长字符串和原始字符串)

    正文概述    2020-02-27   255

    Python字符串详解(包含长字符串和原始字符串)

    简单地理解,字符串就是“一串字符”,也就是用引号内的任何数据,比如“Hello,Charlie”是一个字符串,“How are you?”也是一个字符串。
    Python要求,字符串必须使用引号括起来,可以使用单引号或者双引号,只要成对即可。字符串中的内容几乎可以包含任何字符,英文字符也行,中文字符也行。

    Python 3.x 对中文字符支持较好,但 Python 2.x 则要求在源程序中增加“#coding:utf-8”才能支持中文字符。

    至于字符串是用单引号括起来,还是用双引号括起来,在 Python 语言中,它们没有任何区别。比如说:

    str1 = 'c.biancheng.net'
    str2 = "C语言中文网"
    print(str1)
    print(str2)

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

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

    str3 = 'I'm a coder'

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

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

    str3 = "I'm a coder"

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

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

    str4 = '"Spring is here,let us jam!", said woodchuck.'

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

    str5 = '"we are scared,Let\'s hide in the shade",says the bird'

    通过使用转义字符,向 Python 解释器表明了此单引号并不是和最前面的单引号进行配对的另一半,从而避免了发生语法错误。 

    此外,Python 不是格式自由的语言,它对程序的换行、缩进都有其规定的语法。Python 允许使用转义字符(\)对换行符进行转义,转义之后的换行符不会“中断”字符串。例如:

    s2 = 'The quick brown fox \
    jumps over the lazy dog'
    print(s2)

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

    同样的,Python 的表达式也不允许随便换行。但如果程序需要对 Python 表达式换行,就需要使用转义字符(\),例如:

    num = 20 + 3 / 4 + \
        2 * 3
    print(num)

    Python长字符串

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

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

    s = '''"Let's go fishing", said Mary.
    "OK, Let's go", said her brother.
    they walked to a lake'''
    print(s)

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

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

    Python原始字符串

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

    比如说,我们要写一个关于 Windows 路径 G:\publish\codes\02\2.4 这样的字符串,如果在 Python 程序中直接这样写肯定是不行的,需要使用 \ 转义字符,对字符串中每个 '\' 进行转义,即写成 G:\\publish\\codes\\02\\2.4 这种形式才行。

    有没有觉得这种写法很啰嗦,有没有更好的解决办法呢?答案是肯定的,借助于原始字符串可以很好地解决这个问题。

    原始字符串以“r”开头,它不会把反斜线当成特殊字符。因此,上面的 Windows 路径可直接写成如下这种形式:

    s1 = r'G:\publish\codes\02\2.4'
    print(s1)

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

    例如如下代码:

    # 原始字符串包含的引号,同样需要转义

    s2 = r'"Let\'s go", said Charlie'
    print(s2)

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

    "Let\'s go", said Charlie

    由于原始字符串中的反斜线会对引号进行转义,因此原始字符串的结尾处不能是反斜线,否则字符串结尾处的引号会被转义,导致字符串不能正确结束。

    如果确实要在原始字符串的结尾处添加反斜线怎么办呢?一种方式是不要使用原始字符串,而是改为使用长字符串写法(三引号字符串);另一种方式就是将反斜线单独写。

    例如如下代码:

    s3 = r'Good Morning' '\\'
    print(s3)

    上面代码开始写了一个原始字符串 r'Good Morning',紧接着程序使用 '\\' 写了一个包含反斜线的字符串,Python 会自动将这两个字符串拼接在一起。运行上面代码会生成如下输出结果:

    Good Morning\

    起源地下载网 » Python字符串详解(包含长字符串和原始字符串)

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元