• 周蓬安.blog的博客—强国博客—人民网 2019-05-10
  • 紫光阁中共中央国家机关工作委员会 2019-05-10
  • 感触名家笔下的端午文化吃香粽原来可以这样文艺 2019-05-09
  • 追梦夺冠游行嘲讽詹皇 百万人面前穿订制T恤羞辱他 2019-04-27
  • 《瘟疫传说》:黑死病恐怖 姐弟在绝望中求生 2019-04-10
  • 陕西国防工业职业技术学院百名大学生志愿者敬老院慰问孤寡老人陕西国防工业职业技术学院百名大学生志愿者敬老院慰问-陕西教育新闻 2019-04-08
  • 西藏拉萨:新家园 新生活 2019-04-08
  • 尊重和保障宗教信仰自由的中国实践 2019-04-06
  • 一敬泯恩仇 俄罗斯队主帅这个动作太暖了 2019-03-20
  • 四大名著剧组首次同台忆往事 经典影视剧如何铸就? 2018-12-07
  • “天眼”凝望 探秘宇宙 2018-12-07
  • 0

    1.15Python下长字符串和原始字符串

    Posted by 撒得一地 on 2015年11月28日 in python教程
    国外稳定加速器推荐    Express | Vypr

    之前介绍了Python字符串,不过在长达多行的字符串或者包含多种特殊字符的字符串时,这时候就可以考虑长字符串和原始字符串这两种表示类型了。

    长字符串

    如果需要写一个非常非常长的字符串,它需要跨多行,那么,就可以使用三个引号代替普通引号。如:

    >>> ''' I am a good boy.
    ... I like play basketball.
    ... but I don't like swimming'''
    " I am a good boy.\nI like play basketball.\nbut I don't like swimming"
    

    也可以使用三个双引号,如:

    >>> """Like This"""
    'Like This'
    

    注意,因为这种与众不同的引用方式,所以,你可以在字符串之中使用单引号和双引号,而不需要使用反斜线进行转义。普通字符串也可以跨行,如果一行之中最后一个字符是反斜线,那么,换行符本身就被“转义”了,也就是被忽略了。
    例如:

    >>> print("Hello \
    ... world!")
    Hello world!
    

    这个用法同样也适用于表达式和语句:

    >>> 1+2+\
    ... 3
    6
    

    原始字符串

    原始字符串对于反斜线会把它当做普通字符那样对待,不会去解析它。在普通字符串中,反斜线有特殊的作用:它会转义,可以在字符串中加入通常情况下不能直接加入的内容。例如,换行符可以写成\n,并可以放在字符串中,如下所示:

    >>> print('Hello,\nWorld!')
    Hello,
    World!
    

    不过有时候上面并不是想要的结果。如果希望在字符串中包含反斜线再加上字符n那么要怎么办?例如,可能需要像DOS路径“C:\nowhere”这样的字符串:

    >>> path = 'C:\nowher'
    >>> path
    'C:\nowher'
    

    这看起来好像是正确的,但是,在打印字符串时就会发现问题:

    >>> print(path)
    C:
    owher
    

    这并不是期望的结果,我们可以使用反斜线对其本身进行转义:

    >>> print('C:\\nowhere')
    C:\nowhere
    

    对于比较短的字符串可以这样做,但是对于长字符串,那么可能就需要很多反斜线:

    >>> path = 'C:\\program Files\\window\\software\\Python'
    >>> print(path)
    C:\program Files\window\software\Python
    

    在这样的情况下,原始字符串就派上用场了。原始字符串不会把反斜线当作特殊字符。在原始字符串中输入的每个字符都会原样输出:

    >>> print(r'C:\nowhere')
    C:\nowhere
    >>> print(r'C:/program Files/window/software/Python')
    C:/program Files/window/software/Python
    

    原始字符串以r开头?;旧峡梢栽谠甲址蟹湃肴魏巫址?,当然,我们也要像平常一样对引号进行转义,但是,最后输出的字符串包含了转义所用的反斜线:

    >>> print(r'Let\'s go!')
    Let\'s go!
    

    不能在原始字符串结尾输入反斜线?;痪浠八?,原始字符串最后的一个字符不能是反斜线,除非你对反斜线进行转义(用于转义的反斜线也会成为字符串的一部分)。如果最后一个字符(位于结束引号前的那个)是反斜线,Python就不清楚是否应该结束字符串:

    >>> print(r'This is illegal\')
      File "<stdin>", line 1
        print(r'This is illegal\')
                                
    SyntaxError: EOL while scanning string literal
    

    但是如果希望原始字符以一个反斜线作为结尾的话,本质上的解决办法就是把反斜线单独作为一个字符串来处理。以下是一种简单的做法:

    >>> print(r'C:\program\python' '\\')
    C:\program\python\
    

    注意,你可以在原始字符串中同时使用单双引号,即使三引号字符串也可以充当原始字符串。

    标签:,

    上一篇:

    下一篇:

    相关推荐

    发表评论

    电子邮件地址不会被公开。 必填项已用*标注

    7 + 6 = ?

    网站地图|广东快乐10分开奖直播

    Copyright © 2015-2019 广东快乐10分开奖直播 All rights reserved.
    闽ICP备15015576号-1,版权所有?psz.

  • 周蓬安.blog的博客—强国博客—人民网 2019-05-10
  • 紫光阁中共中央国家机关工作委员会 2019-05-10
  • 感触名家笔下的端午文化吃香粽原来可以这样文艺 2019-05-09
  • 追梦夺冠游行嘲讽詹皇 百万人面前穿订制T恤羞辱他 2019-04-27
  • 《瘟疫传说》:黑死病恐怖 姐弟在绝望中求生 2019-04-10
  • 陕西国防工业职业技术学院百名大学生志愿者敬老院慰问孤寡老人陕西国防工业职业技术学院百名大学生志愿者敬老院慰问-陕西教育新闻 2019-04-08
  • 西藏拉萨:新家园 新生活 2019-04-08
  • 尊重和保障宗教信仰自由的中国实践 2019-04-06
  • 一敬泯恩仇 俄罗斯队主帅这个动作太暖了 2019-03-20
  • 四大名著剧组首次同台忆往事 经典影视剧如何铸就? 2018-12-07
  • “天眼”凝望 探秘宇宙 2018-12-07
  • 北京赛车计划 极速飞艇彩票官网 邢台体育彩票中心 体育彩票七星彩 3d241期彩经网一注 14场足彩胜负彩全中有多少钱 极速时时彩计划网址 福建时时彩官方开奖号码 博竟彩票重庆时时彩 新时时彩几点开售 3d开机号和试机号 8月l号山东群英会开奖 腾讯分分彩前3杀号技巧 上海时时乐 彩票走势图 竞彩篮球大小分攻略