Chaînes de caractères

Une ligne étoilée.

Écrire une fonction affichant une chaîne de longueur 10, chaque caractère de la chaîne étant égal au caractère * :

**********

Résolution de l'exercice "Une ligne étoilée".

Une première solution.

# -*- coding: utf-8 -*-
def ligneDeToiles():
    """
    fonction affichant une chaîne de longueur 10,
    chaque caractère de la chaîne étant égal au caractère *
    """
    print('**********')

#Programme principal
ligneDeToiles()

Seconde solution.

# -*- coding: utf-8 -*-
def ligneDeToiles():
    """
    fonction affichant une chaîne de longueur 10,
    chaque caractère de la chaîne étant égal au caractère *
    """
    print('*'*10)

#Programme principal
ligneDeToiles()

Troisième solution.

# -*- coding: utf-8 -*-
def ligneDeToiles():
    """
    fonction affichant une chaîne de longueur 10,
    chaque caractère de la chaîne étant égal au caractère *
    """
    ch='' 					   # ch est initialisée à la chaîne vide
    for j in range(0,10):       # pour chaque valeur de j de 0 à 9 :
        ch=ch+'*' 			   #     on ajoute une * à la chaîne ch
    print(ch)				   # on affiche la chaîne résultante

#Programme principal
ligneDeToiles()

Ciel étoilé.

Pour obtenir deux lignes d'étoiles :

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

On peut simplement écrire deux instructions print comme suit :

# -*- coding: utf-8 -*-
def ligneDeToiles():
    """
    fonction affichant une chaîne de longueur 10,
    chaque caractère de la chaîne étant égal au caractère *
    """
    print('*'*10)
	print('*'*10)

#Programme principal
ligneDeToiles()

On peut aussi utiliser "\n" marquant une fin de ligne.

# -*- coding: utf-8 -*-
def CielEtoile()():
    """
    fonction affichant une chaîne de longueur 10,
    chaque caractère de la chaîne étant égal au caractère *
    """
    ch='*'*10
    print(ch+'\n'+ch)

#Programme principal
CielEtoile()()
Écrire une fonction qui affiche 20 lignes de 25 étoiles.

Résolution de l'exercice "ciel étoilé".

Première solution.

# -*- coding: utf-8 -*-
def CielEtoile():
    """
    fonction affichant une chaîne de longueur 10,
    chaque caractère de la chaîne étant égal au caractère *
    """
    ch='*'*25
    for j in range(20):
        print(ch)

#Programme principal
CielEtoile()

Seconde solution.

# -*- coding: utf-8 -*-
def CielEtoile():
    """
    fonction affichant une chaîne de longueur 10,
    chaque caractère de la chaîne étant égal au caractère *
    """
    ch='*'*25
    ch=ch+'\n'
    ch=ch*20
    print(ch)

ou bien :

# -*- coding: utf-8 -*-
def CielEtoile():
    """
    fonction affichant une chaîne de longueur 10,
    chaque caractère de la chaîne étant égal au caractère *
    """
    print(('*'*25+'\n')*20)

#Programme principal
CielEtoile()

Carré d'étoiles.

Écrire un programme qui :

  1. demande à l'utilisateur d'entrer une ligne d'étoiles,
  2. puis affiche un carré d'étoiles, le côté du carré étant donné par la ligne d'étoiles de l'utilisateur.

Par exemple, si l'utilisateur rentre ***, le programme devra afficher :

*** 
***
***

Résolution de l'exercice "Carré d'étoiles".

Première solution.

# -*- coding: utf-8 -*-
def CarreEoile():
    """
    fonction demandant une ligne d'étoiles et affiche un carré d'étoiles.
    """
	texte=input("Entrez une ligne d'étoiles : ")
    longueur_cote=len(texte)
	texte=texte+'\n'
	print(texte*longueur_cote)

#Programme principal
CarreEoile()

Seconde solution.

# -*- coding: utf-8 -*-
def CarreEoile():
    """
    fonction demandant une ligne d'étoiles et affiche un carré d'étoiles.
    """
    texte=input("Entrez une ligne d'étoiles : ")
    for x in texte:
        print(texte)

#Programme principal
CarreEoile()

Mot étoilé.

Écrire une fonction, de paramètre un mot, qui affiche ce mot en intercalant * entre chaque lettre du mot.

Par exemple, si l'argument de la fonction est le mot python, le programme devra afficher :

p*y*t*h*o*n 

Résolution de l'exercice "Mot étoilé".

Première solution.

# -*- coding: utf-8 -*-
def motEtoile(mot):
    """
    fonction, de paramètre un mot, qui affiche ce mot en intercalant * entre chaque lettre du mot.
    """
    ch='' # sch est initialisée à la chaîne vide
    for x in mot :
        ch=ch+x+'*'  # on ajoute à ch chaque caractère suivi d'une étoile
    ch=ch[0:len(ch)-1] # on coupe ainsi le dernier caractère : c'est une étoile (en trop)
    print(ch)

#Programme principal
motEtoile("Python")

Seconde solution.

# -*- coding: utf-8 -*-
def motEtoile(mot):
    """
    fonction, de paramètre un mot, qui affiche ce mot en intercalant * entre chaque lettre du mot.
    """
    ch=''
    for k in range(0,len(mot)-1) :
        ch=ch+mot[k]+'*'   # on ajoute chaque caractère, sauf le dernier, suivi d'une étoile
    ch=ch+mot[len(mot)-1] # on ajoute le dernier caractère de ch
    print(ch)

#Programme principal
motEtoile("Python")

Répétition prévue.

Écrire une fonction, de paramètre un mot et un entier ayant un nombre de chiffres égal au nombre de lettres du mot, qui affiche des lignes de caractères sur le modèle de l'exemple ci-dessous.

Si l'utilisateur entre python puis 213142. La fonction devra afficher :

pp
y
ttt
h
oooo
nn

Les chiffres de l'entier entré donneront donc le nombre de répétitions de la lettre ayant le même rang dans le mot.

Résolution de l'exercice "Répétition prévue".

# -*- coding: utf-8 -*-
def repetitionPrevue(mot,n):
    """
    fonction, de paramètre un mot et un entier ayant un nombre de chiffres égal
    au nombre de lettres du mot, telle que Les chiffres de l'entier entré donneront donc le nombre de répétitions
    de la lettre ayant le même rang dans le mot.
    """
    assert(len(mot)==len(str(n)))
    for j in range(0,len(mot)):
        print(mot[j]*int(str(n)[j]))

#Programme principal
repetitionPrevue("Python",231524)

Triangle étoilé.

Écrire une fonction de paramètre un entier naturel n > 0, puis affiche un triangle d'étoiles, suivant le modèle des exemples ci-dessous.

Avec n=4 :

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

Avec n=7 :

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

Le triangle comporte donc n lignes, la première compte une étoile, chaque ligne compte deux étoiles de plus que la précédente.

Résolution de l'exercice "Triangle étoilé".

Notons u(j) le nombre d'étoiles de la ligne j :
le triangle comporte n lignes, la première compte une étoile, chaque ligne compte deux étoiles de plus que la précédente.

La suite u est donc arithmétique de raison 2. On en déduit facilement l'expression de u(j) : u(j)=2j-1.

La dernière ligne compte donc u(n)=2n-1 étoiles. Chacune des lignes précédentes compte donc un nombre total de blancs (espaces) égal à (2n-1)-(2j-1)=2(n-j).

La ligne j (1≤ j ≤ n) est donc ainsi constituée :

  1. n-j espaces
  2. puis 2j-1 étoiles
  3. puis n-j espaces.
# -*- coding: utf-8 -*-
def triangleEtoile(n):
    """
    fonction, de paramètre un entier naturel non nul n,
    qui affiche un triangle comporte donc n lignes,
    la première compte une étoile,
    chaque ligne compte deux étoiles de plus que la précédente.
    """
    assert(type(n)==int and n >= 0)
    for j in range(1,n+1) :
        for k in range(n-j) :print(' ',end='')
        for k in range(2*j-1) : print('*',end='')
        for k in range(n-j) : print(' ',end='')
        print()

#Programme principal
triangleEtoile(8)

Autre version :

# -*- coding: utf-8 -*-
def triangleEtoile(n):
    """
    fonction, de paramètre un entier naturel non nul n,
    qui affiche un triangle comporte donc n lignes,
    la première compte une étoile,
    chaque ligne compte deux étoiles de plus que la précédente.
    """
    assert(type(n)==int and n >= 0)
    triangle=''
    for j in range(1,n+1) :
        ligne=' '*(n-j)+'*'*(2*j-1)+' '*(n-j)
        triangle+=ligne+'\n'
    print(triangle)

#Programme principal
triangleEtoile(8)