你如何检查是否变量等于在python

问题描述:

我有一个线阵,在位置值5可以是下列值:你如何检查是否变量等于在python

"Tablespace Free Space (MB)", "Tablespace Space Used (%)" 

如果line[5]是任何这些,我需要做一些额外的工作。

我已经试过这样:

if (line[5] in ("Tablespace Space Used (%)")|("Tablespace Free Space (MB)")) 

    # some other code here 

我不断收到此错误:

if (line[5] in ("Tablespace Space Used (%)"|"Tablespace Free Space (MB)")) 
                      ^
SyntaxError: invalid syntax 
+1

你缺少一个':'在结束你的线。 – merlin2011 2015-02-11 21:08:32

+1

您需要在if语句的末尾添加':'。例如:如果'(行[5]中( “用于表空间的空间(%)”, “表空间可用空间(MB)”):' – Andrew 2015-02-11 21:08:53

+0

此外,关系或蟒是 “或”,而不是管 – sharjeel 2015-02-11 21:19:30

您使用==检查平等

4 == 2*2 
True 

要使用if语句,总结了该行 ':'

if line[5] in {'Tablespace Space Used (%)', 'Tablespace Free Space (MB)'}: 
    do x 
+0

为什么你使用'in'仍然不是''==? – 2015-02-11 22:51:44

+0

没有看到OP的声明“,如果行[5]是任何这些我需要做一些额外的工作,“将修订 – 2015-02-11 22:55:02

+0

当然,但为什么不使用会员的考验还在 – 2015-02-11 23:00:16

你就在你的if语句的末尾缺少:

但是,你正在使用无效的语法测试过;它会导致运行时错误(TypeError: unsupported operand type(s) for |: 'str' and 'str')。你想创建一个元组,或一组字符串来测试对,不会使用|

if line[5] in ("Tablespace Space Used (%)", "Tablespace Free Space (MB)"): 

if line[5] in {"Tablespace Space Used (%)", "Tablespace Free Space (MB)"}: 

后者在技术上更有效,但如果你正在使用Python 2,其中该集没有被优化成元组将在任一版本的语言中的常量。使用{...}创建一个集合需要Python 2.7或更高版本。

+0

@martinPeiters。 ,我得到这个错误:如果线[5] { “表空间已用空间(%)”, “表空间可用空间(MB)”}: ^ 语法错误:无效的语法 – user1471980 2015-02-11 21:19:59

+0

@ user1471980:Python版本您使用的是?'{...}'为集合需要Python 2.7或向上。 – 2015-02-11 21:22:44