Tirer parti de chaque lettre dans une chaîne de caractères en Python?
J'ai essayé de définir une fonction qui permettra de tirer parti de toutes les autres lettres et aussi prendre de l'espace en accout par exemple:
print function_name("Hello world")
doit imprimer "HeLlO wOrLd" plutôt que "HeLlO WoRlD"
J'espère que cela a du sens. Toute aide est appréciée.
Merci, Oli
- Quel est la différence entre vos exemples?
- Désolé, j'ai tapé dans l'erreur. J'ai édité maintenant. Merci
- montre-nous ton code
- Pouvez-vous élaborer sur "prendre de l'espace en accouut" ?
- Je pense qu'il veut dire les espaces ne devraient pas compter lors de l'alternance entre les minuscules et en majuscules.
- Dans cet exemple, l'espace ne semble pas compter. Si "Bonjour" se termine dans la capitale, l'espace serait "non-capital" et le W serait capital. Donc aparently ce que vous voulez est pour le programme d'éviter de compter les espaces, droit?
- Pouvez-vous nous montrer ce que vous avez essayé jusqu'à présent?
Vous devez vous connecter pour publier un commentaire.
Je pense que c'est un de ces cas où un régulier
for
boucle est la meilleure idée:+=
). La performance est moche. Par exemple, essayez d'appliquer ce la Guerre et de la Paix.Ici est une version qui utilise des expressions régulières:
Exemple:
cap
une liste?global
ounonlocal
.nonlocal
à la place. Il a une liste ici car quelque chose commecap = not cap
dans lerepl()
fonction serait de vous donner une "variable locale référencée avant affectation" erreur, à moins quenonlocal cap
ouglobal cap
ont d'abord été utilisés. Je n'aime pas utiliserglobal
etnonlocal
n'est pas disponible sur Python 2.x. Voir stackoverflow.com/a/8934902/505154repl
définition et lareturn re.sub(...)
vous mettezrepl.cap = False
, et puis changer chaquecap[0]
de référence à l'intérieur derepl
àrepl.cap
.Cela devrait faire l'affaire:
Un (je l'espère élégante) approche récursive: