2008-12-09 2 views
43

Kennt jemand eine wirklich einfache Methode, nur den ersten Buchstaben einer Zeichenkette zu kapitalisieren, unabhängig von der Groß-/Kleinschreibung des Rests der Zeichenkette?Eine Zeichenkette groß schreiben

Zum Beispiel:

asimpletest -> Asimpletest 
aSimpleTest -> ASimpleTest 

Ich mag wäre in der Lage sein, wie auch alle Saitenlängen zu tun.

Antwort

65

@saua ist richtig, und

s = s[:1].upper() + s[1:] 

wird für jede Saite arbeiten.

+0

Schön! Das sind die kleinen Tricks, die ich nicht kenne ... Ich sollte öfter Python benutzen. –

+1

Warum nicht 's = s [0] .upper() + s [1:]'? Warum das '[: 1]'? – hobs

+7

Wie @saua feststellt, wird 's [0] 'an einer leeren Zeichenfolge fehlschlagen. –

8
s = s[0].upper() + s[1:] 

Dies sollte mit jeder Zeichenfolge arbeiten, mit Ausnahme des leeren String (wenn s="").

+0

schlagen Sie mich dazu, und Ihres ist eleganter. – UnkwnTech

13

Was ist mit your_string.title()?

z.B. "banana".title() -> Banana

+3

'str.title' kapitalisiert jedes _Wort_ in der Zeichenkette –

+0

@John La Rooy ... was genau ich machen wollte, ohne ein neues def zu schreiben, jedes Wort groß zu schreiben und es wieder zusammenzusetzen ... upvote to skyler –

4

dies tatsächlich gibt Ihnen eine aktivierte Wort, statt nur den ersten Buchstaben Kapital

kapitalisieren -> Capitalize

def capitalize(str): 
    return str[:1].upper() + str[1:].lower()....... 
112
>>> b = "my name" 
>>> b.capitalize() 
'My name' 
>>> b.title() 
'My Name' 
+5

Mit der Standard-Bibliothek ist def Weg zu gehen. – Damian

+1

... außer capitalize() entfernt alle anderen vorhandenen Obergrenzen, die der Fragesteller explizit nicht passieren wollte: 'aSimpleTest'.capitalize() =>' Asimpletest ' – pfctdayelise

+1

@pffctdayelise .. sind Sie down voting alle Antworten nicht befriedigend diese Anforderung oder nur meine :)? Aber ich stimme Ihrer Beobachtung zu. Blair Conrads Antwort ist sehr genau. Andere Antworten liefern jedoch einen Mehrwert, indem sie hilfreiche Informationen rund um die Kapitalisierung von Zeichenfolgen präsentieren, einschließlich meiner. Drei von ihnen wurden später als die angenommene Antwort hinzugefügt. – tigeronk2

-4
str = str[:].upper() 

dies ist der einfachste Weg, es zu tun in meine Meinung

+0

Das ist völlig falsch, da es jedes Zeichen der Zeichenfolge in Großbuchstaben konvertiert. Auch das '[:]' ist nutzlos. –

2

für Großbuchstaben ersten Wort;

a="asimpletest" 
print a.capitalize() 

für machen alle String Großbuchstaben verwenden Sie den folgenden Tipp;

print a.upper() 

das ist die einfache, die ich denke.

1

können Sie die str.capitalize() Funktion nutzen zu tun, dass

In [1]: x = "hello" 

In [2]: x.capitalize() 
Out[2]: 'Hello' 

Hoffe, es hilft.