2016-04-17 4 views
-1

私のコードは、単語がリスト内でどの位置にあるかを調べるためのものです。こんにちは私は、データ型がPythonで文字の入力のみが可能で数字の入力が許可されているのかどうか疑問に思っていました。

sentence = input("What is your sentence? ") 
List1 = sentence.split(' ') 
List1 = [item.lower() for item in List1] 
word = input("What word do you want to find? ") 
word = word.lower() 
length = len(List1) 

counter = 0 

while counter < length: 
    if word == List1[counter]: 
     print("Word Found In Position ",counter) 
     counter += 1 
    elif word != List1[counter]: 
     counter += 1 
    else: 
     print("That word is not in the sentence") 

これは私の現在のコードです。しかし、それはまだ数字を受け入れます。 私はそれがここで似た質問であることを知っています:Asking the user for input until they give a valid response 私はそれを自分の既存のコードに適合させる必要があります。リストから

+3

このためのデータ型はありません - 目的が何でありますか?入力の文字を確認し、先に進む前に数字がないことを確認するだけです。数字がある場合は、何らかのエラーを投げたり、新しい入力を要求することができます。 – miradulo

答えて

0

フィルター番号:

List1 = [s for s in List1 if not s.isdigit()] 

かの長さの場合はエラーを発生させる:

[s for s in List1 if s.isdigit()] 

が0より大きい

EDIT

追加されますより良い番号のチェック。

def isdigit(s): 
    """Better isdigit that handles strings like "-32".""" 
    try: 
     int(s) 
    except ValueError: 
     return False 
    else: 
     return True 

CODE YOUに追加

while True: 
    sentence = input("What is your sentence? ") 
    List1 = sentence.split(' ') 
    List1 = [item.lower() for item in List1] 

    # Here is the check. It creates a new list with only the strings 
    # that are numbers by using list comprehensions. 
    # 
    # So if the length of the list is greater then 0 it means there 
    # are numbers in the list. 
    if len([s for s in List1 if isdigit(s)]) > 0: 
     print('You sentence contains numbers... retry!') 
     continue 

    word = input("What word do you want to find? ") 
    word = word.lower() 
    length = len(List1) 

    counter = 0 

    while counter < length: 
     if word == List1[counter]: 
      print("Word Found In Position ",counter) 
      counter += 1 
     elif word != List1[counter]: 
      counter += 1 
     else: 
      print("That word is not in the sentence") 
+0

私は自分のコードにどうやってフィットするのかまだ分かりません... –

+0

私はあなたの助けに感謝しますが、私は比較的新しいコーディングをしています。私のコードを説明する必要がありますが、それが実際に何をしているのか、どこで使うのかは分かりません。 –

+0

@SidharthChaggarコードにチェックを追加しました。私はそれをテストしていない、それを運動と見なす。 – totoro