【问题标题】:How can I print a 9x9 table in just one line?如何仅在一行中打印 9x9 表格?
【发布时间】:2014-08-24 12:24:26
【问题描述】:

我试图用一行代码打印一个 9x9 乘法表。我在以下结果中遇到问题。

print("%s x %s = %s" % (x, y, x*y) for x in range(1, 10) for y in range(1, 10))

输出:

<generator object <genexpr> at 0x1054350f0>

虽然我预计它会输出:

1 x 1 = 1
1 x 2 = 2
.
.
.
9 x 9 = 81

【问题讨论】:

  • 请在 python 中使用生成器或 lambda 进行打印。谢谢。
  • 您在 13 个字符之外:print(*("%s x %s = %s" % (x, y, x*y) for x in range(1, 10) for y in range(1, 10)), sep='\n')。 (注意:如果您在模块顶部添加from __future__ import print_function,这适用于python2)。

标签: python generator


【解决方案1】:

这是另一种方式:

>>> table = ("%s x %s = %s" % (x, y, x*y) for x in range(1, 10) for y in range(1, 10))
>>> print "\n".join(table)
1 x 1 = 1
1 x 2 = 2
.
.
.
9 x 9 = 81

或者在一行中:

print "\n".join(("%s x %s = %s" % (x, y, x*y) for x in range(1, 10) for y in range(1, 10)))

【讨论】:

    猜你喜欢
    • 2014-07-07
    • 2020-10-18
    • 2018-07-26
    • 1970-01-01
    • 2013-09-19
    • 1970-01-01
    • 2016-11-04
    • 2019-08-30
    • 2018-03-23
    相关资源
    最近更新 更多