Python :: Aufgabe #257

6 Lösungen Lösungen öffentlich

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ß

Lösungen:

vote_ok
von satn1241 (1950 Punkte) - 31.03.2020 um 15:37 Uhr
Quellcode ausblenden 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)
vote_ok
von jigga (4190 Punkte) - 03.04.2020 um 09:32 Uhr
Quellcode ausblenden 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]))
vote_ok
von Asthos (370 Punkte) - 03.04.2020 um 21:40 Uhr
Quellcode ausblenden 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
vote_ok
von Asthos (370 Punkte) - 03.04.2020 um 21:43 Uhr
Quellcode ausblenden 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
vote_ok
von Gisbert5020 (3000 Punkte) - 08.04.2020 um 14:41 Uhr
Quellcode ausblenden 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]))
vote_ok
von dasDa (60 Punkte) - 17.04.2020 um 12:30 Uhr
Quellcode ausblenden 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="")