如果赋值变量,则检查python中的某些条件

时间:2014-04-23 23:58:14

标签: python if-statement

我在python中编码。我的问题是我在函数中有一个变量strGUID然后有一个if控制流我要检查变量是否已分配,如果是,则检查它的某些条件。澄清一段代码如下:

for line in data_list:
    if line.find('Project')!=-1
      strGUID = line.split(',')[2].strip('" ')
    if flag == False and line.find(strGUID)==-1 :
      print 'wrote line : ', line

在上面的代码中我有时会说错误

  

变量strGUID在赋值之前被访问。

所以我想要做的是检查第二个if循环,如果定义了变量strGUID,然后检查条件:line.find(strGUID)==-1。像

这样的东西
if flag == False and (if strGUID then line.find(strGUID)==-1) :

PS:这只是为了缩短代码并使其变得聪明,我知道如果检查代码我可以编写更长的代码,所以要求这不是目的。

澄清:如果你想建议你初始分配strGUID = None的答案,然后在第二个if循环中检查它,我想在strGUID为None时执行print。因此,我正在寻找一种定义条件的智能方法。即如果strGUID = None或strGUID不是None并且line.find(strGUID)== - 1

我希望执行print

编辑: 基本上我当前的代码有第二个if循环:

if flag == False and (strGUID is None or (strGUID is not None and line.find(strGUID)==-1) ) :

我想检查是否有一种明智的方法来缩短它。

1 个答案:

答案 0 :(得分:2)

执行此操作的惯常方法是在开始时设置strGUID = None,然后检查

if flag == False and (strGUID is not None and line.find(strGUID) == -1):

如果第一部分(strGUID is not None)为false,则永远不会评估第二部分(line.find(strGUID) == -1)。