1
stop = False
text_count = 0
while stop is False:
    int_string = input("What is the initial string? ")
    int_string = int_string.lower()
    for a in int_string:
        for a in b:
            text_count += 1
    if text_count < 3:
        print("Error: string must have at least 3 characters.")
    elif len(int_string) != 'X' or len(int_string) != 'x' or len(int_string) != '_':
        print("Error: string must contain only X and _.")

この文字列は 3 文字以上の長さで、文字 'X'、'x'、または '_' (アンダースコア) のみで構成されている必要があります。大文字と小文字も区別されません。

4

2 に答える 2

2

それをオブジェクトに変換し、set許可する文字セットと比較できます。

while not stop:
    int_string = input("What is the initial string? ").lower()

    if len(int_string) < 3:
        print("Error: string must have at least 3 characters.")
    elif set(int_string) <= {'x', '_'}:
        print("Error: string must contain only X and _.")

a <= bの省略形ですa.issubset(b)

于 2013-03-14T02:15:58.137 に答える
1

もう1つのオプションがあります:

while not stop:
    int_string = raw_input("What is the initial string? ").lower()   
    if len(int_string) < 3:
        print("Error: string must have at least 3 characters.")
    elif any(ch not in ('x', '_') for ch in set(int_string)):
        print("Error: string must contain only X and _.")
于 2013-03-14T02:21:40.410 に答える