Python-如果或如果无效语法错误

Python-如果或如果无效语法错误,python,syntax,syntax-error,Python,Syntax,Syntax Error,我有以下Python代码行: if (sheet1.cell_value(i,8).lower()==sheet2.cell_value(0,j).lower() or (if hasattr(sheet2.cell_value(2,j), 'lower'): if sheet1.cell_value(i,8).lower()==sheet2.cell_value(2,j).lower())): 我当前收到一个SyntaxError:invalid syntax错误 我尝试使用此或,if语句的

我有以下Python代码行:

if (sheet1.cell_value(i,8).lower()==sheet2.cell_value(0,j).lower() or (if hasattr(sheet2.cell_value(2,j), 'lower'): if sheet1.cell_value(i,8).lower()==sheet2.cell_value(2,j).lower())):
我当前收到一个
SyntaxError:invalid syntax
错误

我尝试使用此
if
语句的原因是
sheet2。单元格u值(2,j)
在Excel中可能没有值(在这种情况下,它将是Excel中的
值!
)。因此,or
sheet1.单元格_值(i,8.lower()==sheet2.单元格_值(2,j.lower()):
中的第二个if只有在单元格中有值的情况下才能计算。。我怎样才能解决这个问题?感谢编写
(if…
if…:if…
在Python中都是禁止的。如果你想写“条件1,如果是真的,还有条件2”,只需写
condition1和condition2
(在这种情况下,如果
condition1
为假,将不会计算
condition2
)。因此:


首先,稍微格式化一下不会有什么坏处。您不必将
if
语句粉碎到一行。此外,您现在拥有它的方式是无效的。将
if
s拆分为单独的行

第二,你有括号问题。目前,括号跨越语句(通过冒号)

此块对齐括号。我删除了围绕整个声明的内容。相反,我们有您的第一个
条件。如果计算结果为
True
,那么我们将进行第二次相等性检查。如果通过了,那么剩下的逻辑就会进入这个模块

if sheet1.cell_value(i,8).lower()==sheet2.cell_value(0,j).lower() or  hasattr(sheet2.cell_value(2,j), 'lower'): 
    if sheet1.cell_value(i,8).lower()==sheet2.cell_value(2,j).lower():
        # Do stuff here

你显然有括号的问题,但是,你希望结肠在中间做什么?你是什么意思?你能说得更具体些吗?我认为您需要Python中的IFS中的<代码>:<代码>……考虑发布一个简单的示例,我们可以运行…通常情况下,你会以这种方式回答自己的问题。例如
如果为真或如果为假:pass
很好地说明了问题。我仍然在代码中得到一个错误:
如果sheet1.cell_值(I,8)。lower()==sheet2.cell_值(0,j)。lower()或(如果hasattr(sheet2.cell_值(2,j),“lower”)):^SyntaxError:无效语法
@adrCoder,我在那里错过了另一个
if
。检查更新以查看。您需要删除
或(if…
,使其仅为
或hasattr(…)
if sheet1.cell_value(i,8).lower()==sheet2.cell_value(0,j).lower() or  hasattr(sheet2.cell_value(2,j), 'lower'): 
    if sheet1.cell_value(i,8).lower()==sheet2.cell_value(2,j).lower():
        # Do stuff here