Seite 1 von 2

Re: Ergebnisse einer Funktion in einer nachfolgenden verwenden?

Verfasst: Freitag 15. März 2019, 19:56
von c.burkes
oder eben:

Code: Alles auswählen

def password_generator():

Re: Ergebnisse einer Funktion in einer nachfolgenden verwenden?

Verfasst: Freitag 15. März 2019, 19:57
von Sirius3
Eine der fünf Varianten, die Du oben gezeigt hast, funktioniert jetzt aber, und oh Wunder, das ist auch die Lösung des Problems.

Re: Ergebnisse einer Funktion in einer nachfolgenden verwenden?

Verfasst: Freitag 15. März 2019, 20:05
von c.burkes
@ Sirius .... verraetst Du mir bitte, welche code-Version?

bei mir liefert am ehesten folgender code ein Ergebnis ....

Code: Alles auswählen

def password_generator(username):
    password = []
    password.append(username[-1] + username[1:])
    return password
  
password_generator(username_generator("Abe", "Simpson"))
print(password_generator)
Jedoch wird auch hier nur "<function password_generator at 0x7f2ddc412c80>" ausgegeben .... und bezieht sich eben immer noch auf Quelle statt Resultat ....

btw ... 0x7f2ddc412c80 konnte ich dazu bei bing auch keine Ergebnisse finden ..... :? .... was hat es damit auf sich?

Re: Ergebnisse einer Funktion in einer nachfolgenden verwenden?

Verfasst: Freitag 15. März 2019, 20:06
von Sirius3
Du rufst `password_generator` auf. Was machst Du mit dem Ergebnis?
Was gibst Du mit `print` aus?

Re: Ergebnisse einer Funktion in einer nachfolgenden verwenden?

Verfasst: Freitag 15. März 2019, 20:10
von __blackjack__
@c.burkes: Die Hexadezimalzahl hat keine weitere Bedeutung die für Dich interessant wäre. Anhand derer könntest Du mehr als eine `password_generator`-Funktion auseinander halten. Du hast ja aber nur eine.

Re: Ergebnisse einer Funktion in einer nachfolgenden verwenden?

Verfasst: Freitag 15. März 2019, 20:10
von c.burkes
also ist hier

Code: Alles auswählen

print(password_generator(username_generator("Abe", "Simpson")))
gefragt und es gibt keine Moeglichkeit, auf den usernamen zuzugreifen *facepalm* got it .... hast Du mir ja jetzt auch zum dritten mal gesagt. :oops: :oops: check

Re: Ergebnisse einer Funktion in einer nachfolgenden verwenden?

Verfasst: Freitag 15. März 2019, 20:12
von c.burkes
Danke fuer Eure Geduld!!

@blackjack ... auch fuer diese Aufklaerung thx :)

Re: Ergebnisse einer Funktion in einer nachfolgenden verwenden?

Verfasst: Freitag 15. März 2019, 20:17
von Sirius3
Wenn Du auf den username zugeifen willst, dann mußt Du halt das Ergebnis von `username_generator` an eine Variable binden.

Re: Ergebnisse einer Funktion in einer nachfolgenden verwenden?

Verfasst: Freitag 15. März 2019, 20:19
von Perlchamp
@ c.burkes:
in Anlehnung an deinem Code kannst du die if-Kontrollstruktur weglassen, wie Sirius3 bereits geschrieben hat:

Code: Alles auswählen

def username_generator(first_name, last_name):
    username = first_name[:3] + last_name[:4]
    return username

print(username_generator('Abe', 'Simpson'))
print()

def password_generator(username):
    password = list()
    password.append(username[-1] + username[1:])
    return password
  
print(password_generator(username_generator('Abe', 'Simpson')))

Re: Ergebnisse einer Funktion in einer nachfolgenden verwenden?

Verfasst: Freitag 15. März 2019, 20:28
von c.burkes
@Sirius @Perlchamp ... gerade getestet .... das ist ja auch richtig nice :) Python erkennt also "zu wenig" Buchstaben selbstaendig dennoch als relevanten Inhalt. Nice. Danke dafuer!!

Re: Ergebnisse einer Funktion in einer nachfolgenden verwenden?

Verfasst: Freitag 15. März 2019, 20:43
von Sirius3
Wenn klar ist, wie viele Elemente eine Liste enthält, schreibt man das am besten mit Eckigen Klammern:

Code: Alles auswählen

def password_generator(username):
    password = [username[-1] + username[1:]]
    return password
so dass man die Variable auch einsparen kann:

Code: Alles auswählen

def password_generator(username):
    return [username[-1] + username[1:]]
Jetzt ist aber eine Liste, die immer exakt ein Element hat, nicht wirklich sinnvoll:

Code: Alles auswählen

def password_generator(username):
    return username[-1] + username[1:]

Re: Ergebnisse einer Funktion in einer nachfolgenden verwenden?

Verfasst: Freitag 15. März 2019, 21:02
von __blackjack__
Und auch wenn es natürlich offensichtlich sein sollte: Das Passwort taugt natürlich nichts, das sollte man durch etwas sinnvolleres ersetzen.