猿问

如何在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) 


手掌心
浏览 88回答 2
2回答

守着一只汪

我很无聊,你来了。In [36]: def print_diamonds(width, ds):&nbsp; &nbsp; ...:&nbsp; &nbsp; &nbsp;r = width//2&nbsp; &nbsp; ...:&nbsp; &nbsp; &nbsp;for i in range(-r, r+1):&nbsp; &nbsp; ...:&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;print((' '*(abs(i)) + '*'*((r-abs(i))*2+1) + ' '*(abs(i)))*ds)&nbsp; &nbsp; ...:&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;In [37]: print_diamonds(5, 2)&nbsp; *&nbsp; &nbsp; *&nbsp;&nbsp;&nbsp;***&nbsp; ***&nbsp;**********&nbsp;***&nbsp; ***&nbsp;&nbsp; *&nbsp; &nbsp; *&nbsp;&nbsp;

临摹微笑

您的问题很模糊,但这是每条线一颗钻石的函数。我不确定你期待什么。要明确。vect = ('*', '***', '*****', '***', '*')def method():&nbsp; &nbsp; for i in range(0,5):&nbsp; &nbsp; &nbsp; &nbsp; print(abs((2-i))*" ",vect[i])
随时随地看视频慕课网APP

相关分类

Python
我要回答