python - 我可以避免在Python中的2个for循环之间打印新行吗

标签 python loops for-loop newline shapes

我正在尝试根据输入显示菱形形状。除了“空新行”之外,代码几乎已完成。

但是我没有消除两个循环之间的空行。我该如何修复它?有什么事情逃过了我的注意吗?

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/

相关文章:

python - 打印带有索引和项目的 python 列表

python - 如何对 pandas 中的索引和列进行分组

python - 统一码编码错误 : 'latin-1' codec can't encode character u'\u03c7' in position 66: ordinal not in range(256)

javascript - 循环从 val() 获取数据

javascript - 创建对象数组只进行 1 次迭代

C中的循环条件检查

Python heapify() 时间复杂度

html - HTML声音拒绝循环播放

R:生成变量名称,评估函数列表中的函数,并将这些值分配给循环中生成的变量名称

for-loop - Go 无法识别在 'for' 循环中使用变量