在图案中使用ASCII数字打印每个字母

时间:2019-08-09 09:16:45

标签: python python-3.x

在此问题中,我想根据其所在的行在每行中打印一个字母。这也取决于图案的大小。但是,当我运行该程序时,没有一个字母被打印出来(所需的输出是基于行的中间一列中的字母)。只有-会被打印。

我在做什么错了?

def print_rangoli(size):
    row=2*size - 1
    col=4*size - 3
    for i in range(0,row):
        for j in range(0,col):
            if  j==col/2:
                print(chr(96+n-i),end='')
            else:
                print("-",end='')
        print(" ")
if __name__ == '__main__':
    n = int(input())
    print_rangoli(n)

预期输出为:

--------e--------
--------d--------
--------c--------
--------b--------
--------a--------

以此类推。

但是实际输出是:

-----------------
-----------------
-----------------
-----------------
-----------------
-----------------
-----------------
-----------------
-----------------

1 个答案:

答案 0 :(得分:1)

在python中,与其他语言不同,符号“ /”不表示整数除法。在您的情况下,变量col是奇数。在for循环中,您正在检查:if j == col / 2。由于col是奇数,所以除以2将是浮点数(而您的j则永远不会是浮点数)。如果要进行整数除法,以便找到行的中间位置,请尝试//操作,该操作指的是整数除法。