首页 > 解决方案 > 我应该怎么做才能以列格式获取数学表

问题描述

我是一名学生,通过运行此代码,我连续获得 1 到 5 个表的输出,但是我希望以这样的方式输出,如果 2 的表在那里,那么 3 的表应该在下一个柱状并排。我应该包括什么来实现这个结果。总而言之,我希望输出以列格式出现,每个表并排,而不是每个表都在另一个之下。

f=open('C:/python/1 to 5 table','w')
for i in range(1,6):
    for j in range (1,11):
        print (i,'X',j,'=',i*j)
        f.write (string(i)+string('X')+string(j)+string('=')+string(i*j)+string('\n'))
f.close()

标签: pythonpython-3.x

解决方案


首先string应该是str

此外,您不必将字符串类型转换为str

f=open('table.txt','w')

for j in range (1,11):
    for i in range(1,6):
        # print (i,'X',j,'=',i*j)
        f.write (str(i)+str('X')+str(j)+str('=')+str(i*j)+str('\t')) # I don't like number of `str`'s, they are not needed for a string
    f.write('\n')
f.close()

可取的代码

f=open('table.txt','w')

for j in range (1,11):
    for i in range(1,6):
        f.write (f'{i}X{j}={i*j}\t')
    f.write('\n')
f.close()

输出:

1X1=1   2X1=2   3X1=3   4X1=4   5X1=5   
1X2=2   2X2=4   3X2=6   4X2=8   5X2=10  
1X3=3   2X3=6   3X3=9   4X3=12  5X3=15  
1X4=4   2X4=8   3X4=12  4X4=16  5X4=20  
1X5=5   2X5=10  3X5=15  4X5=20  5X5=25  
1X6=6   2X6=12  3X6=18  4X6=24  5X6=30  
1X7=7   2X7=14  3X7=21  4X7=28  5X7=35  
1X8=8   2X8=16  3X8=24  4X8=32  5X8=40  
1X9=9   2X9=18  3X9=27  4X9=36  5X9=45  
1X10=10 2X10=20 3X10=30 4X10=40 5X10=50 

说明:我已经颠倒了循环顺序,现在 loop[1-5] 执行 10 次/行

PS: f是用来格式化字符串的!


推荐阅读