字符串(String)

字符串(String),第1张

概述1 . 单引号字符串以及对引号转义    1.与数一样,字符串也是值:    >>> "Hello, world!"   ‘Hello, world!‘  2.python在打印字符串时,用单引号将其括起和用双引号括起没有任何区别。既然如此,为何同时支持单引号和双引号呢?因为在有些情况下,这可能会有用。   在上述代码中,第一个字符串包含一个单引号(就这里而言,可能称之为撇号更合适),因此不能用单

1 . 单引号字符串以及对引号转义 

  1.与数一样,字符串也是值:

   >>> "Hello,world!"

  ‘Hello,world!‘
 2.python在打印字符串时,用单引号将其括起和用双引号括起没有任何区别。既然如此,为何同时支持单引号和双引号呢?因为在有些情况下,这可能会有用。  
在上述代码中,第一个字符串包含一个单引号(就这里而言,可能称之为撇号更合适),因此不能用单引号将整个字符串括起,否则解释器将报错(做出这样的反应是正确的)。

  >>> ‘"Hello,world!" she saID‘  ‘"Hello,world!" she saID‘
    >>> ‘Let‘s go!‘
  
SyntaxError: invalID Syntax
   在这里,字符串为,因此Python不知道如何处理后面的(更准确地说是当前行余下的内容)。
 
 第二个字符串包含双引号,因此必须使用单引号将整个字符串括起,原因和前面一样。实际上,并非必须这样做(这样做只是出于方便考虑)。可使用反斜杠()对引号进行转义,如下所示:‘Let‘s\
 
   >>> ‘Let\‘s go!‘   "Let‘s go!" 

     这样Python将明白中间的引号是字符串的一部分,而不是字符串结束的标志。虽然如此,Python打印这个字符串时,还是使用了双引号将其括起。与你预期的一样,对于双引号可采用同样的处理手法。

 
长字符串   >>> "\"Hello,world!\" she saID"   ‘"Hello,world!" she saID‘

  像这样对引号进行转义很有用,且在有些情况下必须这样做。例如,在字符串同时包含单引号和双引号(如‘Let\‘s say "Hello,world!"‘)时,如果不使用反斜杠进行转义,该如何办呢?
  长字符串和原始字符串(‘‘‘tips‘‘‘)
  
‘Let\‘s say "Hello,world!"‘
 

   要表示很长的字符串(跨越多行的字符串),可使用三引号(而不是普通引号)。

 
  print(‘‘‘This is a very long string. It continues here.   And it‘s not over yet. "Hello,world!"   Still here.‘‘‘)
  

  还可使用三个双引号,如"""like this"""。请注意,这让解释器能够识别表示字符串开始和结束位置的引号,因此字符串本身可包含单引号和双引号,无需使用反斜杠进行转义。

提示 常规字符串也可横跨多行。只要在行尾加上反斜杠,反斜杠和换行符将被转义,即被忽略。例如,如果编写如下代码:

print("Hello,\ world!")

它将打印Hello,world!。这种处理手法也适用于表达式和语句。

>>> 1 + 2 + 4 + 5 12
  

  原始字符串

 

  原始字符串不以特殊方式处理反斜杠,因此在有些情况下很有用。在常规字符串中,反斜杠扮演着特殊角色:它对字符进行转义,让你能够在字符串中包含原本无法包含的字符。例如,你已 经看到可使用\n表示换行符,从而像下面这样在字符串中包含换行符:

 
  >>> print(‘Hello,\nworld!‘)   Hello,  world! 

  这通常挺好,但在有些情况下,并非你想要的结果。如果你要在字符串中包含\n呢?例如,你可能要在字符串中包含DOS路径C:\Nowhere。

可对反斜杠本身进行转义 
 
 >>> print(‘C:\Nowhere‘)  C:\Nowhere 
这很好,但对于很长的路径,将需要使用大量的反斜杠: 
 
  path = ‘C:\Program files\fnord\foo\bar\baz\frozz\bozz‘ 

  在这样的情况下,原始字符串可派上用场,因为它们根本不会对反斜杠做特殊处理,而是让字符串包含的每个字符都保持原样。

 
 >>> print(r‘C:\Nowhere‘)  C:\Nowhere  >>> print(r‘C:\Program files\fnord\foo\bar\baz\frozz\bozz‘)  C:\Program files\fnord\foo\bar\baz\frozz\bozz 

  如你所见,原始字符串用前缀r表示。看起来可在原始字符串中包含任何字符,这大致是正确的。一个例外是,引号需要像通常那样进行转义,但这意味着用于执行转义的反斜杠也将包含在最终的字符串中。

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

  另外,原始字符串不能以单个反斜杠结尾。换而言之,原始字符串的最后一个字符不能是反斜杠,除非你对其进行转义(但进行转义时,用于转义的反斜杠也将是字符串的一部分)。根据前一个示例,这一点应该是显而易见的。如果最后一个字符(位于结束引号前面的那个字符)为反斜杠,且未对其进行转义,Python将无法判断字符串是否到此结束。

 
 >>> print(r"This is illegal\")  SyntaxError: Eol while scanning string literal 

 这合乎情理,但如果要指定以反斜杠结尾的原始字符串(如以反斜杠结尾的DOS路径),该如何办呢?

 解决这个问题,但基本技巧是将反斜杠单独作为一个字符串,下面是一个简单的示例:

请注意,指定原始字符串时,可使用单引号或双引号将其括起,还可使用三引号将其括起。>>> print(r‘C:\Program files\foo\bar‘ ‘\\‘) C:\Program files\foo\bar
使用能以合理的方式将值转换为用户能够看懂的字符串。例如,尽可能将特殊字符编码转换为相应的字符。然而,使用时,通常会获得值的合法Python表达式表示。
  拼接字符串
拼接方法:字符串相加

  >>> "Hello," + "world!"
  ‘Hello,world!‘
  >>> x = "Hello,"
  >>> y = "world!"
  >>> x + y
  ‘Hello,world!‘
  
函数str()和repr()
  
strrepr
 

    注:实际上,像int一样,str也是一个类,但repr是一个函数。

 
  >>> print(repr("Hello,\nworld!"))   ‘Hello,\nworld!‘   >>> print(str("Hello,\nworld!"))   Hello,  world!
总结

以上是内存溢出为你收集整理的字符串(String)全部内容,希望文章能够帮你解决字符串(String)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1195730.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)