python - 在python中返回一个井号(不打印)
问题描述
我需要从函数返回价格范围,例如“150 英镑到 199 英镑”,但是当函数返回值时会转换为“\u00a3150 到 \u00a3199”。
现在我知道值“\u00a”是£的转义版本。
但是当我 print("\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 会显示表达式结果的表示形式。
只需使用 Latin1 字符集在终端中查看:
>>> 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 和错误处理,它确实要复杂得多,但这样想就足以理解你的代码发生了什么)
推荐阅读
- python - 使用 PyPDF2 更改 pdf 的页面颜色
- automation - 如何自动化任何 Windows 软件应用程序的安装过程
- c# - 数千个文件后通过 SSH.Net 的 SFTP 上传崩溃
- python - 在 Python 中提取文件名的后缀
- javascript - Vuejs Vuetify Typescript 验证
- c# - 如何使用 SkillContext 将数据从 VirtualAssistant 传递给技能
- python - 我怎样才能让我的乌龟移动到我的光标处?
- design-patterns - 在我的 Web 应用程序中,其中一个组件比其他组件慢,如何处理?
- javascript - 在没有电缆的物理设备上安装 React Native apk 时没有摄像头/媒体流
- javascript - 多步骤表格,不在最后阶段提交