質問: pythonで質問があります。 いま現在pythonでちょっとしたメールフォームを作っているのですが、 ちょっと問題が発生しました。 メールフォームには、名前やメールアドレス、電話番号とともに テキストエリア で複数行に
回答: どんなプログラムかしらないですが、空行があるとエラーになるような処理をしているんでしょう。 そのフォームを処理するプログラムの問題であってpython自体は関係ないですね。 追記 > %演算しで複数の%sを変数内に入れていたのをひとつの変数にひとつの%sというふうにしたら動きました。 %演算は引数の数と置換文字の数が合っていないとエラーになるんで、おそらくはそれが起きてたんでしょう。 たぶんもともとは、置換文字に対して引数が少ない TypeError: not enough arguments for format string か、その逆の TypeError: not all arguments converted during string formatting が起きてたんだと思います。 もしそうじゃないなら、%演算じゃなくて%演算に渡す引数を生成する処理で何らかのエラーになっていたのでしょう。 いずれにせよ原因(何が悪かったのか)はきちんと解明した方が良いです。 message = "%s : %s: .... " % tuple(a.replace(xxxx,yyyy).split(ccc) ...... ) みたいに%演算と同じ行で引数の生成をやってるなら、下みたいに引数の生成と%演算を別にしてデバッグメッセージなどを間にはさむことで、引数の生成か、%演算のどっちでエラーになっているかを判断できますし、引数の要素数も分かるので原因を絞り込めます。 msg_args = tuple(a.replace(xxxx,yyyy).split(ccc) ...... ) print "this is debug message : ", len(msg_args) message = "%s : %s: .... " % msg_args また、実際のコードから、エラーを起こすための必要最小限な簡易なコードに落とせるようになることも重要です。 質問するときに的確でそのものずばりな回答を得やすくなりますから。