Partie 1. : Exercice sur les fonctions et révisions listes et chaînes de

Partie'1. :'Exercice'sur'les'fonctions'et'révisions'listes'et'chaînes'de'
caractères''
1)
(obligatoire)-Premières-fonctions-
a. Première'fonction#
Ecrire#le#code#d’une#fonction#carre(n) qui#prend#en#argument#un#nombre#n#et#qui#renvoie le#
carré#de#ce#nombre.#
#carre(x) retourne le nombre x au carre
#nombre->nombre
#nombre: float ou int
def carre(x):
return x*x
Utiliser#ensuite#cette#fonction#dans#la#fonction#main#pour#afficher#le#carré#de#4,#puis#stocker#
dans#une#variable#res le#résultat#du#carré#de#11#et#afficher#le#contenu#de#res.#
def main() :
print "Exercice 1"
print carre(4)
res=carre(11)
print res
b. Fonction'appelant'une'autre'fonction.##
Ecrire#un#fonction#cube(n) appelant#la#fonction#carré#et#retournant#le#cube#du#nombre#n.##
Testez#la#dans#le#main
#cube(x) retourne le nombre x au cube
#nombre->nombre
def cube(x):
return carre(x)*x
c. Afficher'≠Retourner#
#Ecrire#une#fonction#carre_affiche(n)#qui#affiche#le#carré#du#nombre#n#mais#ne#le#retourne#
pas.#Est-il#possible#d’utiliser#cette#fonction#dans#la#fonction#cube#à#la#place#de#la#fonction#
carre#pour#calculer#le#cube#de#n ?#
#carre(x) retourne le nombre x au carre
#nombre->
#Ne peut etre utilisé dans cube car ne retourne rien
def carre_affiche(x):
print x*x
2)
(obligatoire)-Portée-des-variables-numériques
-
Ecrire#et#exécuter#le#code#suivant.#Qu'en#concluez-vous#?#
# -*- coding: utf-8 *-*
def fonction(x):
x=2*x
print "x dans la fonction :", x
def main() :
fonction(5)
x=5
fonction(x)
print "x dans le programme principal :", x
if __name__ == '__main__':
main()
Le#programme#affiche#5#car#le#x#de#la#fonction#n'est#pas#le#x#du#main#
3)
-(obligatoire)-Portée-des-variables-de-type-list-
Soit#le#code#python#suivant#:##
# -*- coding: utf-8 *-*
def abs_liste(L):
for i in range(len(L)):
L[i]=abs(L[i])
return L
def main() :
maL=[-1,2,-9.5]
L2=abs_liste(L)
print L2
print maL
Qu’affiche-t-il#?#Pourquoi#la#liste#L#est-elle#aussi#modifiée#?#Comment#faire#pour#qu’elle#ne#le#soit#
pas#?#Corrigez#le#code#pour#que#ce#soit#le#cas.#
La#liste#L#et#la#liste#L2#représente#la#même#liste.#
La#liste#L#est#modifiée#dans#la#fonction.#
Pour#qu'elle#ne#soit#pas#modifiée,#il#faut#en#créer#une#nouvelle#liste#et#retourner#celle-ci#
#abs_liste(L): Retourne une liste des valeurs absolues de L
#[Nombre]->[Nombre>=0]
def abs_liste(L):
Lnew=[]
for i in range(len(L)):
Lnew.append(abs(L[i]))
return Lnew
4)
(entrainement)-Portée-des-variables-de-type-list
-
a. Ecrire#le#code#python#d'un#programme#qui#demande#à#l'utilisateur#un#nombre#entier#n#
et#qui#affiche#la#liste#des#valeurs#de#21#à#2n.#Ces#valeurs#seront#stockées#dans#une#liste,#qui#sera#
remplie# par# une# fonction# liste_puissance(n).# La# liste# sera# initialisée# dans# la# fonction.#
Exemple#d’execution#du#script#dans#le#terminal:#
[bash]python#TP2.py#
Donnez#une#valeur#entière#:#5##
Les#puissances#de#2#sont#:#[2,#4,#8,#16,#32]#
#listePuissanceDe2(n): Retourne la liste de puisse de 2 de 1 à n
#int>0->[int>0]
def listePuissanceDe2(n):
l=[]
k=1
for i in range(1,n+1):
l.append(k)
k*=2
return l
b. Si# l’initialisation# de# la# liste# est# déplacée# dans# le# programme# principal# (main),# faut-il#
passer#la#liste#en#argument#de#la#fonction#?#Peut-on#supprimer#le#return#dans#la#fonction#?#
Il#faut#passer#la#liste#en#argument#et#on#peut#supprimer#le#return.#On#peut#alors#passer#plusieurs#fois#la#même#liste#à#la#
fonction#et#cumuler#des#résultats#dans#celle-ci.#
5)
-(entrainement)-Fonction-retournant-une--chaine-de-caractères-
Ecrire#une#fonction#substituer(s, c1, c2)#qui#remplace#dans#la#chaine#de#caractères#s#toutes#
les# occurrences# du# caractère# s1# par# le# caractère# s2# (sans# utiliser# de# fonction# python).# Par#
exemple#:#
>>> substituer("ATGGGTCGT", "T", "U")
'AUGGGUCGU'
#substituer(s, c1, c2): retourne la chaine de caractères ou tous les caractères
c1 sont remplacés par le caractère c2
#string*caracter*caracter->string
def substituer(s, c1, c2):
s2=""
for c in s:
if c==c1:
s2=s2+c2
else:
s2=s2+c
return s2
6)
-(approfondissement)-Indices-dans-une-chaine-de-caractères
-
1) Ecrire#une#fonction#morceau(s, d, n) qui#permet#d'extraire#n#caractères#à#partir#de#la#
position#d#de#la chaîne#de#caractères#s (sans#utiliser#de#fonction#python).##
Par#exemple#:#
>>>S="ADQLTGGRIAGFLGAFSLFDGDT"
>>>morceau(S,5,2)
'GG'
>>>morceau(S,45,2)
''
#morceau(s, d, n):: retourne la chaine de caractères s mais ou la sous chaine
commencant en d et de longeur n a été supprimée
#string*int*int->string
def morceau(s, d, n):
return s[0:d]+s[d+n:]
2) Ecrire#un#programme#qui#demande#une#chaîne#de#caractères#à#l’utilisateur#et#appelle#la#
fonction# morceau# à# plusieurs# reprises# pour# raccourcir# cette# chaîne# en# enlevant#
alternativement#son#premier#et#son#dernier#caractère.#Vous#pouvez#utiliser#la#fonction#len#Par#
exemple##:#
#[bash]python#TP2_Subs.py#
Entrez#un#texte:#SOURIS##
SOURIS#OURIS#OURI#URI#UR#R#
#Fonction principale, appelant les autres fonctions
def main() :
print "Exercice 1"
print carre(4)
res=carre(11)
print res
print cube(4)
print "Exercice 3"
L=[-1,2,-9.5]
L2=abs_liste(L)
print L2
print L
print "Exercice 4"
#x=input("Donnez une valeur entière")
x=5
print "Les puissance de 2 sont ", listePuissanceDe2(x)
print "EXERCICE 5"
print substituer("ATGGGTCGT", "T", "U")
print "EXERCICE 6"
s="SOURIS"
print s, " ",
while (len(s)>0):
s=morceau(s,0,1)
print s," ",
#if len(s)>0:
s=morceau(s,len(s)-1, 1)
print s," ",
#Appel de la fonction main
if __name__ == '__main__':
main()
1 / 4 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !