2017-10-20 11 views
1

Salut, je voudrais savoir comment je peux avoir mon code ci-dessous retourner ce qui suit donné l'entréeretour autre chose que -1 indice

split_sentence("doghellomeyayahell") 

retour

["dog","hellomeyayahell",""] 

au lieu de

['dog', 'hellomeyayahel', 'l'] 

Je sais que le problème est que puisque la chose ne peut pas trouver la chaîne 'hello' il renvoie le -1 index. Si possible, comment pourrais-je faire en sorte que ce qui précède fonctionne? Vous ne pouvez pas le faire renvoyer quelque chose d'autre, vous devez donc tester la valeur de retour.

def split_sentence(s): 
    lst = [] 
    first = s.find('hello') 
    firsts = s[0:first] 
    third = s.find('hello', first +2, len(s)) 
    thirds = s[third:len(s)] 
    second = s[first:third] 
    lst.append(firsts) 
    lst.append(second) 
    lst.append(thirds) 
    return lst 
+0

Pourquoi la deuxième chaîne est "hellomeyayahell"? Si vous divisez vraiment sur "bonjour", la deuxième chaîne devrait être "meyayahell". – ekhumoro

+0

la deuxième partie comprend bonjour qui est pourquoi il regarde du premier au troisième – Kevin

Répondre

0

if third == -1: 
    third = len(s) 
thirds = s[third:] 

Vous pouvez également utiliser try/except avec index:

try: 
    third = s.index('hello', first + 2) 
except: 
    third = len(s) 
+0

Merci beaucoup la déclaration si fonctionne très bien :) – Kevin