Ergebnisse einer Funktion in einer nachfolgenden verwenden?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
c.burkes
User
Beiträge: 58
Registriert: Montag 4. Februar 2019, 11:38

oder eben:

Code: Alles auswählen

def password_generator():
Sirius3
User
Beiträge: 17710
Registriert: Sonntag 21. Oktober 2012, 17:20

Eine der fünf Varianten, die Du oben gezeigt hast, funktioniert jetzt aber, und oh Wunder, das ist auch die Lösung des Problems.
c.burkes
User
Beiträge: 58
Registriert: Montag 4. Februar 2019, 11:38

@ 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?
Zuletzt geändert von c.burkes am Freitag 15. März 2019, 20:06, insgesamt 1-mal geändert.
Sirius3
User
Beiträge: 17710
Registriert: Sonntag 21. Oktober 2012, 17:20

Du rufst `password_generator` auf. Was machst Du mit dem Ergebnis?
Was gibst Du mit `print` aus?
Benutzeravatar
__blackjack__
User
Beiträge: 13003
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@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.
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
c.burkes
User
Beiträge: 58
Registriert: Montag 4. Februar 2019, 11:38

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
c.burkes
User
Beiträge: 58
Registriert: Montag 4. Februar 2019, 11:38

Danke fuer Eure Geduld!!

@blackjack ... auch fuer diese Aufklaerung thx :)
Sirius3
User
Beiträge: 17710
Registriert: Sonntag 21. Oktober 2012, 17:20

Wenn Du auf den username zugeifen willst, dann mußt Du halt das Ergebnis von `username_generator` an eine Variable binden.
Benutzeravatar
Perlchamp
User
Beiträge: 172
Registriert: Samstag 15. April 2017, 17:58

@ 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')))
wer lesen kann ist klar im Vorteil ;-)
es gibt keine Probleme, sondern nur Lösungen !
Bildung ist die Freude auf mich selbst !
c.burkes
User
Beiträge: 58
Registriert: Montag 4. Februar 2019, 11:38

@Sirius @Perlchamp ... gerade getestet .... das ist ja auch richtig nice :) Python erkennt also "zu wenig" Buchstaben selbstaendig dennoch als relevanten Inhalt. Nice. Danke dafuer!!
Sirius3
User
Beiträge: 17710
Registriert: Sonntag 21. Oktober 2012, 17:20

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:]
Benutzeravatar
__blackjack__
User
Beiträge: 13003
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Und auch wenn es natürlich offensichtlich sein sollte: Das Passwort taugt natürlich nichts, das sollte man durch etwas sinnvolleres ersetzen.
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
Antworten