我已经开始学习编程,我需要创建程序,用户可以在其中输入所需的行数,然后程序必须根据用户提供的信息打印两种不同的形状。形状必须像
Blockquote
# # # # # *
# # * *
# # AND * * *
# # * * * *
# # # # # * * * * *
我设法制作了三角形,但我不知道如何创建内部为空的正方形。我只把它填满了。 谁能帮我修改我的代码?
userInput = input("Enter amount of row's wanted: ")
def shape(userInput, drawCharacter):
n = 0
while n < int(userInput):
n += 1
if drawCharacter == "*":
print(n*drawCharacter.rjust(3))
elif drawCharacter == "#":
print(int(userInput)*drawCharacter.rjust(3))
shape(userInput, "*")
print("|__________________|\n")
shape(userInput, "#")
答案 0 :(得分:1)
使用numpy
数组来避免在生成矩阵时出现循环的方法:
import numpy
n = 5 # or userinput, has to be >= 2
mat = np.full((n,n), '#') # a matrix of #s
mat[1:-1, 1:-1] = np.full((n-2, n-2), ' ') # make the center of the matrix ' '
print('\n'.join([' '.join(e) for e in mat]))
结果:
# # # # #
# #
# #
# #
# # # # #
答案 1 :(得分:0)
您的盒子基本上由以下部分组成:
print (width * '#')
print ('#{}#'.format(' ' * (width - 2)))
作为练习,您只需要弄清楚循环。.;)
答案 2 :(得分:0)
如果这是您第一次接触编程(任何语言),我建议您尝试使用 嵌套循环 (其中将模拟一个 2d数组 ,或者基本上是一个 矩阵 ),尝试找出该数组的索引矩阵不打印而仅打印边缘。 通过这种方法,您将更好地深入了解此任务提出的问题以及如何解决它。祝你好运!