检查字符串是否只包含Python中的某些字母

时间:2016-04-05 02:41:15

标签: python algorithm

我正在尝试编写一个完成MU游戏的程序 https://en.wikipedia.org/wiki/MU_puzzle

基本上我坚持确保用户输入只包含M,U和I字符。

我写过

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")

我才刚刚意识到这不起作用,因为它不仅仅是M U和I.我可以帮我一个人吗?

3 个答案:

答案 0 :(得分:1)

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

检查字符串的每个字符是否是M,I或U中的一个。

请注意,这会接受一个空字符串,因为它的每个字符都是M,I或U,而且每个字符中都没有任何字符。"如果您要求字符串实际包含文本,请尝试:

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

答案 1 :(得分:0)

如果您是正则表达式的粉丝,可以执行此操作,删除任何不是m,u或i的字符

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

print(fixedString)
#output: muiui

答案 2 :(得分:0)

使用原始结构实现目标的简单程序:

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')