Vous êtes sur la page 1sur 25

LAMYJeanBaptiste

1/2007

TD/cours2:programmationPython

Cours4:Python,listesetboucles

LAMYJeanBaptiste

1/2007

TD/cours2:programmationPython

Listes

Leslistescontiennentuntableaudedonnes:
patients=["JeanDupont","PaulDubois","MarianneY"]

Ilestpossibledemlangerdestypesdiffrents:
chromosomes_recombines=[1,3,5,12,25,"X"]

Oprations:
printlen(chromosomes_recombines) >6
print[0,1,5]+[2,3]
>[0,1,5,2,3]
printchromosomes_recombines[0]
>1
chromosomes_recombines.append(14)
chromosomes_recombines.remove("X")
chromosomes_recombines.sort()
if"Y"inchromosomes:

print"C'estungaron!"

LAMYJeanBaptiste

1/2007

TD/cours2:programmationPython

Listes

Attention,=necopiepasleslistes!
patients=["JeanDupont","PaulDubois","MarianneY"]
patients2=patients
patients2.remove("JeanDupont")
printpatient2
>["PaulDubois","MarianneY"]
printpatient
>["PaulDubois","MarianneY"]

Pourcopieruneliste:
patients3=patients[:]

LAMYJeanBaptiste

1/2007

TD/cours2:programmationPython

Listes

Exercice
Crerunelisted'ADNvide
adns=[]
AjouterdanscettelistelesADN"atcgta","cct"et"agc"

Afficherlenombred'ADNdanscetteliste

LAMYJeanBaptiste

1/2007

TD/cours2:programmationPython

Listes

Exercice
Crerunelisted'ADNvide
adns=[]
AjouterdanscettelistelesADN"atcgta","cct"et"agc"
adns.append("atcgta")
adns.append("cct")
adns.append("agc")
Afficherlenombred'ADNdanscetteliste
printlen(adns)

LAMYJeanBaptiste

1/2007

TD/cours2:programmationPython

Tuples

Untupleestsimilaireuneliste,maisnepeutpastre
modifi
Ils'critavecdesparenthses()aulieudescrochets[]
patients=("JeanDupont","PaulDubois","MarianneY")

LAMYJeanBaptiste

1/2007

TD/cours2:programmationPython

Boucles

Lesbouclespermettentd'excuterplusieursfoisles
mmesordres
Pourparcouriruneliste:
forvariableinliste:

codedelaboucle

Exemple:
forchromosomeinchromosomes_anormaux:

print"lechromosome",chromosome,"estanormal!"
>lechromosome1estanormal!
>lechromosome3estanormal!
>...
forbaseinadn:

printbase
>a...

LAMYJeanBaptiste

1/2007

TD/cours2:programmationPython

Boucles

range([debut],fin,[pas])permetd'obtenirunelistede
nombre
printrange(10)
>[0,1,2,3,4,5,6,7,8,9]
printrange(4,10)
>[4,5,6,7,8,9]
printrange(4,10,2) >[4,6,8]

Exemple:
foriinrange(10):

printi
>0
>1
>2
>...
>9

LAMYJeanBaptiste

1/2007

TD/cours2:programmationPython

Boucles

Rangepeuttreutilispourbouclersurlesindices,et
nonpassurleslmentsd'uneliste
Exemple:
adn="atcacgtta"
foriinrange(len(adn)):

print"labasen",i,"est",adn[i]
>labasen0esta
>labasen1estt
>labasen2estc
>...
>labasen8esta

LAMYJeanBaptiste

1/2007

TD/cours2:programmationPython

Boucles

Pourbouclertantqu'uneconditionestvrifie:
whilecondition:

codedelaboucle

1estuneconditiontoujoursvraie,breakquittelaboucle

Exemple:
maladies=[]
while1:

nouvelle_maladie=raw_input("Entrezlamaladie:")

ifnouvelle_maladie=="":

break

maladies.append(nouvelle_maladie)
printmaladies

LAMYJeanBaptiste

1/2007

TD/cours2:programmationPython

Boucles

Exercice

Danslasquenceprotiquesuivante(utilisantlecode
internationaldesacidesamins),compterlenombrede
Cystines(codeC)

proteine="CVAPGPMCAWCDSTAC"

LAMYJeanBaptiste

1/2007

TD/cours2:programmationPython

Boucles

Exercice

Danslasquenceprotiquesuivante(utilisantlecode
internationaldesacidesamins),compterlenombrede
Cystines(codeC)

proteine="CVAPGPMCAWCDSTAC"
nb_cysteine=0
foraainproteine:
ifaa=="C":
nb_cysteine=nb_cysteine+1

print"ilya",nb_cysteine,"Cystine"

LAMYJeanBaptiste

1/2007

TD/cours2:programmationPython

Boucles

Exercice

Danslasquenceprotiquesuivante(utilisantlecode
internationaldesacidesamins),compterlenombred'atomesde
soufre

proteine="CVAPGPMCAWCDSTAC"

LAMYJeanBaptiste

1/2007

TD/cours2:programmationPython

Boucles

Exercice

Danslasquenceprotiquesuivante(utilisantlecode
internationaldesacidesamins),compterlenombred'atomesde
soufre
rappel:lesacidesaminssoufrssontlaCystine(C)etla
Mthionine(M)

proteine="CVAPGPMCAWCDSTAC"
nb_soufre=0
foraainproteine:
if(aa=="C")or(aa=="M"):
nb_soufre=nb_soufre+1

print"ilya",nb_soufre,"atomesdesoufre"

LAMYJeanBaptiste

1/2007

TD/cours2:programmationPython

Boucles

Exercice

Surlesprotines,lesanglesdidresphi/psid'unehlicealpha
parfaiteontunevaleurde57et47respectivement,+/30.
Lalistedelistessuivantecontientlesvaleursdephi/psidela
premirehlicedelachane1tfe.crireunprogrammequiteste
pourchacundesrsiduss'ilssontenhliceounon.

angles_diedres=[[48.6,53.4],[124.9,156.7],[66.2,30.8],[58.8,
43.1],[73.9,40.6],[53.7,37.5],[80.6,16.0],[68.5,135.0],
[64.9,23.5],[66.9,45.5],[69.6,41.0],[62.7,37.5],[68.2,
38.3],[61.2,49.1],[59.7,41.1],[63.2,48.5],[65.5,38.5],
[64.1,40.7],[63.6,40.8],[66.4,44.5],[56.0,52.5],[55.4,
44.6],[58.6,44.0],[77.5,39.1],[91.7,11.9],[48.6,53.4]]

LAMYJeanBaptiste

1/2007

TD/cours2:programmationPython

Boucles

Exercice

Surlesprotines,lesanglesdidresphi/psid'unehlicealpha
parfaiteontunevaleurde57et47respectivement,+/30.
Lalistedelistessuivantecontientlesvaleursdephi/psidela
premirehlicedelachane1tfe.crireunprogrammequiteste
pourchacundesrsiduss'ilssontenhliceounon.

forangleinangles_diedres:
phi=angle[0]
psi=angle[1]
if(57.030.0<phi<57.0+30.0)and(47.030.0<psi<47.0+30.0):
print"lersiduestenhlicealpha"
else:
print"lersidun'estpasenhlicealpha"

LAMYJeanBaptiste

1/2007

TD/cours2:programmationPython

Boucles

Exercice

Demanderl'utilisateurd'entrerunechaned'ADNetvrifierque
cettechaneestbienunechaned'ADN,c'estdirequ'elle
contientseulementdes"A",des"T",des"C"etdes"G"

LAMYJeanBaptiste

1/2007

TD/cours2:programmationPython

Boucles

Exercice

Demanderl'utilisateurd'entrerunechaned'ADNetvrifierque
cettechaneestbienunechaned'ADN,c'estdirequ'elle
contientseulementdes"A",des"T",des"C"etdes"G"

adn=raw_input("Entrezlachane:")
forbaseinadn:

if(base!="A")and(base!="T")and(base!="C")and(base!="G"):

print"Cen'estpasunADN!"

break

LAMYJeanBaptiste

1/2007

TD/cours2:programmationPython

Boucles

Exercice

Demanderl'utilisateurd'entrerunechaned'ADNetvrifierque
cettechaneestbienunechaned'ADN,c'estdirequ'elle
contientseulementdes"A",des"T",des"C"etdes"G"

adn=raw_input("Entrezlachane:")
est_un_adn=1
forbaseinadn:

if(base!="A")and(base!="T")and(base!="C")and(base!="G"):

print"Cen'estpasunADN!"

est_un_adn=0

break
ifest_un_adn==1:

print"C'estunADN!"

LAMYJeanBaptiste

1/2007

TD/cours2:programmationPython

Boucles

Exercice

Demanderl'utilisateurd'entrerunechaned'ADNetvrifierque
cettechaneestbienunechaned'ADN,c'estdirequ'elle
contientseulementdes"A",des"T",des"C"etdes"G"

adn=raw_input("Entrezlachane:")
forbaseinadn:

if(base!="A")and(base!="T")and(base!="C")and(base!="G"):

print"Cen'estpasunADN!"

break
else:

print"C'estunADN!"

LAMYJeanBaptiste

1/2007

TD/cours2:programmationPython

Boucles

Exercice

Demanderl'utilisateurd'entrerunelistedenumrosde
chromosome,puisindiquersilapersonneayantces
chromosomesestunhommeouunefemme.

Commentfairepourdemanderl'utilisateurd'entreruneliste?

LAMYJeanBaptiste

1/2007

TD/cours2:programmationPython

Boucles

Exercice

Demanderl'utilisateurd'entrerunelistedenumrosde
chromosome,puisindiquersilapersonneayantces
chromosomesestunhommeouunefemme.

Commentfairepourdemanderl'utilisateurd'entreruneliste?

Crerunelistevide
L'utilisateurentreunpremierchromosome
Tantquelavaleurentreestvalide,onl'ajoutedanslalisteetondemande
d'entrerunnouveauchromosome
Silavaleurentreestvide,lalisteesttermineetonpasselasuite

LAMYJeanBaptiste

1/2007

TD/cours2:programmationPython

Boucles

Exercice

Demanderl'utilisateurd'entrerunelistedenumrosde
chromosome,puisindiquersilapersonneayantces
chromosomesestunhommeouunefemme.

chromosomes=[]
while1:
nouveau_chromosome=raw_input("Entrezunndechromosome:")
ifnouveau_chromosome=="":break
chromosomes.append(nouveau_chromosome)
if"Y"inchromosomes:print"C'estunhomme."
else:print"C'estunefemme."

LAMYJeanBaptiste

1/2007

TD/cours2:programmationPython

Boucles

Exercice

Demanderl'utilisateurd'entrerunelistedenumrosde
chromosome,puisindiquersilapersonneayantces
chromosomesestatteintedetrisomie21.

LAMYJeanBaptiste

1/2007

TD/cours2:programmationPython

Boucles

Exercice

Demanderl'utilisateurd'entrerunelistedenumrosde
chromosome,puisindiquersilapersonneayantces
chromosomesestatteintedetrisomie21.

chromosomes=[]
while1:
nouveau_chromosome=raw_input("Entrezunndechromosome:")
ifnouveau_chromosome=="":break
chromosomes.append(nouveau_chromosome)
nb_21=0
forchromosomeinchromosomes:
ifchromosome=="21":nb_21=nb_21+1
ifnb_21==3:
print"lapersonneestatteintedetrisomie21"