2016-06-19 4 views
-1

私の宿題の一部をプログラミングしている間に、自分のプログラムにバリデーションを組み込むことにしました。しかし、.isalpha()コマンドを使用して検証を追加している間に、その中に文字を含む文があるとき、数字を入力するときにエラーメッセージが表示されます。申し訳ありませんが、私のすべてのプログラムを表示することはできませんが、私は.isalpha()コマンドが動作するかどうかテストするようにプログラムされたテストベッドを用意しました。テストデータは、いくつかのテスト例の1つPython、文字の使用時に無効なステートメントを返すisalpha()ですか?

word = input("enter a word") 
if word.isalpha(): 
    print("Word accepted") 
else: 
    print("Invalid letters only") 
+0

を行うことができ、あなたの入力は何ですか? –

+0

これは、あなたが 'word 'のために入力したものを教えない限り答えにくいです –

+0

テストデータが入力されました=いくつかのテスト例の1つ – stackoverflow1

答えて

2

=入力された複数の単語を入力する場合は、あなたの入力内の非アルファベット文字(入力"testing example one of several"の場合はスペース)があります。それらはisalphaが失敗する原因となります。

また、あなたのエラーメッセージは誤解を招きます.1つのアルファ以外の文字は、「無効な文字のみ」ではなく、エラーを引き起こすのに十分です。

In [1]: "Hello".isalpha() 
Out[1]: True 

In [2]: "Hello Hello".isalpha() 
Out[2]: False 

In [3]: "Lotsoflettersandonedigit1".isalpha() 
Out[3]: False 

あなたが入力中のスペースだけでなく(ただし、句読点や数字または他の非文字の文字)を許可したい場合は、あなたが

if all(s.isalpha() for s in word.split()): 
関連する問題