Python :: Aufgabe #184
4 Lösungen

Einfacher Namensgenerator
Anfänger - Python
von Exception
- 30.05.2018 um 15:23 Uhr
Schreibe ein Programm, welches zwei Textdateien (zb Vorname.txt, Nachname.txt) Zeile für Zeile in ein Array lädt.
Gebe dann eine zufällige Kombination aus Vornamen und Nachnamen aus.
Gebe dann eine zufällige Kombination aus Vornamen und Nachnamen aus.
Lösungen:
Einfache Funktion falls Namen im txt File mit einem Leerzeichen getrennt sind.
Python-Code

from random import randint #Einlesen der Daten vornamen_file = open('Vorname.txt') vornamen_liste = vornamen_file.read().split() nachnamen_file = open('Nachname.txt') nachnamen_liste = nachnamen_file.read().split() #Prüfung ob eine der Listen leer ist, wenn nein printe zufällige Namenskombination. if len(nachnamen_liste) != 0 and len(vornamen_liste) != 0: rand_vorname = randint(0, len(vornamen_liste)-1) rand_nachname = randint(0, len(nachnamen_liste)-1) print(vornamen_liste[rand_vorname] , nachnamen_liste[rand_nachname] ) else: print("Keine Vornamen oder Nachnamen vorhanden")

# -*- coding: utf-8 -*- # Python 3.7 import random def listerz(datei): d = open(datei) liste=[] for zeile in d: liste.append(zeile.rstrip("\n")) d.close() return liste lvornam = listerz("Vorname.txt") lnachnam = listerz("Nachname.txt") random.shuffle(lvornam) random.shuffle(lnachnam) v=len(lvornam) n=len(lnachnam) x=v if v>n: x=n for i in range(x-1): print(lvornam[i],lnachnam[i])

import random as r vor_txt = open("vorname.txt") nach_txt = open("nachname.txt") vornamen = vor_txt.read().split("\n") nachnamen = nach_txt.read().split("\n") print(r.choice(vornamen) + " " + r.choice(nachnamen))

#!/usr/bin/python # -*- coding: iso-8859-15 -*- import random random.seed() vornamen=[] vorfile = open("vornamen.txt", "r") for line in vorfile: vornamen.append(line.strip(" \t\n\r")) vorfile.close nachnamen=[] nachfile = open("nachnamen.txt", "r") for line in nachfile: nachnamen.append(line.strip(" \t\n\r")) nachfile.close anz=int(input("Wieviele Namen sollen generiert werden?")) for i in range(anz): vor=vornamen[random.randint(0,len(vornamen)-1)] nach=nachnamen[random.randint(0,len(nachnamen)-1)] print(vor+" "+nach)