J'espère que tout le monde est en sécurité.
J'essaie de passer sur une corde et de capitaliser chaque première lettre de la chaîne. Je sais que je peux utiliser .Title () mais p>
a) Je veux savoir comment utiliser capitaliser ou autre chose dans ce cas - les bases et p>
b) les chaînes de Les tests, ont des mots avec (') qui rend .Title () confus et capitaliser la lettre après le ('). p> Le problème est que l'interprète me donne " TypeError: Les indices de chaîne doivent être des entiers "même que j'ai une entrée entière dans" Word ". Toute aide? P> merci! P> p>
6 Réponses :
from re import findall def capitalize_words(string): words = findall(r'\w+[\']*\w+', string) for word in words: string = string.replace(word, word.capitalize()) return string This just grabs all the words in the string, then replaces the words in the original string, the characters inside the [ ] will be included in the word aswell
Celui-ci fonctionne comme tout comme .title () l'a fait comme cela m'a donné ce résultat pour le test: "Comment les miroirs peuvent être réels si nos yeux ne sont pas réels" devrait être égal "Comment les miroirs peuvent être réels si nos yeux ne sont pas réels"
Je l'ai mis à jour afin que vous puissiez inclure »et tout autre caractère que vous souhaitez dans la chaîne, vous mettez les personnages à l'intérieur de []
Maintenant, après la modification, cela passait le test, merci beaucoup. Cependant, puis-je utiliser une variable pour indexer une liste? J'essaie de coder uniquement les bases sans l'utilisation de bibliothèques car je viens de commencer à coder>.
ahh, bien ce que vous avez fait de mal a été utilisé comme l'index, vous voulez que la boucle soit pour i dans la plage (len (mots)) avec des mots étant mots = string.split ('') puis utilisez i comme l'index
Oh, l'index doit donc être un personnage afin que l'interprète ne voit pas une chaîne réelle?
Si vous voulez être encore plus épreuve d'erreur, la regex R '(\ w + ['] *) * 'permettra de laisser des mots comme vous tous, mais je ne pense pas que vous vouliez apprendre à l'apprentissage de Regex comme un débutant, mais ils sont incroyablement utiles quand vous les apprenez
Non, l'index doit être un nombre, les mots constitueraient une liste comme ["Hello '," World "] pour que vous passez à travers ce mot de liste pour mot, pas besoin de passer par chaque personnage car il suffit de ne pas avoir besoin .Capitaliser ()
Vous utilisez l'index de chaîne pour accéder à une autre chaîne Solution simple à l'aide de Word code> est une chaîne que vous accédez à
Word code> à l'aide de
chaîne [Word] code> Ceci provoque l'erreur. .
Carte () CODE> P>
def to_jaden_case(string):
return ' '.join(map(str.capitalize, string.split()))
Je viens d'utiliser c, comment peut-on indexer une liste avec une variable alors? dis celui utilisé pour la boucle ..
look, dans votre code de sorte que votre code redressé sera le suivant: p> ici j'ai changé le troisième Ligne pour mot dans la chaîne em> avec pour Word in len (string) em>, la contrepartie vous donne l'index de chaque caractère et vous pouvez les utiliser!
Aussi, j'ai supprimé la ligne Split em>, car il est inutile et que vous pouvez le faire sur une boucle comme len (string) em> p> p> p> p> P>
Donc, pour que quelque chose soit un indice, il doit être défini que dans le dépôt de l'index de la boucle pour la boucle, non?
Je vous recommande de lire des documentations et des exemples de programmes, pour la plupart des cas, ce problème ne sera même pas considéré comme un problème. Et répondre à votre question, le premier paramètre après pour b> mot-clé, vous donne une variable, qui est une entité sur la liste de la variable suivante après le mot clé dans B>, donc dans mon cas la chose La plage (len (chaîne)) vous donnera une liste comme [0,1,2,3 .. Longueur de string] et elle sera substituée et utilisée comme mot variable dans chaque étapes !!
Vous avez une erreur logique dans votre code: Vous avez utilisé Word = len (string.split ()) qui est d'aucune utilité, il existe également un problème dans la logique de boucle pour la boucle.
Essayez ceci ci-dessous: P>
def to_jaden_case(string): appended_string = '' word_list = string.split() for i in range(len(word_list)): new_word = word_list[i].capitalize() appended_string += str(new_word) + " " return appended_string
Pourquoi est-ce quand vous avez utilisé 'i', il n'a pas approprié le TypeError et quand j'ai utilisé le mot, il l'a fait? désolé si sa question idiote. Mille mercis!
pour i dans la plage (len (word_list)) iTère i comme 0,1,2,3 ... jusqu'à sa longueur mais dans votre noeud de cas était une chaîne et non une valeur entière
in la sortie pour pour Word in string: code> Word ira déterrer sur les caractères dans
string code>. Ce que vous voulez faire, c'est quelque chose comme ceci:
to_jaden_case ("ABC def ghi") code> est maintenant
"abcdefghi" code " >, c'est Cammelcase . Je suppose que vous voulez réellement ceci:
"abc def ghi" code>. Pour y parvenir, vous devez faire: P>
def to_jaden_case(string):
appended_string = ''
splitted_string = string.split()
for word in splitted_string:
new_word = word.capitalize()
appended_string += new_word + " "
return appended_string[:-1] # removes the last space.
Vous faites des choses étranges dans le code.
Tout d'abord, vous divisez la chaîne juste pour compter le nombre de mots, mais ne le stockez pas pour manipuler les mots après cela. P>
Deuxièmement, lors de l'itération d'une chaîne avec un J'ai fait un Petit petit extrait pour vous aider à faire ce que vous désirez: p> notes: p> pour code>
dans code>, ce que vous obtenez sont les caractères de la chaîne, pas les mots. P>
w [1:] code> pour obtenir une sous-chaîne du mot actuel qui commence à l'index de caractères 1 et va jusqu'au bout de la chaîne. Ah, ainsi que l'utilisation de paramètres facultatifs dans la liste des arguments de la fonction ... des choses vraiment utiles à apprendre! Si vous ne les connaissez pas déjà. =) li>
ul> p>
C'est la meilleure solution sans utiliser de bibliothèque. Merci. Je viens de commencer et j'ai appris à coder avec C où je peux stocker un entier de la longueur de la chaîne de cette façon, je ne savais pas que cela a provoqué une erreur logique dans Python. Merci beaucoup.
Comment
mot code> est un entier?
pour mot dans la chaîne code> selon votre code
Word code> est un seul caractère dans
chaîne code>
C'est une variable et puis je l'ai attribué un entier avec len (string.split ()), non? Désolé, si j'ai mal compris toute la variable, mais nouvelle à CS.
Pouvons-nous voir un exemple de texte et le résultat attendu?
C'est le résultat que j'ai reçu du test: "Comment les miroirs peuvent être réels si nos yeux ne sont pas réels" devrait être égal "Comment les miroirs peuvent être réels si nos yeux ne sont pas réels" quand j'ai utilisé .Title ()