在一个循环中在同一行上打印多个字符串

2024-09-30 00:31:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我读了一些与我的标题相似的相关文章,但大多数文章只是给出了一些基本的语法建议,比如使用end = ''。在

我试图显示n为1-100的五边形数字,每行只显示10个数字。我想不出一个办法不把我的for语句搞乱。我可以使用end = '',但我不知道如何在10次迭代之后告诉循环“好的”,然后跳到下一行

def getPentagonalNumber(n):
    (n * ((3 * n) - 1))/2

def main():
    for i in range(100):
        getPentagonalNumber(i)

Tags: in标题formaindef文章语法range
3条回答
for i in range(100):
    print(getPentagonalNumber(i), end=' ')
    if i % 10 == 9:
        print('\n') 
for i in range(100):
    if i % 10 == 9:
        print getPentagonalNumber(i)
    else:
        print getPentagonalNumber(i),

测试了这个打印i并得到

^{pr2}$

可以使用join命令,例如:

for i in range(1, 100, 10): # i = 1, 11, 21, 31, 41,.....
  print(' '.join(['%6d' % getPentagonalNumber(n) for n in range(i, i+10)]))

输出:

^{pr2}$

顺便说一下,函数getPentagonalNumber()中缺少返回

我所做的是在外环的间隙10中使用范围生成数字:

>>> range(1, 100, 10)
[1, 11, 21, 31, 41, 51, 61, 71, 81, 91]

在for循环内部,在gap中创建一个数字列表(实际上创建一个数字字符串列表),例如

>>> ['%3d' % getPentagonalNumber(n) for n in range(1, 1 +10)]
['  1', '  5', ' 12', ' 22', ' 35', ' 51', ' 70', ' 92', '117', '145']

将数字串连接成一个字符串并打印。在

相关问题 更多 >

    热门问题