0
print('''do you wish to access this network''')
VAL= int(input("to entre please punch in the pass word: ")
if VAL is 2214 **:**
      print("welcome")
else:
      print("wrong password, please check retry")
4

4 に答える 4

5

括弧を閉じるのを忘れました:

print('''do you wish to access this network''')
VAL= int(input("to entre please punch in the pass word: "))   # here!
if VAL is 2214:

equalityisを比較したい場合は、演算子の使用を避けることもお勧めします。

is演算子は、同一性を比較します (つまり、同じメモリ位置にある同じオブジェクトです) が、==等しいかどうかを比較します (つまり、これらのオブジェクトは、セマンティクスに従って等しいと見なすことができます)。

実装の詳細(つまり、これらの数値はキャッシュされます)によりis、等しいかどうかをテストするために使用することは、範囲内の整数に対してのみ機能します。他のすべての数値では失敗します。[-5, 256]


コロン自体ではなく、コロンが強調表示される理由について少し詳しく説明します。if

Python では、複数の行に記述するために、すべての式を括弧で囲むことができますが、括弧内にステートメントを入れることはできないことに注意してください。ステートメントの間には明確な違いがあります。

ステートメントには、ループステートメント ( forwhilebreak、)、、continue、代入、関数とクラスの定義などが含まれます。elseif-elif-elsetry-except-finallywithname = value

式は他のすべてです: a + b, object.method(), function_call()...

特定の例では、パーサーは次の行を確認します。

VAL= int(input("to entre please punch in the pass word: ")

これは割り当てステートメントです。右側のVALの値に代入します。したがって、を解析します。この行には閉じ括弧がないため、次の行で解析を続けます。しかし、次の行では次のことがわかります。 int(input(...) ...

if VAL is 2214:

末尾にコロンがあり、式にステートメントを含めることはできないため、これはステートメントです。これが、条件内での代入などを行うことができない理由でもあります。:if (a=100) < 50:

-式(実際には条件式と呼ばれる)も存在するため、if VAL is 2214それ自体はエラーではありません。たとえば、次は有効なpython コードです。if

VAL = int(input("prompt ")
if n % 2 == 0 else input("different prompt "))

ただし、この場合はandの両方を指定する必要があり、条件式内にコロンはありません。ifelse

于 2013-09-05T07:34:39.013 に答える
0

この行の両方の括弧を必ず閉じてください。

VAL= int(input("to entre please punch in the pass word: ")
于 2013-09-05T07:36:41.573 に答える
0

Python 3.x を試しているようですが、行を:で終わらせている理由がわかりません。このように : で終わる必要があります。

print('''do you wish to access this network''')
VAL= int(input("to entre please punch in the pass word: "))
if VAL is 2214:
      print("welcome")
else:
      print("wrong password, please check retry")

行 3 の変更に注意してください。また、行 2 に括弧がないことに注意してください。ユーザーが数字以外を入力すると、int に変換する例外が発生するため、int 変換の代わりに文字列による比較を行うことを検討してください。

私は以下を使用します。

VAL=input("to enter please punch in the password: ")
if VAL=='2214':
  print('welcome')
else:
  print("wrong password, please retry")

最後に、上記のコードを python 2.x で実行するのは危険です。これは、入力が文字列値をキャプチャする代わりに、入力された文字列を実行するためです。

于 2013-09-05T07:48:40.453 に答える