Python :: Aufgabe #257
7 Lösungen
Namen in Initialen umwandeln
Anfänger - Python
von JKooP
- 29.03.2020 um 15:07 Uhr
Schreibe ein Programm, mit dem es möglich ist, einen beliebig langen Namen (Vorname(n), Nachname(n), Namenszusätze) als Initialen darzustellen.
Ebenfalls sollen durch Bindestrich getrennte Namen einbezogen werden.
Optional soll die Ausgabe sowohl mit Bindestrich als auch in Großbuchstaben erfolgen.
Beispiel:
Karl-Theodor Maria Nikolaus Johann Jacob Philipp Franz Joseph Sylvester Buhl-Freiherr von und zu Guttenberg
--> KTMNJJPFJSBFvuzG
Optional:
--> K-TMNJJPFJSB-FvuzG
--> KTMNJJPFJSBFVUZG oder K-TMNJJPFJSB-FVUZG
Viel Spaß
Ebenfalls sollen durch Bindestrich getrennte Namen einbezogen werden.
Optional soll die Ausgabe sowohl mit Bindestrich als auch in Großbuchstaben erfolgen.
Beispiel:
Karl-Theodor Maria Nikolaus Johann Jacob Philipp Franz Joseph Sylvester Buhl-Freiherr von und zu Guttenberg
--> KTMNJJPFJSBFvuzG
Optional:
--> K-TMNJJPFJSB-FvuzG
--> KTMNJJPFJSBFVUZG oder K-TMNJJPFJSB-FVUZG
Viel Spaß
Lösungen:
Python-Code
#Initialien bestimmen kuerzel_liste = [] name = str(input("Gibt einen Namen ein: ")) print("Soll der Bindestrich beachtet werden? (j/n)") eingabe = str(input()) status = False #Überprüfung der Eingabe while status == False: if eingabe == "j" or eingabe == "n": status = True else: print("bitte ja (j) oder nein (n) eingeben") eingabe = str(input()) #Bei "n" wird der Bindestrich entfernt if eingabe == "n": name = name.replace("-", " ") namen_liste = name.split() # bei "j" soll der Bindestrich beibehalten werden elif eingabe == "j": namen_liste = name.split("-") print(len(namen_liste)) for i in range(1,len(namen_liste)+1,2): namen_liste.insert(i, "-") name = " ".join(namen_liste) print(name) namen_liste = name.split() # Kürzel wird erstellt for i in range(0,len(namen_liste)): kuerzel_liste.append((namen_liste[i])[0]) initialien = "".join(kuerzel_liste) print() print("Die Initialien lauten:",initialien)
Python-Code
import re name = "Karl-Theodor Maria Nikolaus Johann Jacob Philipp Franz Joseph Sylvester Buhl-Freiherr von und zu Guttenberg" liste = re.split(r"[ \-]",name) print(''.join([l[0] for l in liste]))
Python-Code
#!/usr/bin/env python # -*- coding: utf-8 -*- #Aufgabe: #Schreibe ein Programm, mit dem es möglich ist, einen beliebig langen Namen (Vorname(n), Nachname(n), Namenszusätze) als Initialen darzustellen. #Ebenfalls sollen durch Bindestrich getrennte Namen einbezogen werden. #Optional soll die Ausgabe sowohl mit Bindestrich als auch in Großbuchstaben erfolgen. #Beispiel: #Karl-Theodor Maria Nikolaus Johann Jacob Philipp Franz Joseph Sylvester Buhl-Freiherr von und zu Guttenberg #--> KTMNJJPFJSBFvuzG #Optional: #--> K-TMNJJPFJSB-FvuzG #--> KTMNJJPFJSBFVUZG oder K-TMNJJPFJSB-FVUZG #Viel Spaß NAME = 'Karl-Theodor Maria Nikolaus Johann Jacob Philipp Franz Joseph Sylvester Buhl-Freiherr von und zu Guttenberg' def initialen_ermitteln(name): initialen = '' for i, c in enumerate(name): #ersten Buchstaben übernehemn if i == 0: initialen = name[i] #Falls aktueller Buchstabe ein Leerzeichen ist, dann den nächsten Buchstaben übernehmen if c == ' ': initialen = initialen + name[i+1] if c == '-': initialen = initialen + name[i] + name[i+1] #Falls mehrere Leerzeichen im Namen existieren diese nun hier raus löschen return initialen.replace(' ','') print(initialen_ermitteln(NAME))
Ergebnis: K-TMNJJPFJSB-FvuzG
Python-Code
#!/usr/bin/env python # -*- coding: utf-8 -*- #Aufgabe: #Schreibe ein Programm, mit dem es möglich ist, einen beliebig langen Namen (Vorname(n), Nachname(n), Namenszusätze) als Initialen darzustellen. #Ebenfalls sollen durch Bindestrich getrennte Namen einbezogen werden. #Optional soll die Ausgabe sowohl mit Bindestrich als auch in Großbuchstaben erfolgen. #Beispiel: #Karl-Theodor Maria Nikolaus Johann Jacob Philipp Franz Joseph Sylvester Buhl-Freiherr von und zu Guttenberg #--> KTMNJJPFJSBFvuzG #Optional: #--> K-TMNJJPFJSB-FvuzG #--> KTMNJJPFJSBFVUZG oder K-TMNJJPFJSB-FVUZG #Viel Spaß NAME = 'Karl-Theodor Maria Nikolaus Johann Jacob Philipp Franz Joseph Sylvester Buhl-Freiherr von und zu Guttenberg' def initialen_ermitteln(name): initialen = '' for i, c in enumerate(name): #ersten Buchstaben übernehemn if i == 0: initialen = name[i] #Falls aktueller Buchstabe ein Leerzeichen ist, dann den nächsten Buchstaben übernehmen if c == ' ': initialen = initialen + name[i+1] if c == '-': initialen = initialen + name[i] + name[i+1] #Falls mehrere Leerzeichen im Namen existieren diese nun hier raus löschen return initialen.replace(' ','') print(initialen_ermitteln(NAME))
Ergebnis: K-TMNJJPFJSB-FvuzG
Python-Code
name = "Karl-Theodor Maria Nikolaus Johann Jacob Philipp Franz Joseph Sylvester Buhl-Freiherr von und zu Guttenberg" name = name.replace("-", " ") namel = name.split() print(''.join([x[0] for x in namel]))
Python-Code
name = str(input("Gib dein mega-langen Namen ein:> ")) split_name = name.split(" ") for i in range(0, len(split_name)): print(split_name[i][0], end="")
Python-Code
print('## Initialen Konverter ##\n\n') namen = input('Gib deinen kompletten Namen ein: ') geteilter = namen.split() initialengeber = ''.join([i[0] for i in geteilter]) print('\nDeine Initialen lauten: ', initialengeber)