Archive

Utilisation booknotes

OCM

Bonjour,
je ne comprends pas bien l’utilisation de l’interface booknotes:
voici mon code:
nbgc, nbat,totalnb, index: integer
sequence: character string[1:*]
nbat,nbgc,totalnb <-0
index<-1
sequence<-‘CCTTTTCATTCTGACTGCAACGGGCAATATGTCTCTGTGTGGATTAAAAA#’
repeat
case sequence[index] of
‘G’: nbgc<-nbgc+1
‘C’: nbgc<-nbgc+1
‘A’: nbat<-nbat+1
‘T’: nbat<-nbat+1
endcase
totalnb<-totalnb+1
index<-index+1
until sequence[index]=’#’

display 'pctgc:'(nbgc/totalnb)*100
display 'pctat:'(nbat/totalnb)*100

; lorsque je le compile, il y a une erreur en ligne2:
File “”, line 2
sequence: character string[1:*]
^
SyntaxError: invalid syntax,
je ne pense pas non plus que l’initialisation d’une variable se fasse avec le signe inférieur suivi du - mais je ne sais pas où trouver le b a ba pour commencer, j’ai bien lu qu’au lieu d’écrire display il fallait mettre print mais je n’en suis même pas là…

Merci pour votre aide,

IsabellePoirier

Bonjour OCM,

Ce que tu écris là est du pseudo-code, et non des instructions Python.
As-tu consulté le notebook qui présente les rudiments du langage Python de la section 1.4 ?

OCM

Bonjour Isabelle,
merci pour votre réponse, effectivement c’est mieux avec les rudiments de python; je n’avais pas vu qu’il y avait plusieurs slides…
Du coup j’ai réussi à faire un code qui marche:
/* code python*/
nbGC=0
nbAT=0
nbtot=0
DNA=‘CCTTTTCATTCTGACTGCAACGGGCAATATGTCTCTGTGTGGATTAAAAA’
for i in DNA :
nbtot=nbtot+1
if i==‘G’ : nbGC=nbGC+1
elif i==‘C’ : nbGC=nbGC+1
elif i==‘T’ : nbAT=nbAT+1
elif i==‘A’: nbAT=nbAT+1
print((nbGC/nbtot)*100, (nbAT/nbtot)*100,nbtot)
Mais lorsqu’il s’agit de paramétrer l’histoire sous forme d’une fonction cela ne marche plus, je ne sais pas si vous pouvez m’aider dans ce sens?
/code python avec fonction réutilisable/

def compte_gc_at(DNA):
nbGC=0
nbAT=0
nbtot=0
DNA==’’
for i in DNA :
nbtot=nbtot+1
if i==‘G’ : nbGC=nbGC+1
elif i==‘C’ : nbGC=nbGC+1
elif i==‘T’ : nbAT=nbAT+1
elif i==‘A’: nbAT=nbAT+1

PCTGC=(nbGC/nbtot)*100
PCTAT=(nbAT/nbtot)*100
DNA=‘CCTTTTCATTCTGACTGCAACGGGCAATATGTCTCTGTGTGGATTAAAAA’
resultat=compte_gc_at(DNA)
print(resultat)

j’ai un msg d’erreur qui me dit que DNA n’est pas défini, or je commence en l’initialisant comme une chaine de caractères vide et dans l’exemple sur la fonction triage(x), x n’était pas non plus défini…Une piste peut-être?
Dans tous les cas merci encore

IsabellePoirier

Il n’y a pas lieu d’initialiser la variable DNA à la chaîne vide dans la fonction. DNA est le paramètre passé à la fonction. Chaque fois que tu utilises cet identifiant dans le corps de la fonction, cela fait référence au paramètre passé à la fonction.

C’est un peu difficile de voir ce qui cloche dans ton code vu que l’indentation n’apparaît pas.
Pense à l’insérer entre ``` la prochaine fois.
Essaie en ôtant l’instruction DNA == ‘’ (au passage, == est un opérateur de comparaison ; pour l’affectation, il faut un seul signe =).

OCM

Ok, je vais revoir tout ça.
Merci et bonne soirée