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
Funktion zeigt Ergebnis - Wie weiter benutzen?
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:
Also zum Beispiel:
Code: Alles auswählen
def square(x):
return x**2
# mittelbar
result = square(2)
print(result)
# oder direkt
print(square(2))
-
- User
- Beiträge: 10
- Registriert: Freitag 4. November 2016, 11:55
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?
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)
@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?
-
- User
- Beiträge: 10
- Registriert: Freitag 4. November 2016, 11:55
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...
ich bin mir nicht sicher. Ich glaube, weil ich den Input über eine Eingabe einhole. Ich kann also nicht:
Code: Alles auswählen
result = int_to_roman()
print (result)
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...
@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.
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.