带星号的空心矩形
Hollow Rectangle with Asterisks
我知道有很多方法可以做到这一点,但我正在尝试使用范围和 if else 语句打印一个矩形。我的代码在下面有效,但只是因为我在第 7 行的打印语句中硬编码了所需的空格。一旦 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('')
我在修改后得到了代码,可以变成下面的代码,但它仍然不正确,并且在我更改 row 和 cols 变量的值后不起作用。我不确定我需要对我的大小变量做些什么才能灵活地处理 num_rows 和 num_cols 的任何值。是否可以仅使用我目前在我的 class 中所涵盖的内容来完成这项工作,这基本上是大声笑上面的内容。我已经向我的老师寻求帮助,他说我应该先尝试搜索论坛寻求帮助。他说大多数开发人员每天都这样做,所以我需要习惯寻求帮助。
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('')
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
个 </code>(spaces)之间。<br>
第 3 行打印矩形的底部。<br></p>
<p>如果 space 打印的数量从 </p> 更改,您的程序应该可以正常工作
<pre><code>print( ' ' * size + '*', end='')
到
print( ' ' * (num_cols-2)+ '*', end='')
需要两个 space,因为在它之前的 print()
中有 end=' '
。如果他们的end
是end=''
,一个space就够了。
我知道有很多方法可以做到这一点,但我正在尝试使用范围和 if else 语句打印一个矩形。我的代码在下面有效,但只是因为我在第 7 行的打印语句中硬编码了所需的空格。一旦 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('')
我在修改后得到了代码,可以变成下面的代码,但它仍然不正确,并且在我更改 row 和 cols 变量的值后不起作用。我不确定我需要对我的大小变量做些什么才能灵活地处理 num_rows 和 num_cols 的任何值。是否可以仅使用我目前在我的 class 中所涵盖的内容来完成这项工作,这基本上是大声笑上面的内容。我已经向我的老师寻求帮助,他说我应该先尝试搜索论坛寻求帮助。他说大多数开发人员每天都这样做,所以我需要习惯寻求帮助。
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('')
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
个 </code>(spaces)之间。<br>
第 3 行打印矩形的底部。<br></p>
<p>如果 space 打印的数量从 </p> 更改,您的程序应该可以正常工作
<pre><code>print( ' ' * size + '*', end='')
到
print( ' ' * (num_cols-2)+ '*', end='')
需要两个 space,因为在它之前的 print()
中有 end=' '
。如果他们的end
是end=''
,一个space就够了。