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:
#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)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]))
#!/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
#!/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
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]))
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="")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)