Funktionen ohne Rückgabewert
Funktionen, die nur Maßnahmen ergreifen, oder etwas tun, ohne einen Wert zurückgibt (zB print
).
def sayHello():
print "Hello!"
und kann verwendet werden (genannt) wie folgt aus::
Funktionen, wie das keinen Wert zurückgeben kann definiert werden
sayHello()
Und der Ausgang sein wird:
Hallo!
Funktionsparameter
Eine Funktion auch Parameter (Variablentyp) vom Anrufer empfangen kann. Es ist besser, es mit einem Beispiel zu demonstrieren.
Eine Funktion, die einen Namen und begrüßt diesen Namen erhält:
sayHelloTo("Yotam")
und der Ausgang wird sein:
Hallo Yotam
kann
def sayHelloTo(name):
print "Hello", name
Es ist wie es genannt werden
Die Parameter sind die der Funktion Eingang.
Funktionen mit einem Rückgabewert
Andere Funktionen, im Gegensatz zu sayHello()
oder sayHelloTo(name)
(das nur etwas tut) können einen Wert zurückgeben. Nehmen wir zum Beispiel eine Funktion, die würfelt (gibt eine Zufallszahl zwischen 1 und 6 zurück). aus zufälligen Import randInt
def rollDice():
result = randint(1, 6)
return result
Das return
Schlüsselwort die output value
der Funktion nur setzt und beendet die Funktion. Ein Beispiel für die Verwendung der rollDice
Funktion sein:
dice = rollDice()
print "The dice says", dice
Wenn die Funktion einen return
Schlüsselwort trifft, es beendet und der Rückgabewert (in unserem Fall die Variable result
) wird anstelle der Funktionsaufruf gesetzt werden. Nehmen wir an randint(1, 6)
hat die Nummer 3 produziert.
Ergebnis wird 3.
Ergebnis wird zurückgegeben.
Nun, statt der Zeile:
dice = rollDice()
wir die Linie behandeln wie:
dice = 3
Funktionen mit Parametern und Rückgabewert
(
rollDice()
mit
3
ersetzt wurde)
Einige Funktionen (z. B. mathematische Funktionen) können Eingänge nehmen und Ausgänge erzeugen. Nehmen wir zum Beispiel eine Funktion, die 2 Zahlen empfängt und die größere ausgibt.
def max(a,b):
if a > b:
return a
else:
return b
Was es tut, ist ziemlich klar, nicht wahr? Wenn a
größer ist, wird der Wert zurückgegeben. Andernfalls wird der Wert b
zurückgegeben.
Nun, Ihr Fall
Was Sie tun möchten, ist
:
Es kann so verwendet werden:
print max(4, 6)
Und der Ausgang wird eine Funktion, die eine Zeichenkette umkehrt. Es sollte 1 Parameter (Eingabe) - die Zeichenfolge, die Sie umkehren möchten, und 1 Wert ausgeben - die umgekehrte Zeichenfolge. Dies kann so erreicht werden:
def reverse_a_string(my_text):
return my_text[::-1]
jetzt du so etwas tun kann:
s = raw_input("Please enter a string to be reversed\n") #input in Python3
r = reverse_a_string(s)
print r
r den umgekehrten Wert von s enthalten wird, und wird gedruckt.
Über Ihre zweite Funktion - nun, ich nehme an, basierend auf dieser Antwort können Sie es selbst machen, aber kommentieren Sie mich, wenn Sie Hilfe mit dem zweiten brauchen.
Lokale Variablen
über Ihr drittes Beispiel:
def reverse_a_string(string):
string = "Hello"
reverse = string[::-1]
print(reverse)
Dies ist etwas, das wirklich wert ist, zu verzögern und Verständnis.
Die Variable reverse
wird zuerst innerhalb der Funktion verwendet. Dies macht es eine lokale Variable.
Dies bedeutet, dass die Variable beim Aufruf der Funktion im Speicher abgelegt wird und nach dem Ende des Aufrufs gelöscht wird. Sie können sagen, dass die Lebensdauer vom Zeitpunkt des Aufrufs der Funktion bis zum Ende der Funktion reicht.
Das heißt, selbst wenn Sie reverse_a_string(string)
angerufen haben, können Sie die Variable reverse
nicht außerhalb der Funktion verwenden, da dies local wäre.
Wenn Sie einen Wert wie das passieren wollen, müssen Sie außerhalb der Funktion Ihre Variable „erklären“ und die globalen Schlüsselwort zu verwenden, wie folgt aus:
reverse = "" #This makes reverse a global variable
def reverse_a_string(string):
global reverse #Stating that we are going to use the global variable reverse
reverse = string[::-1]
# Then you can call it like that:
reverse_a_string("Hello")
print reverse
Der Ausgang
wird
olleH
Obwohl es stark nicht empfohlen es in Python zu tun, oder in jedem oth er Sprache.
Sie müssen einem sehr schlechten Tutorial folgen, man ... Wenn Sie einen Wert an eine Funktion übergeben, wird ihr Inhalt normalerweise nicht sofort durch eine Konstante _replace_ ersetzt.Sie rufen Funktionen einfach wie 'sin (Radiant (30))' oder in Ihrem Fall, ähnlich wie bei 'Druck (Länge ([ "Hallo", "Welt"]))' – ForceBru
nicht klar, was Sie fragen. Ihr erstes Beispiel funktioniert gut. – pvg
@pvg, soweit ich verstehe, er weiß nicht, wie die Funktionen _call _... – ForceBru