Python :: Aufgabe #184
4 Lösungen
Einfacher Namensgenerator
Anfänger - Python
von Gelöschte Person
- 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)
