Je sais que .capitalize() met en majuscule la première lettre d'une chaîne de caractères, mais qu'en est-il si le premier caractère est un nombre entier ?
ce
1bob
5sandy
à ce
1Bob
5Sandy
Je sais que .capitalize() met en majuscule la première lettre d'une chaîne de caractères, mais qu'en est-il si le premier caractère est un nombre entier ?
ce
1bob
5sandy
à ce
1Bob
5Sandy
Seulement parce que personne d'autre ne l'a mentionné :
>>> 'bob'.title()
'Bob'
>>> 'sandy'.title()
'Sandy'
>>> '1bob'.title()
'1Bob'
>>> '1sandy'.title()
'1Sandy'
Cependant, cela donnerait également
>>> '1bob sandy'.title()
'1Bob Sandy'
>>> '1JoeBob'.title()
'1Joebob'
c'est-à-dire qu'il ne se contente pas de mettre en majuscule le premier caractère alphabétique. Mais alors .capitalize()
a le même problème, au moins dans la mesure où 'joe Bob'.capitalize() == 'Joe bob'
alors meh.
Si le premier caractère est un nombre entier, la première lettre ne sera pas mise en majuscule.
>>> '2s'.capitalize()
'2s'
Si vous voulez la fonctionnalité, sans les chiffres, vous pouvez utiliser '2'.isdigit()
pour vérifier chaque caractère.
>>> s = '123sa'
>>> for i, c in enumerate(s):
... if not c.isdigit():
... break
...
>>> s[:i] + s[i:].capitalize()
'123Sa'
Cette solution est similaire à la réponse de @Anon dans la mesure où elle permet de conserver le reste de la casse de la chaîne intacte, sans avoir recours au module re.
def sliceindex(x):
i = 0
for c in x:
if c.isalpha():
i = i + 1
return i
i = i + 1
def upperfirst(x):
i = sliceindex(x)
return x[:i].upper() + x[i:]
x = '0thisIsCamelCase'
y = upperfirst(x)
print(y)
# 0ThisIsCamelCase
Comme @Xan l'a fait remarquer, la fonction pourrait utiliser davantage de contrôles d'erreurs (par exemple, vérifier que x est une séquence - cependant, j'omets les cas limites pour illustrer la technique).
Mis à jour par le commentaire de @normanius (merci !)
Merci à @GeoStoneMarten de m'avoir fait remarquer que je n'avais pas répondu à la question ! -J'ai corrigé cela
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.