"echte Programmierung"?
Ich würde .title() verwenden, und ich bin ein echter Programmierer.
Oder ich würde reguläre Ausdrücke verwenden
re.sub(r"(^|\s)[a-z]", lambda m: m.group(0).upper(), "this is a set of words")
Hier heißt es: "Wenn auf den Textanfang oder ein Leerzeichen ein Kleinbuchstabe folgt" (auf Englisch - andere Sprachen werden wahrscheinlich nicht unterstützt), dann wird bei jeder Übereinstimmung der übereinstimmende Text in Großbuchstaben umgewandelt. Da es sich bei dem übereinstimmenden Text um das Leerzeichen und den Kleinbuchstaben handelt, funktioniert dies einwandfrei.
Wenn Sie es als Low-Level-Code haben wollen, funktioniert das Folgende. Hier lasse ich nur Leerzeichen als Trennzeichen zu (aber vielleicht möchten Sie auch Zeilenumbrüche und andere Zeichen unterstützen). Andererseits ist "string.lowercase" internationalisiert, d.h. wenn Sie sich in einem anderen Gebietsschema befinden, wird es größtenteils trotzdem funktionieren. Wenn Sie das nicht wollen, dann verwenden Sie string.ascii_lowercase.
import string
def title(s):
# Capitalize the first character
if s[:1] in string.lowercase:
s = s[0].upper() + s[1:]
# Find spaces
offset = 0
while 1:
offset = s.find(" ", offset)
# Reached the end of the string or the
# last character is a space
if offset == -1 or offset == len(s)-1:
break
if s[offset+1:offset+2] in string.lowercase:
# Is it followed by a lower-case letter?
s = s[:offset+1] + s[offset+1].upper() + s[offset+2:]
# Skip the space and the letter
offset += 2
else:
# Nope, so start searching for the next space
offset += 1
return s
Um auf meinen Kommentar zu dieser Antwort einzugehen: Diese Frage kann nur eine Übung aus Neugier sein. Echte Namen haben besondere Regeln für die Großschreibung: Das "van der" in "Johannes Diderik van der Waals" wird nie großgeschrieben, "Farrah Fawcett-Majors" hat ein "M", und "Cathal Ó hEochaidh" verwendet das nicht-ASCII-konforme "Ó" und "h", die "Eochaidh" zu "Enkel von Eochaidh" modifizieren.
0 Stimmen
Ich schlage vor, dass Sie den Titel verbessern
0 Stimmen
Echte Programmierer verwenden die ihnen zur Verfügung stehenden Werkzeuge, insbesondere Bibliotheken.
0 Stimmen
Wer will schon ein richtiger Programmierer sein?
2 Stimmen
Echte Programmierer sind manchmal daran interessiert, wie Algorithmen funktionieren. Seine Frage ist durchaus berechtigt.