【问题标题】:print() is showing quotation marks in resultsprint() 在结果中显示引号
【发布时间】:2014-03-07 23:01:24
【问题描述】:

当脚本的以下部分被激活时,它会在结果中显示所有逗号和单引号(和括号)。

print(name, 'has been alive for', days, 'days', minutes, 'minutes and', seconds, 'seconds!')

例如:

('Ryan', 'has been alive for', 10220, 'days', 14726544, 'minutes and', 883593928, seconds!')

我想把它清理干净,所以看起来不错。那可能吗?

“好”的意思是这样的:

Ryan has been alive for 10220 days, 14726544 minutes, and 883593928 seconds!

这是完整的脚本:

print("Let's see how long you have lived in days, minutes, and seconds!")
name = raw_input("name: ")

print("now enter your age")
age = int(input("age: "))

days = age * 365
minutes = age * 525948
seconds = age * 31556926

print(name, 'has been alive for', days, 'days', minutes, 'minutes and', seconds, 'seconds!')

raw_input("Hit 'Enter' to exit!: ")

【问题讨论】:

  • 如果您使用的是 python2.x,请删除 print 语句中的括号。
  • 这对于像这样的程序来说可能无关紧要(看起来你可能只是在玩 Python),但是使用 future 导入而不是删除括号的一个好处是它可以在 Python2 晚期和 Python3 早期工作。我个人仍然在我的所有 Python 2.7 内容中使用括号进行打印,因为它更加向前兼容。
  • 使用字符串格式是个好主意。
  • 我肯定只是在玩 Python。这只是帮助我了解某些事情如何在该语言中工作的一种方式,因为我决定选择 Python 作为我的第一门编程语言。谢谢大家的建议!

标签: python python-2.7


【解决方案1】:

你需要from __future__ import print_function

在 Python 2.x 中,您正在执行的操作被解释为打印一个元组,而您使用的是 3.x 语法。

例子:

>>> name = 'Ryan'
>>> days = 3
>>> print(name, 'has been alive for', days, 'days.')
('Ryan', 'has been alive for', 3, 'days.')
>>> from __future__ import print_function
>>> print(name, 'has been alive for', days, 'days.', sep=', ')
Ryan, has been alive for, 3, days.

【讨论】:

  • Adding from future import print_function 在脚本的最开始删除了所有的引号和括号(谢谢!!),但它也删除了逗号。我可以选择保留这些吗?
  • 是的,但您必须将它们打印为字符串。
  • @RyanJoachim 听起来你真正想要的已经得到了回答here
  • @RyanJoachim 抱歉,这个周末我没有回来查看。使用 Python 3 语法,通过传入 sep 关键字(代表分隔符)很容易实现您想要的效果。它默认只是一个空格,但可以是任何你想要的。我编辑了上面的示例,向您展示如何将其设置为逗号空格。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-02-17
  • 1970-01-01
  • 2021-05-11
  • 2019-11-14
  • 1970-01-01
  • 1970-01-01
  • 2011-08-28
相关资源
最近更新 更多