2016-06-15 10 views
0

Wie kann ich einen bestimmten Eingang in Python wieHolen Sie sich einen bestimmten Eingang in Python

variable = input() 
if variable == "Specific input": 
    do stuff 

bekommen muss ich den Eingang eine von zwei Optionen X oder O eine Liste

+0

Können Sie genauer auf Ihre Frage eingehen? Wenn Sie eine Operation nur ausführen möchten, wenn die Eingabe x oder o ist, müssen Sie nach ihnen suchen. –

+0

Was ist falsch an Ihrem Code? Es sollte gut funktionieren. Sie können einen Benutzer nicht dazu zwingen, Ihnen eine bestimmte Eingabe zu geben. Sie können eine 'while'-Schleife verwenden, um zu überprüfen, ob' variable 'eine der Variablen' x 'und' o 'ist, andernfalls werden Sie zur korrekten Eingabe aufgefordert. – SvbZ3r0

Antwort

1

Sein einfaches Beispiel spezifische Variable verwenden: Dies ist einfacher Code zur Konvertierung zwischen Inch-to-cm oder Cm-to-Zoll:

conv = input("Please Type cm or inch?") 
if conv == "cm" : 
    number = int(input("Please Type Your number: ")) 
    inch = number*0.39370 
    print(inch) 
elif conv == "inch": 
    number = int(input("Please Type Your Number?")) 
    cm = number/0.39370 
    print(cm) 
else: 
    print("Wrong Turn!!") 
0

definieren

sagen zu
specific_input = [0, 'x'] 

und so

if variable in specific_input: 
    do awesome_stuff 
0

ich die Frage verstehe, mehr für entsprechenden Eingang auf Looping (wie @ SvbZ3r0 hat im Kommentar darauf hingewiesen). Für einen sehr Anfänger in Python kann es schwierig sein, auch Code von Tutorials zu kopieren, so:

#! /usr/bin/env python 
from __future__ import print_function 

# HACK A DID ACK to run unchanged under Python v2 and v3+: 
from platform import python_version_tuple as p_v_t 
__py_version_3_plus = False if int(p_v_t()[0]) < 3 else True 
v23_input = input if __py_version_3_plus else raw_input 

valid_ins = ('yes', 'no') 
prompt = "One of ({0})> ".format(', '.join(valid_ins)) 
got = None 
try: 
    while True: 
     got = v23_input(prompt).strip() 
     if got in valid_ins: 
      break 
     else: 
      got = None 
except KeyboardInterrupt: 
    print() 

if got is not None: 
    print("Received {0}".format(got)) 

entweder unverändert Python v2 und v3 Sollte funktionieren (es gab keinen Hinweis darauf, in Frage und Eingang() in Python v2 Macht keine gute Idee sein ...

den obigen Code in Python Laufe 3.5.1:

$ python3 so_x_input_loop.py 
One of (yes, no)> why 
One of (yes, no)> yes 
Received yes 

über Control-C Ausbrechen:

$ python3 so_x_input_loop.py 
One of (yes, no)> ^C 

Wenn es klar ist, auf welche Version laufen, sagen Python v3, als der Code könnte so einfach sein wie:

#! /usr/bin/env python 

valid_ins = ('yes', 'no') 
prompt = "One of ({0})> ".format(', '.join(valid_ins)) 
got = None 
try: 
    while True: 
     got = input(prompt).strip() 
     if got in valid_ins: 
      break 
     else: 
      got = None 
except KeyboardInterrupt: 
    print() 

if got is not None: 
    print("Received {0}".format(got)) 
0

Die einfachste Lösung wäre:

variable = input("Enter x or y") acceptedVals = ['x','y'] if variable in acceptedVals: do stuff

Oder wenn Sie möchten den Benutzer für die richtige Verwendung eine while-Schleife weiterleiten acceptedVals = ['x','y'] while variable not in acceptedVals variable = input("Enter x or y") do stuff

Verwandte Themen