2016-04-04 5 views
1

特定の条件に対して入力された文字列をテストしたいと思います。この例では、私は変数から文字列は1文字以上の数字を含むようにしたい...Pythonの入力またはraw_inputの後の文字列の検証

while any(inputted.isdigit()) == False: 
    print ("Inputted must contain at least one numeric character") # can't figure this one out 
    inputted = input("Please enter a combination: ") 

理想的な入力が「Boat88Sea」のような文字列になります

任意の助けいただければ幸いです!

+0

入力の種類の例を挙げてください。 '入力されたものの典型例は何ですか – idjaw

+0

理想的な入力は" Boat88Sea "のような文字列になります –

答えて

4

あなたは、入力文字列を反復処理する必要があります。

input_string = "" 
while any(c.isdigit() for c in input_string) == False: 
    print ("the input string must contain at least one numerical character") 
    input_string = input("Please enter a combination: ") 

文字列のいずれかの文字が数字であることが判明した瞬間、whileループは終了します。

また、これはあなたが望むものよりもさらに近くを読むかもしれない:
限り、任意の文字が入力文字列の数字ではないよう...

while not any(c.isdigit() for c in inputted): 
+1

大括弧は必要ありません。リストの代わりにジェネレータを使うことができます。 –

+0

正解、ありがとうございます。私はそれを変更しました - しかし、それは違いが大きいとは思えません。入力が大きくなることはありません。 –

1

をこれよりも間違いなく良い方法はあります

cond = True 
while cond: 
    print ("Inputted must contain at least one numeric character") 
    inputted = input("Please enter a combination: ") 
    for x in range(0,9) : 
     if str(x) in inputted : cond = False 
関連する問題