【问题标题】:Why this single quotes and braces in output in python?为什么在 python 的输出中使用这个单引号和大括号?
【发布时间】:2016-11-05 01:25:44
【问题描述】:

我在 ubantu 版本 16.04 中使用 ipython 笔记本并运行此代码,

word = 'Rushiraj'
length = 0
for char in 'rushiraj':
    length = length + 1
print('There are', length,'character')

我得到这个输出: ('有', 8, '字符')

输出中出现这个单引号和圆括号的原因是什么?它不应该在那里!

【问题讨论】:

  • 您正在使用 Python 2 运行适用于 Python 3 的代码。
  • ^这个。试试print 'There are', length,'character'

标签: python python-3.x loops python-2.x


【解决方案1】:

您看到的输出是由于您使用的是 Python 2,但您使用的是 Python 3 中的 print 语法。在 Python 3 中,print 是一个函数,并且像其他函数一样接受参数(如print(...))。

在 Python 2 中,print 是一个语句,通过使用括号,您实际上是在将 tuple 作为其第一个参数传递给它(因此您正在打印出一个元组的 Python 表示)。

您可以通过两种方式解决此问题。

如果您将 from __future__ import print_function 添加到文件顶部,则 print 的行为将与 Python 3 中的行为相同。

或者,你可以这样称呼它:

print 'There are', length,'character'

【讨论】:

  • 如何从 python 2 切换到 python 3 ? @larsks
  • 他显然在使用 Python 2,但表示他想切换到 Python 3。
  • 也许是我累了,误读了评论。我以为昨晚它说的相反,但它就是这样! @R.Brahmbhatt,这个问题实际上太大了,无法在评论中回答。根据您的系统,您可能可以键入 python3 并已经安装它,或者您可能需要弄清楚如何安装 Python 3 解释器,这因操作系统和 Linux 发行版而异。
  • 感谢您的回复,但我找到了解决方案@larsks 我只是将 python 3 设置为默认值,但设置了别名!
【解决方案2】:

您正在打印一个元组(尽管乍一看可能不是这样),因此输出是该元组的 repr。

【讨论】:

  • 我没说打印叫__repr__;我说输出是元组的repr。 tuple.__str__ 只需调用 tuple.__repr__
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-03-22
  • 1970-01-01
  • 2012-09-11
  • 1970-01-01
  • 1970-01-01
  • 2012-12-21
  • 1970-01-01
相关资源
最近更新 更多