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

2024-09-19 23:35:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个要求,返回一个价格范围从功能类似的东西 “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'  

Tags: to函数功能版本format编码returnvalue
1条回答
网友
1楼 · 发布于 2024-09-19 23:35:42

我认为您只是混淆了字符串的内部表示和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和错误处理,它确实要复杂得多,但是这样想就足以理解代码发生了什么)

相关问题 更多 >