Seite 1 von 1

j/n Abfrage für einen Rechner

Verfasst: Freitag 12. Februar 2010, 01:06
von Bierlaune
Hallo wie im Titel schon zu lesen benötige ich eine Abfrage in der nur j/n gülltig ist. Ich habe schon viel rumprobiert mit is, in oder .alpha aber das ist nicht das Richtige für meine Abfrage gewesen, hoffe ihr könnt mir weiter helfen.
Damit probiere ich es zur Zeit, aber die Funktioniert leider nicht.
Wenn etwas falsches eingegeben wurde, sollte ein Text kommen in dem steht, "nur j/n eingeben".



beenden='n'
weiter='j'
while True:
beenden=raw_input("Soll das Programm beendet werden?j/n")
if weiter=='n':
print "weiter rechnen"
continue

if beenden=='j':
break
else:
print "Das Programm wird beendet"

Verfasst: Freitag 12. Februar 2010, 01:11
von Matflasch
Habe hier gerade diesen Codeschnipsel rumfliegen. Kannst ihn ja entsprechend anpassen.

Code: Alles auswählen

#!/usr/bin/env python
# -*- coding: utf-8 
#

def askok(prompt, retries=3, complaint=' (y/n)? '):
    while True:
        ok = raw_input(prompt + complaint)
        if ok in ('Y', 'y', 'yes',  'Yes' 'J', 'j', 'ja'): return True
        if ok in ('N', 'n', 'No', 'no', 'nein'): return False
        retries = retries - 1
        if retries <= 0: raise IOError, 'refusenik user'

if __name__ == '__main__':
    askok("Wirklich beenden?")

Verfasst: Freitag 12. Februar 2010, 01:12
von Klip
Du kannst so lange fragen, bis du mit dem Ergebnis zufrieden bist.

Code: Alles auswählen

>>> eingabe = ''
>>> while eingabe not in ('j', 'n'):
	eingabe = raw_input('beenden? j/n ')

	
beenden? j/n a
beenden? j/n w
beenden? j/n dsafkjldsfl
beenden? j/n jkjasldf
beenden? j/n nksadjfl
beenden? j/n j
>>> beenden() if eingabe == 'j' else was_anderes()
EDIT: zu lahm ;D

Verfasst: Freitag 12. Februar 2010, 01:55
von Bierlaune
Danke für die beiden tipps, funktioniert super.