2017-10-30 3 views
0

Also muss ich eine Möglichkeit finden, mehrere Datentypen als Eingabe zu nehmen und sie in Variablen zu speichern. Lets sagt, dass ich drei Variablen habe, soll jeder von ihnen speichert einen festen Datentyp a - float b - str c - intPython 3 nimmt mehrere Datentypen in Eingabe, durch Leerzeichen getrennt

und wenn der Benutzer ein falsches betritt, wird er wieder geben gefragt. Der Benutzer wird alle von ihnen eingeben, durch Leerzeichen getrennt, aber ich kann nicht eine Möglichkeit finden, sie in den Variablen zu speichern, während der Datentyp beibehalten wird. Ich habe es mit .split() versucht, aber es verwandelt sie nur in Strings. Es ist wahrscheinlich etwas ziemlich offensichtlich, aber kann es jetzt nicht herausfinden. Danke im Voraus!

+0

_t wahrscheinlich ist etwas ganz offensichtlich, aber kann es nicht richtig now_ herauszufinden. Wahrscheinlich ja, was hast du probiert? – scharette

+0

müssen Sie jeden von ihnen – yash

+2

werfen Bitte fügen Sie Ihren Versuch in die Frage ein. 'split' transformiert sie nicht in Strings, alle 'input'-Werte sind string,' split() 'hackt den String einfach in andere Strings. – roganjosh

Antwort

-1

Sie sind auf der richtigen Spur, wenn die Funktion split(). Das Problem besteht darin, dass wenn Sie sagen, dass der Benutzer drei durch "" getrennte Werte angibt, Sie eine Zeichenfolge aufnehmen. Folgendes ist ein String: '34 .44 35.45 5 ' Vielleicht, was Sie tun können, ist nach der Verwendung von Split, können Sie jedes zurückgegebene Element in eine Variable umwandeln. Wenn Sie den Typ der Variablen noch überprüfen müssen, können Sie die Funktion type() verwenden.

Hoffe, das hilft!

+0

Ich bin nicht der Downvoter, aber das ist ein bisschen wie ein Trailer zu einem Film. Wenn das OP seinen Code nicht anzeigt und Sie diese Antwort anpassen können, erklärt es nicht viel. – roganjosh

+0

Die Sache ist, ich habe folgendes getan - mit .split(), danach habe ich jeden Typ der Variablen auf die gewünschten geändert. Es funktioniert für eine Weile, aber nehmen wir an, der Benutzer hat einen Wert eingegeben, der nicht dem gewünschten entspricht: Wenn Variable a ein Gleitkomma ist, gibt der Benutzer zum Beispiel eine Zeichenfolge 'w' ein, die ich nicht umwandeln kann schweben. Das ist das Hauptproblem, das ich nicht lösen kann. – zauahiri

+0

@zauahiri In diesem Fall müssen Sie ['try' /' except'] (https://wiki.python.org/moin/HandlingExceptions) verwenden – roganjosh

0

Vielleicht:

def myfucn(vars): 
    vars = vars.split() 
    try: 
     float(vars[0]) 
     if not "." in vars[0]: 
      raise Exception("First var should be INT not Float") 
    except ValueError: 
     print("Error not Float found") 

    try: 
     int(vars[2]) 
    except ValueError: 
     print("Error Int no found") 

    #answer 
    a_float, b_str, c_int = vars 
    print(" Yes ") 

Grüße

+0

'wenn nicht". " in vars [0]: Warum? 'float (vars [0])' wäre bereits fehlgeschlagen. – roganjosh

+0

'cause 'float (" 45 ")', return '45.0' und 45 -> int –

+0

Fairerweise habe ich mich an die Frage zwischen float und int nicht erinnert und konnte die Exception-Meldungen nicht verstehen, bis sie bearbeitet wurden Englisch. – roganjosh

Verwandte Themen