2016-04-05 21 views
0

ich versuche, ein Programm zu schreiben, die das Spiel MU vervollständigt https://en.wikipedia.org/wiki/MU_puzzleüberprüfen, ob Zeichenfolge nur bestimmte Buchstaben in Python enthält

im Grunde i mit der Sicherstellung bin fest, dass die Benutzereingabe enthält nur M, U und I Zeichen .

Ich habe

geschrieben
alphabet = ('abcdefghijklmnopqrstuvwxyz') 

string = input("Enter a combination of M, U and I: ") 

if "M" and "U" and "I" in string: 
    print("This is correct") 
else: 
    print("This is invalid") 

ich nur gerade dieses nicht funktioniert realisiert, weil seine nicht exklusiv nur M U und I. kann mir jemand eine Hand geben?

Antwort

1
if all(c in "MIU" for c in string): 

Prüft, ob jedes Zeichen der Zeichenfolge ein von M, I ist, oder U.

Beachten Sie, dass dies eine leere Zeichenfolge akzeptiert, da jeder Charakter ist es entweder ein M, I, oder ein U, da sind einfach keine Zeichen in "jedem Zeichen". Wenn Sie verlangen, dass die Zeichenfolge tatsächlich Text enthalten, versuchen:

if string and all(c in "MIU" for c in string): 
0

Wenn Sie ein Fan von regex sind Sie dies tun können, alle Zeichen zu entfernen, die nicht m sind, u oder i

import re 
starting = "jksahdjkamdhuiadhuiqsad" 
fixedString = re.sub(r"[^mui]", "" , starting) 

print(fixedString) 
#output: muiui 
+0

dank dafür, aber dieses Programm muss neu gestartet werden, wenn ungültige Zeichen eingegeben werden sie nicht einfach entfernen – discord1

0

Ein einfaches Programm, das Ihr Ziel mit primitiven Strukturen erreichen:

valid = "IMU" 
chaine = input ('enter a combination of letters among ' + valid + ' : ') 

test=True 
for caracter in chaine: 
    if caracter not in valid: 
     test = False 

if test :   
    print ('This is correct')  
else:  
    print('This is not valid') 
Verwandte Themen