在 python 中定义字符串时,开头的 'u 做了啥? [复制]

Posted

技术标签:

【中文标题】在 python 中定义字符串时,开头的 \'u 做了啥? [复制]【英文标题】:What does a beginning 'u do when defining a string in python? [duplicate]在 python 中定义字符串时,开头的 'u 做了什么? [复制] 【发布时间】:2016-04-10 04:10:55 【问题描述】:

前几天刚开始学习python,偶然发现str.isdecimal()函数。在 python 环境中输入以下内容时出现错误:

    text="123"
    Print text.isdecimal()

错误是:“str”对象没有“isdecimal”属性。

但是,当我输入以下内容时:

    text=u"123"
    Print text.isdecimal()

然后一切正常,我得到“True”作为预期的回报。

我的问题

这里发生了什么?具体来说,你对字符串定义做了什么,为什么 isdecimal 函数不能正常工作?

谢谢你,如果这个问题太简单了,我们深表歉意。

【问题讨论】:

【参考方案1】:

isdecimal 是 Unicode 字符串的方法,但不是字节字符串。 u'xxx' 定义了一个 Unicode 字符串。

【讨论】:

【参考方案2】:

它将字符串定义为unicode 类型,而不是str 类型。

类型(u'foo')

【讨论】:

以上是关于在 python 中定义字符串时,开头的 'u 做了啥? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

python中,把‘&#’ ‘&#x开头的字符串转换成中文

python js逃脱解码,逃离会吧吧中文变成以u开头的字符串,这与python自带编码库的方式不一样

编码问题

字符串编码中的 Python-3 和 \x Vs \u Vs \U 以及为啥

python中 r'', b'', u'', f'' 的含义

python中 r'', b'', u'', f'' 的含义