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))
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. –
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