Python do while 实现案例
在 Python 中没有传统的 do while 循环语法。
但是可以通过使用 while True 结合条件判断来实现类似 do while 的效果。
一、语法
while True:
# 执行某些操作
#...
if not condition:
break
这里先无条件地执行一次循环体中的代码,然后在每次循环结束时检查条件,如果条件不满足则跳出循环。这样就实现了类似 do while 的先执行一次再判断条件的逻辑。
二、Demo
在标准输出打印从1-100,每个数字换一行。
idx = 1
while True:
print(idx)
idx += 1
if idx == 101:
break;
三、实战
当我们调用类似百度地图POI 行政区划区域检索 接口的时候,接口本身并不提供给我们数据的总页数。这个时候,我们只能通过 do while 的方式请求接口,并判断循环退出条件,以避免死循环。
示例代码:
import requests
# 接口地址
url = "https://api.map.baidu.com/place/v2/search"
# 此处填写你在控制台-应用管理-创建应用后获取的AK
ak = "你的AK"
page_num = 0
params = {
"query": "大学",
"tag": "高等院校",
"region": "194",
"output": "json",
"ak": ak,
"page_size": 20,
"page_num": page_num
}
while True:
response = requests.get(url=url, params=params)
if response:
data = response.json()
print(data)
if data['status'] == 0:
if data['result_type'] == "poi_type":
page_num = page_num + 1
params['page_num'] = page_num
else:
print( '分页结束' )
break
else:
print( '请求百度地图接口响应状态非法' )
break
else:
print( '请求百度地图接口失败' )
break