gpt4 book ai didi

python - 无法理解为什么字母 u 在我的 raw_input() 输出前加上前缀

转载 作者:行者123 更新时间:2023-11-28 21:22:30 25 4
gpt4 key购买 nike

我目前正在学习 Python,并编写了一个程序来试验该语言。但是,每当我使用它时,输出总是在某处有一个字母“u”。我使用 Pyscripter 作为我的 IDE。

这是我的代码:

print "whats your name"
age = raw_input()
print "Alright, so %r, I just realized what percent-r does actually or is meant for" % (age)
print "What next ur age",
age1 = raw_input()
print "you entered %r " % (age1)

当我运行它时,我看到类似这样的东西:

>>> Python 2.7.5 (default, May 15 2013, 22:43:36) [MSC v.1500 32 bit (Intel)] on win32.

>>> whats your name (i typed kk)

>>> Alright, so u'kk', i just realized what percent-r does actually or is meant for

>>> what next ur age (i typed ll)

>>> you entered u'll'

为什么我的输出中有一个随机的 u 字符,而不是我想要的字符串?

最佳答案

问题在于您的字符串插值。

在您的代码中,您使用类似的东西:

print "Your name is %r" % name

相反,您要么想使用:

print "Your name is %s" % name

...这使得 Python 手动将 name 视为字符串,或使用:

print "Your name is {0}".format(name)

...这是更新、更受青睐的方式,而且使用起来不那么挑剔。


这是对正在发生的事情的分割。当您使用 raw_input() 时,Python 会返回一种特殊的字符串,称为 unicode 字符串。 Unicode 字符串的特殊之处在于它们可以表示普通字符串不能表示的各种字符,例如汉字。普通字符串通常只能使用您在键盘上看到的字符。

现在,在 Python 2.x 中,您可以通过执行以下操作来指示字符串是 unicode:

my_str = u"汉字/漢字"

请注意该字符串以“u”为前缀。

当您使用 %r 插值指示器时,您是在告诉 Python 获取您的字符串,对变量使用 repr,并将其代入原始字符串。如果你执行 repr(my_str),它将返回 u"汉字/汉字"

相反,如果您使用%s,那么Python 将对变量使用str。如果您执行 str(my_str),它将返回 "汉字/汉字"(类似)。

Unicode 可能是一件很难理解的事情,尤其是在 Python 中。如果你有兴趣,这个 presentation将更深入地了解 unicode 到底是什么,以及它在 Python 中的使用方式。

关于python - 无法理解为什么字母 u 在我的 raw_input() 输出前加上前缀,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19064321/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com