簡體   English   中英

使用python中的遞歸函數打印星形模式

[英]Print star pattern using recursive functions in python

我想創建一個遞歸函數,該函數將根據給出的數字打印一個星形圖案:它將打印出的星星乘以給出的數字,然后返回行並打印相同的東西,少加一個星星,然后以升序再次打印的方法,基本上,我想得到這個結果,如果我給4作為參數:

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

這是我到目前為止編寫的代碼,實際上可以完成我的工作,除了在打印1星之后不打印任何內容,而僅打印空白行。

def etoiles(n):
    print('*'*n)
    etoiles(n-1)

etoiles(4) 

您需要添加一種停止遞歸的方法以及一種打印樹的另一半的方法。 一種方法是將遞歸放入if語句中,然后重復print部分。

def etoiles(n):
    print('*'*n)
    if n > 1:
        etoiles(n-1)
    print('*'*n)

etoiles(4)

遞歸函數具有“基本情況”的概念,在這些情況下,它們會停止遞歸。 那就是您的etoiles函數所缺少的。 如果n為0,則應停止調用自身。

def etoiles(n):
    print('*' * n)
    if n > 0:
        etoiles(n-1)

這是另一半

# Adam's method
def down(n):
    print('*' * n)
    if n > 1:
        down(n-1)

# The reverse of down is up.
def up(s,n):
    print('*' * n)
    if n < s:
        up(s,n+1)

def etoiles(n):
    down(n)
    up(n,1)

etoiles(4)

這將輸出:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM