2017-09-13 11 views
0

この質問はPython 3.6に関しては聞かれていません。 この場合、データが整数または浮動小数点以外のものとして指定されている場合、一連の入力質問で特定のユーザー入力質問を再入力するソリューションが必要です。Python 3.6で間違ったタイプのデータが与えられた後にユーザー入力を再入力する方法

最初の質問には正しいフロートデータを入力しますが、次に2番目の質問に文字列を入力するとします。これは、 "ValueError:文字列をfloatに変換できませんでした:"という結果を出力します。

整数/浮動小数点型(float)データの入力に失敗したというSECOND入力の質問を再入力するためのループまたは別の方法を使用する方法はありますか?さらに、初めからやり直しをしなくても、最初の質問に再プロンプトするのではなく、2番目の質問だけを再入力できますか?

counter = 0 
counter += float(input("What is number 1?")) 
counter += float(input("What is number 2?")) 
counter += float(input("What is number 3?")) 
print(counter) 

編集:類似の9件の回答を含む投稿記事を読んだが、複数の入力質問を1つずつ順番に処理していない。提供された回答は参考になりましたが、間違ったデータタイプを入力した後も2番目または3番目の質問を再入力する方法はまだまだありません。要約:私は疑問に開始する必要があるユーザーを持つのではなく、失敗した質問を再度促すためのプログラムを希望1.

+0

答えをあなたが見つけた質問はPython 3.6でも有効です。 – roganjosh

+0

オリジナルの質問を編集してより分かりやすくしました。 –

+0

1つの質問を再度プロンプトするために使用される構成は、あなたが望むだけ多くの質問を望む回数だけ繰り返すことができます。 'while'ループの中に質問を入れ、' input'をラップしているループの中に 'try' /' except'を入れ、正しい答えが入力されたら 'while'ループから抜け出す方法が必要です。あなたが必要とするものの100%が重複しているので、それを単一のユースケースに外挿する必要があります。言い換えれば、 'input'をすべて一つの' while'ブロックに入れておかないと、あなたは設定されています。 – roganjosh

答えて

0

この擬似コードのようなものは動作します:へ

for q in questions: 
    while True: 
     ask_question 
     if question_result_validated: 
      break 
関連する問題