首页 > 解决方案 > 使用模式中的 ascii 数字打印每个字母

问题描述

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

我究竟做错了什么?

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--------

等等。

但实际输出是:

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

标签: pythonpython-3.x

解决方案


在 python 中,与其他语言不同,符号 '/' 不是指整数除法。在您的情况下,变量col是奇数。在 for 循环内部,您正在检查:if j == col / 2col奇怪的是,除以 2 将是浮点数(而你永远j不会是浮点数)。如果要进行整数除法,以便找到行中间,请尝试//操作,即整数除法。


推荐阅读