字符串标志“ u”和“ r”到底是做什么的,什么是原始字符串文字?

本文探讨了Python中的字符串前缀`u`和`r`的含义。`u`表示Unicode字符串,用于存储非ASCII字符。`r`表示原始字符串,其中的反斜杠不作为转义字符。在Python 3中,`u`前缀已不常用,而`r`用于创建不解析转义序列的字符串。讨论了如何在不同场景下使用这两种字符串及其相互转换的方法。
摘要由CSDN通过智能技术生成

当问这个问题时 ,我意识到我对原始字符串不了解很多。 对于自称是Django培训师的人来说,这很糟糕。

我知道编码是什么,我知道什么是u''本身并因为我得到的是Unicode的。

  • 但是r''到底是做什么的? 它产生什么样的字符串?

  • 最重要的是,这到底是什么ur''吗?

  • 最后,有什么可靠的方法可以从Unicode字符串返回到简单的原始字符串?

  • 啊,顺便说一句,如果你的系统和你的文本编辑器的字符集设置为UTF-8,并u''实际上做什么?


#1楼

“ u”前缀表示该值具有unicode类型而不是str类型。

带有“ r”前缀的原始字符串文字会转义其中的任何转义序列,因此len(r"\\n")为2。由于它们转义了转义序列,因此您不能在字符串文字后加上单个反斜杠:这不是有效的转义序列(例如r"\\" )。

“原始”不是该类型的一部分,它只是表示值的一种方式。 例如, "\\\\n"r"\\n"是相同的值,就像320x20 ,和0b100000是相同的。

您可以使用unicode原始字符串文字:

>>> u = ur"\n"
>>> print type(u), len(u)
<type 'unicode'> 2

源文件编码仅决定如何解释源文件,否则不会影响表达式或类型。 但是, 建议避免使用非ASCII编码会改变含义的代码:

使用ASCII的文件(对于Python 3.0,则为UTF-8)应该没有编码cookie。 只有在注释或文档字符串需要提及需要使用Latin-1的作者姓名时,才应使用Latin-1(或UTF-8)。 否则,使用\\ x,\\ u或\\ U转义是在字符串文字中包含非ASCII数据的首选方法。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值