首页 > 解决方案 > 如何在python中打印两个粘着的钻石

问题描述

我想写一个python程序来打印上面的形状(我是python的新手)但是我已经写了单菱形的程序,现在我有一个问题要解决这个问题,你会指导找到算法吗?

  *    *
 ***  ***
**********
 ***  ***
  *    *

这是单颗钻石:

def Diamond(rows): 
    n = 0
    for i in range(1, rows + 1): 
        for j in range (1, (rows - i) + 1): 
            print(end = " ") 
        while n != (2 * i - 1): 
            print("*", end = "") 
            n = n + 1
        n = 0
        print() 
    k = 1
    n = 1
    for i in range(1, rows): 
        for j in range (1, k + 1): 
            print(end = " ") 
        k = k + 1

        while n <= (2 * (rows - i) - 1): 
            print("*", end = "") 
            n = n + 1
        n = 1
        print() 
rows = int(input())
Diamond(rows) 

标签: pythonpython-3.x

解决方案


我无聊了,你去吧。

In [36]: def print_diamonds(width, ds):
    ...:     r = width//2
    ...:     for i in range(-r, r+1):
    ...:         print((' '*(abs(i)) + '*'*((r-abs(i))*2+1) + ' '*(abs(i)))*ds)
    ...:         

In [37]: print_diamonds(5, 2)
  *    *  
 ***  *** 
**********
 ***  *** 
  *    *  

推荐阅读