-2
if len(user_hash) > 0:
  with open(log_file, "w") as log_f:
    for name in user_hash:
        log_f.write("Name:%s \n Email: %s" % (name, email)

    else len(user_hash) < 0:
       print "Nothing happened :("

else ステートメントで構文エラーが発生し続けますが、なぜこのエラーが発生し続けるのかわかりません。同じ定義に他のelseステートメントがありませんが、それでもエラーが発生します。私は何をしますか?

4

7 に答える 7

8

Python では、elseステートメントに条件はありません。

if condition:
   do_1()
else:
   do_else()

あなたの場合、別の条件を評価したいので、 の後にifを使用しますelif:

if condition1:
    do_1()
elif condition2:
    do_2()
... # you can have as many elifs as you want
else:
    do_else()

注:ドキュメントをお読みください。

于 2013-05-10T03:22:28.917 に答える
7

log_f.write ステートメントにも末尾の ')' がありません。これはパーサーを混乱させる可能性があり、インデントが正しく見えません。切り貼り問題?

于 2013-05-10T03:15:26.630 に答える
1

elsePython ではそのようなことはできません。あなたがするべきです(あなたのタブが実際に正しいと仮定して):

elif len(user_hash) < 0:

前述のように、閉じた親がありません。

于 2013-05-10T03:15:24.463 に答える
1

elseステートメント で条件を指定することはできません。elseは「その他すべて」を意味します --- つまり、以前の で指定した条件以外のすべてですif。で何を達成しようとしているのかは明確ではありelseませんが、if.

elif(「else if」) の場合もありますが、else前のif句の を意味する場合は、インデントを解除して、 と同じインデント レベルにする必要がありますif。Anifと it's else/elifは、同じインデント レベルで並べる必要があります。

(ステートメントのelse節のforようなものがありますが、それはあなたがここで望んでいるようには見えません。)

于 2013-05-10T03:15:51.423 に答える
1

Python ではforループを使用してのことを行うことができますが、括弧のバランスを取る必要があります。

log_f.write("Name:%s \n Email: %s" % (name, email)

実際にあるべきもの

log_f.write("Name:%s \n Email: %s" % (name, email))

(余分な最後の括弧に注意してください。)

于 2013-05-10T04:51:28.713 に答える