1

ユーザーが入力した入力が単一の文字または単語であり、整数または何もないことを確認しようとしています。有効でないものを入力した場合、単一の文字を入力するまでループに保持する必要があります。これはこれまでのところ私のコードですが、望ましい方法で機能していないようです:

animalcount = 0
animal = 0
data = False
while data == False:
    try:
        letter = str(input("what letter would you like to search for? "))
        data = True
    except:
        print ("please enter a letter, try again.")
    if letter == "":
        print ("please enter an item,try again!")
        data = False
for animal in animallist:
    if letter in animal:
        print(animal)
        animalcount = animalcount + 1
if animalcount == 0:
    print ("That letter cannot be found")
4

2 に答える 2

1

キーボードで入力したものはすべて文字列として完全に機能するため、入力から文字列を作成してもあまり効果はありません。

正規表現を使用して、文字と数字を区別できます。

于 2013-02-07T14:53:14.543 に答える
0

上部にある単純なループを使用することもできます。

import string
letter = None
while not letter or letter not in string.letters:
    letter = str(raw_input("What letter would you like to search for? "))

その後、残りは動作するはずです。

于 2013-02-07T14:58:12.867 に答える