Partage
  • Partager sur Facebook
  • Partager sur Twitter

sous chaine python

Sujet résolu
Anonyme
23 mai 2018 à 14:53:04

•def est_sous_chaine(s1,s2):
 Mais=True
 for index('i')in s2:
 if 0<= index('i')<len(s2) 
for index('j')in s1: 
if 0<= index('j')<len (s1):
s1[j]=s2[i+j] 
Mais=True 
else:
 Mais=False
 def est_prefixe(s1,s2): 
if est_sous_chaine_(s1,s2)==True and i==0 :
return True


bonjour ,

on me demande de réaliser un prédicat est_préfixe qui renvoie un booléen True si la chaine passé en paramètre en premier est un préfixe de la chine passé en second paramètre .

est_préfixe('format',informatique')
False
est_préfixe('info',informatique')
True

on rappelle qu'une chaine de caractère s1 est une sous chaine d'une chaine de caracère s2 s'il existe un indice 0<=i<len(s2)--len(s1) tel que s1[j]=s2[i+j] pout tout j , 0<=j<len(s1)

par exemple la sous chaine 'format' est une sous chaine de la chaine 'informatique' pour l'indice i=2.

lorsque l'indice i est a partir duquelle la chaine s1 apparait comme une sous chaine d'une autre chaine s2 est nul ,on dit que s1 est préfixe de s2 ...

donc j'ai essayer de faire ca mais ca marche pas ,

  • Partager sur Facebook
  • Partager sur Twitter
23 mai 2018 à 15:09:40

Si j'ai bien compris :

def est_sous_chaine(s1,s2):
    return s2.startswith(s1)



Bien sûr ajouter du code pour vérifier que s1 et s2 sont bien des chaînes, toussa...

-
Edité par thelinekioubeur 23 mai 2018 à 15:10:43

  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
23 mai 2018 à 15:18:39

désolé mais j'ai pas compris ce que vous voulez dire
  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
23 mai 2018 à 15:36:58

Dit plutôt ce que tu as vu, et ce que tu as le droit d'utiliser... Les travaux scolaires sont chiants à résoudre, car vous êtes limités qu'à vos cours sans prendre en compte le fait que vous pouvez être autodidactes. Alors que dans un forum de programmation, on souhaite que vous soyez autodidactes. Donc merci de donner les contraintes de ton professeur, pour qu'on puisse t'aider.
  • Partager sur Facebook
  • Partager sur Twitter
23 mai 2018 à 15:37:39

En python, tu as une fonction native String.startswith(AnotherString) qui fait ce que tu veux. A savoir verifier si Stirng commence par AnotherString.

Donc tu peux utiliser cette fonction en ajoutant des tests (de type, ...).

  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
27 mai 2018 à 17:14:11

ca fonctionne parfaitemnt mais j'aimerai bien en utilisant la boucle while :/
  • Partager sur Facebook
  • Partager sur Twitter
29 mai 2018 à 9:42:19

Si tu veux le faire avec une boucle tu peux parcourir l'integralite de la premiere boucle et comparer chaque caractere avec celui a la meme position dans la deuxieme chaine. Si tu trouvves deux caracteres differents tu renvoie faux, si tu as atteint la fin de la premiere chaine tu renvoie vrai.
  • Partager sur Facebook
  • Partager sur Twitter