Version sans utiliser un f-string.

In [1]:
def etoile(n):
    """
    n -- entier naturel > 0
    
    renvoie une chaine triangle d'étoiles
    >>> print(etoile(3))
    *
    **
    ***
    >>> print(etoile(4))
    *
    **
    ***
    ****
    """
    ch = ''
    for i in range(1, n+1):
        ch += "*" * i
        ch += "\n"
    return ch
In [2]:
print(etoile(4))
*
**
***
****

Version avec un f-string (version python >= 3.6)

In [3]:
def etoile_version2(n):
    """
    n -- entier naturel > 0
    
    renvoie une chaine triangle d'étoiles
    >>> print(etoile(3))
    *
    **
    ***
    >>> print(etoile(4))
    *
    **
    ***
    ****
    """
    ch = ''
    for i in range(1, n+1): ch += f"{'*'*i}\n"
    return ch
In [4]:
print(etoile_version2(5))
*
**
***
****
*****

Version avec format (version python < 3.6)

In [5]:
def etoile_version3(n):
    """
    n -- entier naturel > 0
    
    renvoie une chaine triangle d'étoiles
    >>> print(etoile(3))
    *
    **
    ***
    >>> print(etoile(4))
    *
    **
    ***
    ****
    """
    ch = ''
    for i in range(1, n+1): ch += "{}\n".format('*'*i)
    return ch
In [6]:
print(etoile_version3(5))
*
**
***
****
*****

In [ ]: