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 に答える
括弧を閉じるのを忘れました:
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 では、複数の行に記述するために、すべての式を括弧で囲むことができますが、括弧内にステートメントを入れることはできないことに注意してください。ステートメントと式の間には明確な違いがあります。
ステートメントには、ループステートメント ( for
、while
、break
、)、、continue
、代入、関数とクラスの定義などが含まれます。else
if-elif-else
try-except-finally
with
name = 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の両方を指定する必要があり、条件式内にコロンはありません。if
else
この行の両方の括弧を必ず閉じてください。
VAL= int(input("to entre please punch in the pass word: ")
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 で実行するのは危険です。これは、入力が文字列値をキャプチャする代わりに、入力された文字列を実行するためです。