学习Python并需要帮助在不中断其余代码的情况下移动符号

学习Python并需要帮助在不中断其余代码的情况下移动符号,python,formatting,Python,Formatting,我正在学习Python,需要一些帮助来将我的符号移到左边的几个空格上。我已完成作业,不需要家庭作业帮助。我只是想让我这边看起来更好。在我在下面的链接中添加的图片中,您可以看到“#”太靠右了。我想把它放在偶数旁边。我试着在打印语句中留出更多的空格,但所做的只是移动整个表。我怎么才能让那个“#”正好挨着我的偶数呢 这是我的密码 #ask for user input on size of Multiplication Table. size = int(input("What size M

我正在学习Python,需要一些帮助来将我的符号移到左边的几个空格上。我已完成作业,不需要家庭作业帮助。我只是想让我这边看起来更好。在我在下面的链接中添加的图片中,您可以看到“#”太靠右了。我想把它放在偶数旁边。我试着在打印语句中留出更多的空格,但所做的只是移动整个表。我怎么才能让那个“#”正好挨着我的偶数呢

这是我的密码

#ask for user input on size of Multiplication Table.
size = int(input("What size Multiplication Table would you like? (2-10):"))
while (size <2) or (size >10):
    print("Invalid entery! Enter a Number Between 2 and 10")
    size = int(input("What size Multiplication Table would you like? (2-10):"))   
print()
print()

#dispaly header
print("                    --- Multiplication Table(",size,"x",size,") ---")
print("  ",end="")
size += 1
for h in range(1,11):
    if h == 10:
        print("    ",h, end="  ")
    else:
        print("     ",h, end="  ")
print()
for h in range(1,100):
    print('-',end='')
print()

#display Multiplication Table
#outer loop
for a in range(1,size):
    if a ==10:
        print('',a,'|',end='')
    else:
        print('',a,' |',end='')
        
#inner loop        
    for b in range(1,size):
        result = a * b
        if result >=100:
            print(' ',result, end='   ')
        elif result >=10:
            print(' ',result, end='    ')
        else:
            print('  ', result, end='    ')
            
# for putting '#' at the end of even numbers            
        if result %2==0:
            print('#', end='')
        elif result == 100:
            print('', end='')
        else:
            print(' ', end='')
    print()
#要求用户输入乘法表的大小。
size=int(输入(“您想要什么大小的乘法表?(2-10):”)
而(10号):
打印(“无效输入!输入一个介于2和10之间的数字”)
size=int(输入(“您想要什么大小的乘法表?(2-10):”)
打印()
打印()
#显示标题
打印(“---乘法表(”,大小,“x”,大小“)--”)
打印(“,end=”“)
大小+=1
对于范围(1,11)内的h:
如果h==10:
打印(“,h,end=”“)
其他:
打印(“,h,end=”“)
打印()
对于范围(1100)内的h:
打印('-',结束='')
打印()
#显示乘法表
#外环
对于范围内的(1,尺寸):
如果a==10:
打印(“”,a,“”,end=“”)
其他:
打印(“”,a,“”,end=“”)
#内环
对于范围内的b(1,尺寸):
结果=a*b
如果结果>=100:
打印(“”,结果,结束=“”)
elif结果>=10:
打印(“”,结果,结束=“”)
其他:
打印(“”,结果,结束=“”)
#在偶数的末尾加上“#”
如果结果%2==0:
打印(“#”,结束=”)
elif结果==100:
打印(“”,结束=“”)
其他:
打印(“”,结束=“”)
打印()
我对您的内部循环进行了最小的修改,以产生所需的效果:

    for b in range(1,size):
        result = a * b
# for putting '#' at the end of even numbers            
        if result %2==0:
            end_str='#'
        elif result == 100:
            end_str=''
        else:
            end_str=' '
        if result >=100:
            print(' ',result, end=end_str+'   ')
        elif result >=10:
            print(' ',result, end=end_str+'    ')
        else:
            print('  ', result, end=end_str+'    ')

输出,经过此修改:

        1        2        3        4        5        6        7        8        9       10  
---------------------------------------------------------------------------------------------------
 1  |   1        2#       3        4#       5        6#       7        8#       9       10#    
 2  |   2#       4#       6#       8#      10#      12#      14#      16#      18#      20#    
 3  |   3        6#       9       12#      15       18#      21       24#      27       30#    
 4  |   4#       8#      12#      16#      20#      24#      28#      32#      36#      40#    
 5  |   5       10#      15       20#      25       30#      35       40#      45       50#    
 6  |   6#      12#      18#      24#      30#      36#      42#      48#      54#      60#    
 7  |   7       14#      21       28#      35       42#      49       56#      63       70#    
 8  |   8#      16#      24#      32#      40#      48#      56#      64#      72#      80#    
 9  |   9       18#      27       36#      45       54#      63       72#      81       90#    
 10 |  10#      20#      30#      40#      50#      60#      70#      80#      90#      100#   
试试这个:

    for b in range(1,size):
        result = a * b

        flag = " " if result % 2 else "#"
        #put the number and the flag together
        temp = f"{result}{flag}"
        #and pad the number + flag to a constant length
        print(f'   {temp:6.6}', end="")


请参阅我在“关于f字符串格式如何工作的更清晰分类”问题下的评论

输出:
请参阅我关于f字符串格式工作原理的评论。找不到关于如何指定格式的真正清晰的参考
f“{:}”
因此无法链接一个,但它也可以执行诸如填充零和格式浮动之类的操作。

提示:
print(f):{str(result):>3.3}:”
右对齐3。这将在某种程度上简化格式化逻辑。分解
f“{result}”
打印结果<代码>:3.3始终占用3个空格(截断和填充)<代码>:>3:3'将填充放在前面。但是你不能在整数上使用字符串格式限定符,这就是为什么首先需要str(result)`的原因。非常感谢你的帮助,这正是我想要的。很有趣。非常感谢。
                    --- Multiplication Table( 4 x 4 ) ---
        1        2        3        4        5        6        7        8        9       10
---------------------------------------------------------------------------------------------------
 1  |   1        2#       3        4#
 2  |   2#       4#       6#       8#
 3  |   3        6#       9        12#
 4  |   4#       8#       12#      16#