我知道有很多方法可以做到这一点,但我正在尝试使用范围和if else语句打印矩形。我的代码在工作之下,但只是因为我在第7行的print语句中硬编码了所需的空格。一旦num_rows或num_cols的值改变,间距就会关闭。我需要做些什么来使其发挥作用?
num_rows = 5
num_cols = 6
for i in range(num_rows):
print('*', end=' ')
if i in range(1,num_rows -1):
print(' ','*', end='')
else:
for j in range(num_cols-1):
print('*', end=' ')
print('')
我得到的代码在修补之后变成了下面的代码,但它仍然不是正确的,并且一旦我更改了行和cols变量的值就不起作用。我不确定我需要对我的size变量做什么才能灵活处理并使用num_rows和num_cols的任何值。是否有可能只使用我在课堂上所涉及的内容来完成这项工作,这基本上是上面的lol。我已经向老师求助了,他说我应该先尝试在论坛上寻求帮助。他说,大多数开发人员每天都这样做,所以我需要习惯于寻求帮助。
num_rows = 5
num_cols = 6
size =(num_rows + 3)
for i in range(num_rows):
print('*', end=' ')
if i in range(1,num_rows -1):
print( ' ' * size + '*', end='')
else:
for j in range(num_cols-1):
print('*', end=' ')
print('')
答案 0 :(得分:1)
Python使用更少的代码更容易完成更多工作。
您可以将矩形设为
print("* "*num_cols, end='')
print(("\n* "+" "*(num_cols-2)+"* ")*(num_rows-2))
print("* "*num_cols)
第1行打印num_cols
*
s之后没有换行符。
第2行打印num_rows-2
行,每行包含一个*
,每行num_cols-2
个(空格)。
第3行打印矩形的底部。
如果打印的空格数从
更改,您的程序应该可以正常工作print( ' ' * size + '*', end='')
到
print( ' ' * (num_cols-2)+ '*', end='')
需要两个空格,因为您之前的end=' '
中有print()
。如果他们的end
成为end=''
,则只需一个空格。