【发布时间】:2019-11-25 20:33:03
【问题描述】:
我正在尝试编写一个函数,在终端中打印出矩形。我的函数接受单个输入参数 N 并输出带有 ASCII 艺术的字符串。输出应该是这样的:
N = 2 N = 6
######## ####################
# # # #
# ** # # #
# ** # # #
# # # ****** #
######## # ****** #
# ****** #
N = 4 # ****** #
############## # ****** #
# # # ****** #
# # # #
# **** # # #
# **** # # #
# **** # ####################
# **** #
# #
# #
##############
这是我目前所拥有的:
def flag(N):
if N % 2 == 0:
border_j = (N * 3) + 2
border_i = (N * 2) + 2
for i in range(border_i):
for j in range(border_j):
if i in [0, border_i - 1] or j in [0, border_j - 1]:
print('#', end='')
elif j == N + 1 and i == 1 + N / 2:
print('*', end='')
else:
print(' ', end='')
print()
else:
raise AssertionError
flag(2)
输出:
########
# #
# * #
# #
# #
########
在这之后我有点困惑。接下来我该怎么做?
【问题讨论】:
-
接下来你应该去检查条件
elif j == N + 1 and i == 1 + N / 2:是否有问题