Seite 1 von 1
Funktion zeigt Ergebnis - Wie weiter benutzen?
Verfasst: Freitag 4. November 2016, 20:27
von NeuINFling
Hallo,
gerade stehe ich vor einem Problem. Ich habe ein Script geschrieben, dass über ein for Schleife einer Funktion ein Ergebnis ausgibt.
Nun möchte ich allerdings mit diesem Ergebnis (result) weiter arbeiten. Ich schaffe es nicht, es als neue Variable zu definieren :K
Wie kann ich nun vorgehen? Ich finde den passsenden print Befehl nicht
einen schönen Freitag Abend
NeuINFling
Re: Funktion zeigt Ergebnis - Wie weiter benutzen?
Verfasst: Freitag 4. November 2016, 20:54
von nezzcarth
Funktionen sind dadurch definiert, dass sie etwas zurückgeben. In Python wird dazu 'return' verwendet. Diesen Rückgabewerte kannst du entweder direkt weiterverarbeiten, oder an einen Namen binden.
Also zum Beispiel:
Code: Alles auswählen
def square(x):
return x**2
# mittelbar
result = square(2)
print(result)
# oder direkt
print(square(2))
Re: Funktion zeigt Ergebnis - Wie weiter benutzen?
Verfasst: Freitag 4. November 2016, 21:07
von NeuINFling
Hallo nezzcarth und Danke für die Antwort!
Ok, so weit so gut. Ich habe gerade versucht deine Tips umzusetzen. allerdings klappt es immer noch nicht, egal was ich in den PrintBefehl schreibe.
Ich habe eine ähnliche Aufgabe, die ich für die Uni erledigen muss. Allerdings möchte ich sie ungern veröffentlichen, daher habe ich simultan ein ähnliches Skript gewählt.
Wie komme ich nun an meine röm. Zahl ran, um sie weiter zu bearbeiten?
Code: Alles auswählen
numeral_map = [(1000, "M"), (900, "CM"), (500, "D"), (400, "CD"), (100, "C"), (90, "XC"),
(50, "L"), (40, "XL"), (10, "X"), (9, "IX"), (5, "V"), (4, "IV"), (1, "I")]
def int_to_rom(i):
result = []
for integer, numeral in numeral_map:
count = i // integer
result.append(numeral * count)
i -= integer * count
return ''.join(result)
Re: Funktion zeigt Ergebnis - Wie weiter benutzen?
Verfasst: Freitag 4. November 2016, 21:11
von BlackJack
@NeuINFling: Das hat Dir nezzcarth doch mit der `square()`-Funktion gezeigt. Mit der `int_to_rom()`-Funktion funktioniert das exakt genau so. Wo liegt dabei Dein konkretes Problem?
Re: Funktion zeigt Ergebnis - Wie weiter benutzen?
Verfasst: Freitag 4. November 2016, 21:21
von NeuINFling
Hi BlackJack,
ich bin mir nicht sicher. Ich glaube, weil ich den Input über eine Eingabe einhole. Ich kann also nicht:
eingeben.
es folgt:
Traceback (most recent call last):
File "C:...", line 19, in <module>
result = int_to_roman()
File "...py", line 6, in int_to_roman
if not (0 < x < 4000):
TypeError: unorderable types: int() < builtin_function_or_method()
mit int_to_roman (Input)
und int_to_roman (x)
und int_to_roman (result)
habe ich alles getest...
Re: Funktion zeigt Ergebnis - Wie weiter benutzen?
Verfasst: Freitag 4. November 2016, 21:32
von S0S
Naja, du musst der Funktion halt einen Wert mitgeben, welcher ein Integer sein muss. Also:
print int_to_rom(23)
oder:
x = 23
print int_to_roman(x)
Re: Funktion zeigt Ergebnis - Wie weiter benutzen?
Verfasst: Freitag 4. November 2016, 21:45
von BlackJack
@NeuINFling: Der gezeigte Fehler kommt sicher nicht wenn Du die Funktion ohne Argument aufrufst, denn dann bricht das schon an der Stelle ab, eben weil das Argument fehlt.
Offensichtlich hast Du dann als Argument `input` (mit kleinem i) als Argument übergeben, was zu der Ausnahme führt weil `input` eine Funktion ist und Python (3) sich weigert festzustellen ob die *Funktion* `input` grösser als die *Zahl* 0 ist. Was ja auch kein sinnvoller Vergleich ist. Du musst der Funktion schon eine *Zahl* als Argument übergeben. Denn nur für eine Zahl macht es Sinn sie als römische Zahldarstellung (dann eine Zeichenkette) darzustellen.