在此问题中,我想根据其所在的行在每行中打印一个字母。这也取决于图案的大小。但是,当我运行该程序时,没有一个字母被打印出来(所需的输出是基于行的中间一列中的字母)。只有-
会被打印。
我在做什么错了?
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--------
以此类推。
但是实际输出是:
-----------------
-----------------
-----------------
-----------------
-----------------
-----------------
-----------------
-----------------
-----------------
答案 0 :(得分:1)
在python中,与其他语言不同,符号“ /”不表示整数除法。在您的情况下,变量col
是奇数。在for循环中,您正在检查:if j == col / 2
。由于col
是奇数,所以除以2将是浮点数(而您的j
则永远不会是浮点数)。如果要进行整数除法,以便找到行的中间位置,请尝试//
操作,该操作指的是整数除法。