1

ユーザー入力、時には文字列、intなどを呼び出す関数がいくつかあります。そのため、入力なしでENTERを押すとエラーが発生することに気付きました。だから私はいくつかの調査を行い、EVAL関数が私が探しているものである可能性があることがわかったと思いますが、再びその危険性について読みました.

ここに私の質問があります:

  1. ユーザー入力を確認/強制するにはどうすればよいですか? 例: 入力文字列を繰り返したり、何も入力していないことをユーザーに警告したりしますか?

  2. スクリプトがエラーを返すことなく、ユーザーが入力したものに対して入力の正しいタイプ (int、float、string など) をチェックするにはどうすればよいですか?

フィードバックをお待ちしております。

乾杯

4

3 に答える 3

2

質問 1 の場合: 入力を求めるプロンプトが表示されたら、「pressed」と入力すると、空の文字列が返されます (スクリプトで input() を使用していますか?)。どうやら空の文字列は関数の有効な入力ではありません。私が知っている限りでは、入力として何を入力しても、input() によって返される文字列になります。文字列が空かどうかを確認してプロンプトを繰り返すには、次のことを試してください。

while True:
    answer = input('Enter something: ')
    if answer: break

質問 2 について: 提供された引数の型をチェックするために、一般的に Pythonic の方法は、try/except でそれを処理し、有効/無効な型ごとに明示的にチェックしないことです。また、このシナリオでは、文字列から明示的な手動変換を行う必要があるため、文字列の内容のみを確認し、他の型を処理することはありません (少なくともまだ)。そのため、特定の部分文字列が存在するかどうかを確認するための文字列メソッドまたは re (正規表現) モジュールに興味があるかもしれません。

python3.3 の re モジュールと python3.3文字列メソッド その他のバージョンの python の場合は、ページ上部のメニューで適切な値を選択してください。

于 2012-11-22T06:48:14.743 に答える
0

質問の2番目の部分に答えるにはisinstance()、pythonの関数を使用して、変数が特定のタイプであるかどうかを確認できます。

于 2012-11-23T00:39:49.190 に答える