在不停止while循环的情况下中断循环

时间:2016-01-23 12:29:34

标签: python mysql python-2.7

好的,我不知道如何正确地提出这个问题,但这就是我要做的事情:

#connect to db and stuff
check_against = [] #list of strings
while row is not None:
  if row == None:
    break
  for i in range(0,len(row)):
    x = row[i]
    try:
      print str(x)
    except:
      pass
    for z in check_against:
      if z == x:
        #change alternate_id
    if x == "":
      # Change insert_into and stuff
      if alternate_id != 0:
        for x in range(len(insert_into)):  #Do SQL things
          print "updating" + str(alternate_id)
          sql = """UPDATE `table` SET `%s` = '%s' WHERE `table`.`id` = %s""" % (insert_into[x],check_against[x],str(alternate_id))
      try:
         cursor.execute(sql)
         db.commit()
      except:
         db.rollback()
      break #This break breaks the while loop
  row = cursor.fetchone()

如何让break不破坏while循环但是打破for循环呢? 谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

首先,你不需要这个部分:

while row is not None:
    if row == None:
        break

此部分没有任何意义,因为如果行为“无”,while循环将停止,因为条件为while row is not None,请删除:

if row == None:
    break

您不需要此代码。

第二部分:

如果break打破了while循环,请以正确的方式格式化代码,因为当前代码看起来很奇怪