wie eine raw_input als argument in einer Funktion in python 3
Ich versuche zu schreiben, ein einfaches Programm mit python 3 für die Praxis. Was ich will zu tun ist, zeichnen Sie eine Funktion, die einen Benutzer input()
als argument. Ich habe versucht, das speichern der input()
in eine variable, aber jedes mal wenn ich versuche zu gehen die variable nennt sich selbst Fragen, für die input()
, damit es nicht speichern, nichts. Ich habe auch versucht, so etwas wie dieses:
def function(input('give me a '), input('give me b ')):
# do stuff with the inputs
aber es gibt syntax-Fehler in der Klammer.
Irgendeine Idee, wie man eine Funktion verwenden Benutzer input()
als Argumente?
- Sollten Sie Ihre Beispiel-Programm demonstriert, wie genau Sie auf die Dinge und versuchen, diese zu verarbeiten. Zum Beispiel, Ihre
def function
ist syntaktisch falsch, denn es muss die Liste der argument-Namen — nicht die Maßnahmen durchgeführt.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es hängt davon ab, was Sie zu tun versuchen. Die meisten wahrscheinlich, dass Sie möchten, übergeben Sie die Benutzer-Eingabe für die Funktion nennen, eher als die definition:
Jedoch, wenn Sie wollen, eine Benutzer-Eingabe als Standard-argument einer Funktion, könnte man es so machen:
Den Grund, warum Ihr code löst eine Ausnahme ist, weil der Inhalt in der
()
in einer Funktion definition (im Gegensatz zu einer Funktion nennen, d.h.,function()
) ist die Namen der Parameter, anstatt die an die Funktion übergebenen Argumente. Sie könneninput()
in diesem Teil der Funktionssignatur nur, wenn Sie ordnen es als ein default-Wert zugeordnet werden, die einen parameter-Namen, wie ich oben. In diesem zweiten Anwendungsfall scheint ziemlich seltsam, aber, und jedes mal, wennfunction()
ist es aufgerufen wird übergeben werden den gleichen Argumenten wie Standardwerte, die der Benutzer zuerst eingegeben. Auch wenn es das ist, was Sie tun möchten, sollten Sie wahrscheinlich tun Sie dies:Alternativ, wenn Sie möchten, um ein anderes paar von Eingängen jedes mal, wenn die Funktion aufgerufen wird (dies scheint in der Tat wahrscheinlich jetzt, da ich darüber nachdenke):
def f(a=input()):
ist, dass die default-Argumente werden sofort ausgewertet, wenn die definition der Funktion ausgewertet wird (und nicht als erste genannt oder nichts).def func(a=None):a = input('give me a') if a is None else a; ...
Sollten Sie wissen, dass die Eingänge werden als Zeichenfolgen betrachtet. Wenn Sie verwenden möchten, Ihren Wert, versuchen Sie
int()
im code.