2016-04-08 11 views
0

Ich muss etwas falsch machen, aber ich kann nicht scheinen, um es herauszufinden. Ich versuche, Argumente von einer Funktion zur anderen zu übergeben, aber in meinem Vorübergehen bekomme ich immer "etwas ist undefiniert" und ich kann nicht herausfinden, wie ich es beheben kann.Problem Übergabe Argumente von Funktion zu Funktion Python

def Information(): 
    #for x in range(0,3): 
     #if x==0: 
     # print("first user") 
     #elif x==1: 
     # print("Second user") 
     #elif x==2: 
     # print("Third user") 

     age=int(input("Please enter your age: ")) 
     height=int(input("Please enter your height in inches: ")) 
     eye=input("Please enter your eye color: ") 
     First=input("Please enter your first name: ") 
     Last=input("Please enter your last name: ") 
     Street=input("Please enter your street address: ") 
     City=input("Please enter your city: ") 
     State=input("Please enter your state: ") 
     Zip=int(input("Please enter your zip code: ")) 
     Infile=open('DataFile1.txt', 'a') 
     Infile.write(str(age)+'\n') 
     Infile.write(str(height)+'\n') 
     Infile.write(eye+'\n') 
     Infile.write(First+'\n') 
     Infile.write(Last+'\n') 
     Infile.write(str(Street)+'\n') 
     Infile.write(City+'\n') 
     Infile.write(State+'\n')   
     Infile.write(str(Zip)+'\n') 
     Infile.close()      
def Duplicate(): 
     info=[] 
     with open("DataFile1.txt") as infile: 
      for line in infile: 
        info.append(line) 
     print(info) 
     age2 = info[0] 
     height2 = info[1] 
     eye_color2 = info[2] 
     first_name2 = info[3] 
     last_name2 = info[4] 
     street_address2 = info[5] 
     city2 = info[6] 
     state2 = info[7] 
     zip_code2 = info[8]  
     return(age2,height2,eye_color2,first_name2,last_name2,street_address2,state2,zip_code2) 
def Print(age,height,eye_color,first_name,last_name,street_address,city,state,zip_code): 
     print(last_name, first_name) 
     print(street_address) 
     print(city, state, zip_code) 
     print('Age: ', age) 
     print('Height: ', height) 
     print('Eye Color: ', eye_color) 
def Main(): 
    Information() 
    Duplicate() 
    Print(age,height,eye_color,first_name,last_name,street_address,city,state,zip_code) 


Main() 
+0

Der zurückgegebene Wert von Duplicate() muss an eine Variable gesendet werden. –

+0

Wenn ich es an eine Variable sende, wie kann ich es in meiner zweiten Funktion ausdrucken, die es in dem Format verwendet, in dem es eingegeben wurde? jetzt habe ich es als Duplicate (Sache) gesetzt und ich empfange und Fehler, dass es ein erforderliches Argument fehlt. – shadow

Antwort

0

In der Main() Funktion, die Variablen in Print() nicht definiert ist. Der folgende Code macht die Magie.

args = Duplicate() 
Print(*args) 
+0

funktioniert das args = Duplicate() in meiner Hauptfunktion oder in der Duplicate-Funktion? Ich habe es der Hauptfunktion hinzugefügt und Zeile 61 erhalten, in Main print (* args) TypeError: print() Argument nach * muss eine Sequenz sein, nicht Funktion gut ich hatte einen Tippfehler behoben, und es funktionierte wie ein Champion – shadow

+0

aber jetzt ist es möglich, es so auszudrucken, dass jemand wissen würde, was die Zahlen sind? Beispiel drucken ('Alter:', Alter), – shadow

+0

@shadow Das ist, weil Sie vergessen, city2 in der letzten Zeile in Print() -Funktion zurückzugeben. –

Verwandte Themen