rebonjour
revoici mon code corrigé avec tout ce que l’on a dit .
Je crois qu’il est bon
.y a t il une différence entre ma boucle for et la votre
car je crois que ça fait pareil
j’ai changé n avec i pour ne pas mélanger
for i in range (nbNC):
je suppose que i commence à 0 puis va jusqu’à (nbNC-1) en ajoutant +1 à chaque boucle si on ne lui dit rien et avant et à la fin de la boucle ?
j’ai mis r le recouvrement à 0 pour mieux visualiser si le dessin est bon
et pour ma boucle j’ai écrit
for mini_chaines_nucleotides in range (n,nbNC):
vu que mini_chaines_nucleotides est une suite de lettre et que i est un nombre entier
il y a surement une différence .
donc il y a quand même quelque chose qui ne va pas mais j’ai compris :
si tu entres maintenant AAAACCC AAAACCCCAAAACCCCAAAACCCC
x vaut 4 et y vaut 4
donc tu lui dit va au point ( 4,4) puis va au point ( 4,4) puis va au point ( 4,4)
il me semble que ce n’est pas cela que l’on veut ; on veut qu’il aille à (4,4) puis (8,8)
puis (12,12) puis (16, 16)
c’est pour cela qu’il me semblait qu’il revenait toujours au point de départ
il faudrait maintenant revoir l’énoncé du problème
ben oui , on veut ça :
il faut maintenant ajouter à chaque fois le x d’avant avec le x d’après et idem pour y
est ce difficile ?
#depart code
nbA = nbC = nbG = nbT = TotalNb = NbStepsRight = NbStepsUp = 0
#SeqLength = L = I = InitW = 0
#XEndSegment = YEndSegment = Step = 0.00
from turtle import *
def compte_bases(chaine):
nbA = nbC = nbG = nbT = TotalNb = NbStepsRight = NbStepsUp = 0
for base in chaine :
#elif base i "A":
if base in "A":
nbA +=1
elif base == "C":
nbC +=1
elif base == "G":
nbG +=1
elif base == "T":
nbT +=1
TotalNb +=1
NbStepsRight = nbC - nbG
NbStepsUp = nbA - nbT
return(TotalNb, nbA, nbC, nbG, nbT, NbStepsRight, NbStepsUp )
def dessine_un_segment_adn2(x,y):
showturtle()
#tracer(3,20)
goto(x,y)
#setpos(x,y)
#goto(50,12)
#fd(y)
#setpos(x,y)
hideturtle()
#x1=x
#y1=y
speed(1)
#on entre la chaine
chaine_nucleotides = input("écris ta chaine de nucléotides : ")
#on écrit le code
Lg=longueur_chaine_nucleotides = len(chaine_nucleotides)
print("Lg: " + str(Lg))
n=0
pas=8
r=recouvrement=0
nbNC = Nombre_de_mini_chaines_nucléotides = Lg/(pas-r)
# ou bien nbNC = Lg // (pas - r)
print("nbNC: " + str(nbNC))
# On ne veut pas des derniers nucléotides inférieur à pas
nbNC = int(nbNC)
print("nbNC: " + str(nbNC))
for mini_chaines_nucleotides in range (n,nbNC):
#for i in range (nbNC):
a=n*(pas-r)
b=(n*(pas-r)+pas)
mini_chaines_nucleotides = chaine_nucleotides[a:b]
print(mini_chaines_nucleotides)
#on compte
glu = compte_bases(mini_chaines_nucleotides)
print(glu)
#return renvoie un tuple
TotalNb = glu[0]
nbA = glu[1]
nbC = glu[2]
nbG = glu[3]
nbT = glu[4]
NbStepsRight = glu[5]
NbStepsUp = glu[6]
#x=glu[5]
#y=glu[6]
print("total Nb : " + str(TotalNb) )
print("NBA: " + str(nbA))
print("NBC: " + str(nbC))
print("NBG: " + str(nbG))
print("NBT: " + str(nbT))
print("NBStepsRight: " + str(NbStepsRight))
print("NBStepsUP: " + str(NbStepsUp))
#goto(glu[5],glu[6])
#on dessine
dessine_un_segment_adn2(NbStepsRight,NbStepsUp)
#goto(0,0)
#goto(103,20)
#goto(30,50)
n +=1
#i +=1
print(n)