我正在尝试根据输入显示菱形形状。除了“空新行”之外,代码几乎已完成。
但是我没有消除两个循环之间的空行。我该如何修复它?有什么事情逃过了我的注意吗?
def print_shape(n):
for i in range(0,n):
print('*' * (n-i), end='')
print(' ' * (i*2), end='')
print('*' * (n-i), end='\n')
for k in range((n), (2 * n + 1)):
print('*' * (k - n), end='')
print(' ' * ((4 * n) - (2 * k)), end='')
print('*' * (k - n), end='\n')
n = int(input('Enter a number: '))
print_shape(n)
Enter a number: 5
**********
**** ****
*** ***
** **
* *
* *
** **
*** ***
**** ****
**********
Need to do this one:
**********
**** ****
*** ***
** **
* *
* *
** **
*** ***
**** ****
**********
最佳答案
是的,这很简单。只需从底部循环中的 n+1
而不是 n
开始(它是打印不需要的换行符的循环),如下所示
def print_shape(n):
for i in range(0,n):
print('*' * (n-i), end='')
print(' ' * (i*2), end='')
print('*' * (n-i), end='\n')
for k in range(n + 1, (2 * n + 1)): # <--- here
print('*' * (k - n), end='')
print(' ' * ((4 * n) - (2 * k)), end='')
print('*' * (k - n), end='\n')
n = int(input('Enter a number: '))
print_shape(n)
关于python - 我可以避免在Python中的2个for循环之间打印新行吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73106632/