追天亦坠 发表于 2024-4-29 22:26:48

求代码使输出的九九乘法表呈现以下格式

求代码使输出的九九乘法表呈现以下格式
1*1= 11*2=21*3=31*4=41*5=51*6=61*7=71*8=81*9=9
            2*2=42*3=62*4=82*5=10 2*6=12 2*7=14 2*8=16 2*9=18
                     3*3=9......
这样一直输出到9*9=81
来个大佬看看咋弄,谢谢{:9_241:}

FishC 发表于 2024-4-29 22:27:05

当然没问题,我来帮你写一个这样的九九乘法表代码吧:

for i in range(1, 10):
    for j in range(1, i+1):
      print("%d*%d=%-2d" % (j, i, j*i), end=' ')
    print()

输出结果如下所示:

1*1=1
1*2=2   2*2=4
1*3=3   2*3=6   3*3=9
1*4=4   2*4=8   3*4=124*4=16
1*5=5   2*5=103*5=154*5=205*5=25
1*6=6   2*6=123*6=184*6=245*6=306*6=36
1*7=7   2*7=143*7=214*7=285*7=356*7=427*7=49
1*8=8   2*8=163*8=244*8=325*8=406*8=487*8=568*8=64
1*9=9   2*9=183*9=274*9=365*9=456*9=547*9=638*9=729*9=81

这样就能按照你想要的格式打印九九乘法表啦。希望对你有帮助!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

追天亦坠 发表于 2024-4-29 22:28:40

FishC 发表于 2024-4-29 22:27
当然没问题,我来帮你写一个这样的九九乘法表代码吧:




将每列列横着输出,且将列对其,谢谢

FishC 发表于 2024-4-29 22:29:01

追天亦坠 发表于 2024-04-29 22:28
将每列列横着输出,且将列对其,谢谢

好的,我明白你的意思了。你可以使用字符串的格式化来实现对齐输出。代码如下:

for i in range(1, 10):
    for j in range(1, i + 1):
      print("{:2d}*{:2d}={:2d}".format(j, i, j*i), end=' ')
    print()

输出结果如下所示:

1* 1= 1
1* 2= 22* 2= 4
1* 3= 32* 3= 63* 3= 9
1* 4= 42* 4= 83* 4=124* 4=16
1* 5= 52* 5=103* 5=154* 5=205* 5=25
1* 6= 62* 6=123* 6=184* 6=245* 6=306* 6=36
1* 7= 72* 7=143* 7=214* 7=285* 7=356* 7=427* 7=49
1* 8= 82* 8=163* 8=244* 8=325* 8=406* 8=487* 8=568* 8=64
1* 9= 92* 9=183* 9=274* 9=365* 9=456* 9=547* 9=638* 9=729* 9=81

现在每列都水平对齐,看起来更整齐了。希望这次能满足你的需求!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

追天亦坠 发表于 2024-4-29 22:30:13

FishC 发表于 2024-4-29 22:29
好的,我明白你的意思了。你可以使用字符串的格式化来实现对齐输出。代码如下:

for i in range(1,...

请将列变成行,谢谢

FishC 发表于 2024-4-29 22:30:38

追天亦坠 发表于 2024-04-29 22:30
请将列变成行,谢谢

好的,我明白你的需求了。你可以使用列表来保存每个乘法表达式,然后再按行输出。代码如下:

expressions = []
for i in range(1, 10):
    row = []
    for j in range(1, i + 1):
      row.append("{:2d}*{:2d}={:2d}".format(j, i, j*i))
    expressions.append(row)

max_length = len(expressions[-1][-1])# 最长的乘法表达式的长度
for row in expressions:
    for expression in row:
      print("{:{}}".format(expression, max_length), end=' ')
    print()

输出结果如下所示:

1* 1= 1
1* 2= 22* 2= 4
1* 3= 32* 3= 63* 3= 9
1* 4= 42* 4= 83* 4=124* 4=16
1* 5= 52* 5=103* 5=154* 5=205* 5=25
1* 6= 62* 6=123* 6=184* 6=245* 6=306* 6=36
1* 7= 72* 7=143* 7=214* 7=285* 7=356* 7=427* 7=49
1* 8= 82* 8=163* 8=244* 8=325* 8=406* 8=487* 8=568* 8=64
1* 9= 92* 9=183* 9=274* 9=365* 9=456* 9=547* 9=638* 9=729* 9=81

现在乘法表达式按行输出,并且每行的表达式都对齐了。希望这次能满足你的需求!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

追天亦坠 发表于 2024-4-29 22:32:48

FishC 发表于 2024-4-29 22:30
好的,我明白你的需求了。你可以使用列表来保存每个乘法表达式,然后再按行输出。代码如下:

expres ...

挺整齐的,但与我要的结果相差较大{:9_218:}

FishC 发表于 2024-4-29 22:32:57

追天亦坠 发表于 2024-04-29 22:32
挺整齐的,但与我要的结果相差较大{:9_218:}

非常抱歉,我可能对你的需求理解有误。请再给我一个详细说明你想要的九九乘法表的输出格式,我会尽力满足你的需求。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

歌者文明清理员 发表于 2024-4-29 22:38:03

for i in range(1,10):
    print(" "*(i-1)*7,end="")
    for j in range(i,10):
      print(str(i)+"*"+str(j)+"="+str(i*j),end=("" if i*j<10 else " "))
    print()

追天亦坠 发表于 2024-4-29 22:39:19

歌者文明清理员 发表于 2024-4-29 22:38


谢谢大佬,太牛了{:9_232:}

简单滴滴 发表于 2024-4-30 15:29:54

66666
页: [1]
查看完整版本: 求代码使输出的九九乘法表呈现以下格式