-3
votes

Code Python de base: transformer une phrase en acronyme correspondant

C'est mon premier message et je serais heureux si quelqu'un pouvait m'expliquer pourquoi nous avons besoin de la section result = "" dans le code Python suivant.

C'est un morceau de code de base qui transforme une phrase telle que World Wide Web en WWW.

def initials(phrase):
    words = phrase.split()
    result = ""
    for word in words:
        result += word[0].upper()
    return result


7 commentaires

Que se passe-t-il si vous n'incluez pas result = "" ? À quoi ajouteriez-vous les lettres de l'acronyme?


Bienvenue :) Lors de la publication, vous devez inclure des exemples de ce que vous avez essayé, de ce qui a fonctionné et de ce qui n'a pas fonctionné. Dans ce cas, vous auriez pu tester ce qui s'est passé lors de la suppression de la ligne qui vous intéressait et l'inclure dans votre question.


Duplication de Pourquoi devons-nous déclarer la variable avant de l'utiliser dans certaines langues, mais pas dans d'autres?


Voir aussi stackoverflow.com/questions/10134127/...


Et stackoverflow.com/questions/664294/...


Et enfin: stackoverflow.com/questions/11007627/...


Merci d'envoyer les liens.


3 Réponses :


2
votes

Il agit comme un conteneur temporaire pour les chaînes. Voici une version sans la variable de résultat.

def initials(phrase):
    words = phrase.split()
    return "".join([word[0].upper() for word in words])


1 commentaires

Veuillez utiliser des clôtures de code (`` '') pour marquer votre code source, afin qu'il soit formaté de manière appropriée. Sinon, tout apparaîtra sur une longue ligne. Un autre utilisateur a résolu ce problème pour vous.



2
votes

Le result doit être initialisé car vous y ajoutez quelque chose à chaque itération de la boucle. Considérez ceci:

# Before loop 1
result = ""
# After loop 1
result = "W"
# After loop 2
result = "WW"

L'opérateur += prend le result , ajoute quelque chose et le réassigne au result . Donc, dans votre exemple, ce qui se passe à chaque boucle est:

for word in words:
    result += word[0].upper()

Si vous n'initialisez pas le result , alors l'opérateur += tellement de sens lors de la première itération.


0 commentaires

3
votes

+= in result += word[0].upper() implique que vous essayez d'ajouter un caractère à une chaîne existante, si cette chaîne existante n'est pas prédéfinie, cela générera une erreur.

Il peut également s'écrire comme suit:

result = result + word[0].upper()

Soyez également curieux, essayez d'exécuter le code avec cette partie commentée. Colle mieux lorsque vous en faites l'expérience vous-même.


0 commentaires