Archive

Exercice 2

trx337

pour cet exercice , j’ai trouvé ceci et ça a l’air de fonctionner
je suis tenté de vous le montrer
peut etre devrais-je l’effacer pour que d’autres cherchent plutôt que copient ?

#S = “LEWYFHWRYLPS#”
S = “LEWYFHWRCLPS#”

Position = 0
PremiereOccurence = “C”
i=0
proteine = S[i]

while proteine != “#”:

    if proteine ==  PremiereOccurence:
    position = i+1
    
    break
elif proteine !=  PremiereOccurence:
    #print (proteine)
    position = 0

proteine = S[i + 1]
i += 1

print ("position = : ",position)
print ("fin ")

IsabellePoirier

Bonjour trx337,

Si ton instruction conditionnelle teste si le caractère est égal au caractère PremiereOccurence, il n’est pas utile d’utiliser ensuite une instruction elif pour tester le contraire. Un simple else suffira.

if proteine ==  PremiereOccurence:
    ...
else:
    ...

Par ailleurs, il n’est pas nécessaire de “remettre” Position à zéro dans cette clause. Si le programme arrive dans la clause elif (ou else), c’est que la condition du if précédente n’était pas vérifiée et donc les instructions correspondantes n’ont pas été exécutées. Donc Position vaut 0 comme initialement.

trx337

merci

GheKha

bonjour
Puisque je me suis formé à Python avec Isabelle… ma proposition:

a tester ‘LEWYFHWRYLPS#’

y trouver ‘V’, ‘G’, ‘Y’, ‘L’, ‘#’

def position(texte, carac):
if carac in texte:
return texte.find(carac)+1
else:
return 0

texte = ‘LEWYFHWRYLPS#’

for i in [‘E’, ‘G’, ‘Y’, ‘L’, ‘#’]:
print(f’Position de {i} dans {texte} : {position(texte,i)}’)

IsabellePoirier

Bonjour Gilles,

Et ravie de te retrouver ici.

En fait, tu pourrais même éviter de faire le test if carac in texte.
En effet, si le caractère n’est pas présent dans la chaîne de caractères, la méthode find retourne la valeur -1.
Tu peux donc te contenter de retourner texte.find(carac)+1 dans tous les cas.

GheKha

Bonjour
OUI … excellente et élégante façon de programmer ça
Encore merci pour ce conseil