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")
答案 0 :(得分: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:
如果您想比较相等,我还建议您避免使用is
运算符。
is
运算符比较标识(即它是相同的对象,在同一个内存位置),而==
比较相等(即这些对象,根据它们的语义学,可以认为是平等的。)
使用is
来测试相等性仅适用于{em>实现细节范围内[-5, 256]
范围内的整数(即这些数字被缓存)。所有其他数字都失败了。
要扩展一下冒号突出显示的原因,而不是if
本身:
请记住,在python中,您可以将每个表达式括在括号之间,以便将它写成多行,但是您不能将语句放在括号内。 有一个明确的distinction between statements and expressions。
语句包括循环语句(for
,while
,break
,continue
,else
),if-elif-else
,{{1} },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
- 表达式(实际上称为conditional expression)。
例如,以下是有效的 python代码:
if
但是在这种情况下,必须同时指定VAL = int(input("prompt ")
if n % 2 == 0 else input("different prompt "))
和if
,并且条件表达式中没有冒号。
答案 1 :(得分:2)
第一个错误是你忘了关闭)
,因为@Bakuriu指出:
VAL= int(input("to entre please punch in the pass word: "))
第二个错误是您使用is
来比较数字,这是比较数字的错误方法。 is
用于标识a is None
或a is a
等内容。对于数字,它仅适用于256
下的小数字:
>>> a = 10
>>> b = 10
>>>
>>> a is b
True
>>>
>>> a = 256
>>> b = 256
>>>
>>> a is b
True
>>>
但在此数字之上,它将返回False
:
>>> a = 257
>>> b = 257
>>>
>>> a is b
False
>>>
您应始终使用==
来比较数字。
答案 2 :(得分:0)
确保在此行上关闭两个括号。
VAL= int(input("to entre please punch in the pass word: ")
答案 3 :(得分: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行上缺少的paren 另外,考虑通过字符串而不是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上运行很危险,因为输入执行输入的字符串而不是捕获字符串值。