当前位置: 首页 > article >正文

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


http://www.kler.cn/news/350630.html

相关文章:

  • Python实现基于WebSocket的stomp协议调试助手工具
  • vue3 树型视图,利用自定义SFC来定义一个TreeItem,然后进行渲染出一个树形。
  • Nginx、Tomcat等项目部署问题及解决方案详解
  • 【云原生】Kubernets1.29部署StorageClass-NFS作为存储类,动态创建pvc(已存在NFS服务端)
  • 【ArcGIS Pro实操第8期】绘制WRF三层嵌套区域
  • vue2 自定义指令 列表元素上划 动画
  • 使用CSS+SVG实现加载动画
  • SpringCloudAlibaba升级手册
  • Finops成本优化企业实践-可规划篇
  • linux线程 | 线程的控制(下)
  • linux下在线安装MySQL-华为云服务器
  • 【WebLogic】Oracle发布2024年第四季度中间件安全公告
  • Sharding-JDBC标准模式详解
  • Java基础:面向对象编程5
  • 恢复已删除文件的 10 种安卓数据恢复工具
  • IRP默认最小流程
  • 2023年“网络建设与运维”广西省赛试题复盘
  • yakit使用教程(四,信息收集)
  • WorkFlow GO-Task 源码分析
  • 简单说说mysql中一条读sql是如何执行的
  • 2023年12月中国电子学会青少年软件编程(Python)等级考试试卷(一级)答案 + 解析
  • PowerShell中conda activate指令无效的问题
  • CentOS硬解码+ffmpeg+Nvidia硬解码
  • 探索人工智能在数学教育上的应用——使用大规模语言模型解决数学问题的潜力和挑战
  • 学习 Python 的途径
  • 基于深度学习的车辆车型检测识别系统(YOLOV5)