在python中返回英镑符号(不打印)

在python中返回英镑符号(不打印),python,python-2.7,encoding,Python,Python 2.7,Encoding,我需要从函数返回一个价格范围,比如 “150英镑至199英镑” 但当函数返回时,值将转换为“\u00a3150到\u00a3199” 现在我知道值“\u00a”是的转义版本 但当我打印(“\u00a3150”)时,它会打印150英镑,我尝试使用编码和unichr(163),但无法返回150英镑的值 非常感谢您的帮助 只是为了让它有说服力 def price_range(price): print("Print value {}".format(price)) retu

我需要从函数返回一个价格范围,比如 “150英镑至199英镑” 但当函数返回时,值将转换为“\u00a3150到\u00a3199”

现在我知道值“\u00a”是的转义版本

但当我打印(“\u00a3150”)时,它会打印150英镑,我尝试使用编码和unichr(163),但无法返回150英镑的值

非常感谢您的帮助

只是为了让它有说服力

def price_range(price):  
     print("Print value {}".format(price))  
     return "Return value {}".format(price)  
因此,现在如果我发送值“150英镑到199英镑”,则输出值如下

>>> price_range("£150 to  £199")  

Print value £150 to  £199  
Return value \xa3150 to  \xa3199'  

我认为您只是混淆了字符串的内部表示和
print
的显示方式

在交互模式下计算表达式时,Python将显示表达式结果的表示形式

只需在使用拉丁字符集的终端中查看:

>>> t = '\xa3150'
>>> t
'\xa3150'
>>> print t
£150
>>> repr(t)
"'\\xa3150'"
>>> print(repr(t))
'\xa3150'
与您的示例类似,如果您打印返回值,您将获得正确的显示:

>>> x = price_range("£150 to  £199")
Print value £150 to  £199 
>>> x
'Return value \xa3150 to  \xa3199'
>>> print x
Return value £150 to  £199 
事实上,Python解释器的eval循环接近:

while True:
    expr = input(">>> ")
    print(repr(expr))

(由于EOF和错误处理的原因,它确实要复杂得多,但这样想就足以理解代码发生了什么)

您是否尝试过
u“\u00a3150到\u00a3199”
(或者
u”150到199英镑
)是的,但无法得到我需要的。如果正确打印返回值,您的代码可以正常工作:
打印价格范围($150到£199”)