python - 如何停止这个python函数?
问题描述
如何停止此功能?while
即使循环以if
orelse
语句结束,该函数也会运行。
我尝试添加break
,但它仍然无法正常工作。
def proallocate():
q = True
conn = sqlite3.connect('database.db')
cur = conn.cursor()
pid = cur.execute("SELECT project_id FROM Upload WHERE status= ?", ("NULL",))
while q:
for pd in pid:
a = str(pd)
projectid = re.sub('[\(\),\{\}<>]', '', a)
url = "localhost:8888/"+projectid+""
print(url)
req = requests.Session()
resp = req.get(url)
soup = BeautifulSoup(resp.text, 'html.parser')
project_status_latest = soup.find_all('tr')[-1].get_text()
if ("Project Ready" in project_status_latest):
proid[0] = projectid
q = False
break
else:
cur.execute("UPDATE Upload SET status = ? WHERE project_id = ?", ("Reserved", projectid))
conn.commit()
return projectid
预期的结果是,它应该从if
语句中返回一个值,或者什么都不返回。
解决方案
摆脱while
循环。该for
循环已经遍历了所有项目 ID,您不需要另一个循环。如果for
循环没有找到匹配的项目,while
循环将无限重复。
推荐阅读
- substitution - 不知道位置的最大值子部分
- javascript - 什么时候需要返回嵌套的 Promise?
- php - 在这种情况下如何验证 Recaptcha?
- php - 递归转换为多维数组
- c++ - 是否有等效于 slmgr.vbs /skms 的 C++/Winapi
- postgresql - 从 postgresql 中的日/月中提取年份并检查日期是否为一年中的第一个和/或最后一个
- python - 从 Python 文件构建 EXE 文件(不是同一个普通问题 - 请参阅)
- ios - 动态物理体最终被推离屏幕
- asp.net-mvc - 获取多组单选按钮asp.net mvc 5的选定值
- swiper - Swiper JS,如何在自由模式下停止 swiper 包装?