首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python中的乘法表仅显示六列

Python中的乘法表仅显示六列
EN

Stack Overflow用户
提问于 2015-06-07 09:22:10
回答 1查看 135关注 0票数 1

我用PyCharm编写了一段代码,运行之后,PyCharm和Python3只显示了六列。

代码语言:javascript
运行
复制
layout = "{0:>2} {1:>2} {2:>2} {3:>2} {4:>2} {5:>2} {6:>2} {7:>2} {8:>2} {9:>2} {10:>2} {11:>2}"
def multiple_table2():
    for i in range (1, 11):
        print(layout.format(i, "\t", i*2, "\t", i*3, "\t", i*4, "\t", i*5, "\t", i*6, "\t", i*7, "\t", i*8, "\t", i*9, "\t", i*10, "\t", i*11, "\t", i*12))

multiple_table2()

我认为,这是正确的。有人能解释一下吗,请问问题出在哪里?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-07 09:23:18

您正在将12个以上的值放入列中。前12个是6个数字和6个制表符字符。这些"\t"字符串中的每一个也都是一个值;您实际上是在生成:

代码语言:javascript
运行
复制
' 1  \t  2  \t  3  \t  4  \t  5  \t  6  \t'

作为字符串;注意之间的空格!这是一个小于2个字符的值的空格,以及来自模板本身的另一个空格。

您不需要将这些制表符字符设置为您的格式;您已经将插槽分隔开了:

代码语言:javascript
运行
复制
print(layout.format(i, i*2, i*3, i*4, i*5, i*6, i*7, i*8, i*9, i*10, i*11, i*12))

现在,您为12个插槽传递12个参数。

如果您真的想在选项卡之间添加选项卡,则应该将这些选项卡放在layout字符串中:

代码语言:javascript
运行
复制
layout = '{0:>2}\t{1:>2}\t{2:>2}\t{3:>2}\t{4:>2}\t{5:>2}\t{6:>2}\t{7:>2}\t{8:>2}\t{9:>2}\t{10:>2}\t{11:>2}'

Python为您提供了避免输入的工具。print()已经在不同的参数之间放置了空格。与生成器表达式中的另一个循环一起,您可以格式化所有这些数字,而无需写出所有*multiplier参数:

代码语言:javascript
运行
复制
for i in range (1, 11):
    print(*(format(i * m, '>2') for m in range(1, 13)))

如果您仍然需要在中间而不是空格中设置制表符,可以告诉print()使用sep参数作为分隔符:

代码语言:javascript
运行
复制
for i in range (1, 11):
    print(*(format(i * m, '>2') for m in range(1, 13)), sep='\t')

考虑到,由于您正在乘以11和12,您将得到不适合于两个字符的数字:

代码语言:javascript
运行
复制
>>> for i in range (1, 11):
...     print(*(format(i * m, '>2') for m in range(1, 13)))
... 
 1  2  3  4  5  6  7  8  9 10 11 12
 2  4  6  8 10 12 14 16 18 20 22 24
 3  6  9 12 15 18 21 24 27 30 33 36
 4  8 12 16 20 24 28 32 36 40 44 48
 5 10 15 20 25 30 35 40 45 50 55 60
 6 12 18 24 30 36 42 48 54 60 66 72
 7 14 21 28 35 42 49 56 63 70 77 84
 8 16 24 32 40 48 56 64 72 80 88 96
 9 18 27 36 45 54 63 72 81 90 99 108
10 20 30 40 50 60 70 80 90 100 110 120
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30691920

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档