viva
  • 主页
  • 开发
    • IDE环境
      • Vim
      • VSCode
        • code-server
        • theia
    • Golang手册
    • Ansible
    • SaltStack
      • salt-api
    • Python
      • Q&A
      • Hello,world!
      • 类型
        • 数字
        • 字符串
        • 列表
        • 元组
        • 集合
        • 字典
      • 语法
        • 流程控制
        • 循环
      • 工具
        • pip
        • pyenv
        • selenium
      • 示例
    • Shell
    • Vue
      • ant-design
      • vue-material
    • Java
  • 随笔
    • WSL2
    • Git
    • Markdown
      • mermaid
    • Linux
      • 时钟同步
      • 账号
      • 文件
      • SSH
      • systemd
      • TLS加密
        • Openssl
      • 存储
        • rsync
        • NFS
      • 路由
      • 日志采集
        • Journalctl
        • Fluentd
          • 根据字段匹配对日志进行结构化
        • Logstash
    • 虚拟化
      • Hyper-V
      • PXE
    • 命令行工具
      • zsh
    • Nexus3
    • 堡垒机
      • JumpServer
    • 测试工具
      • ioping
      • apache bench
      • dd
      • postman
    • 开源项目管理
      • Github
    • 软件包管理
    • 网络镜像源
    • 网关
      • Nginx
  • 存储
    • Ceph
      • 安装
      • 故障处理
    • Etcd
    • Mysql
  • 网络
    • Overlay网络
    • IPVS
    • 网络工具
      • tshark
      • tcpdump
    • 防火墙
      • nftables
      • firewalld
      • iptables
    • 域名解析
      • dig
      • nslookup
      • dnsmasq
    • 代理
      • Clash
      • Redsocks
      • Redsocks2
      • COW
      • Proxfier
  • 云原生
    • 容器
      • Docker
        • Dockerfile
        • docker-compose
      • Podman
      • 原理
        • Chroot
        • Namespace
        • Cgroup
    • 镜像仓库
      • Harbor
    • Kubernetes
      • 部署
        • Kind
        • Minikube
        • kubespray
      • CNI
        • Flannel
        • OVS
        • Calico
      • Operator
        • OperatorSDK
      • StorageClass
      • Q&A
    • Openshift
      • 集群部署
      • 快速使用
    • Prometheus
      • prometheus-operator
      • kube-prometheus
      • Thanos
        • 组件
          • Bucket
          • Check
          • Compact
          • Querier
          • Receiver
          • Ruler
          • Sidecar
          • Store
        • 参考资料
      • Cortex
        • 组件
          • Alertmanager
          • Config
          • Distributor
          • Ingester
          • Querier
          • Query Frontend
          • Ruler
        • 参考资料
      • Thanos与Cortex方案对比
      • 参考资料
      • Q&A
    • Skywalking
    • Rook
    • Helm
    • Istio
    • 应用部署
      • Nexus
      • RabbitMQ
    • 参考资料
  • DevOps
    • 开源DevOps平台
    • CICD
      • Jenkins
    • 参考资料
  • 机器学习
    • Kubeflow
      • 示例
由 GitBook 提供支持
在本页
  • while
  • for
  1. 开发
  2. Python
  3. 语法

循环

while

while语句用于在满足某个条件的情况下循环执行语句,语法格式如下:

while {{ 条件语句 }}:
    ...

例子:从1累加到100

>>> i = 1
>>> sum = 0
>>> while i <= 100:
...     sum += i
...     i += 1
...
>>> print(sum)
5050

for

for语句用于对可遍历的类型进行迭代遍历,在每一轮的循环前,按存储的顺序从集合中取出一个元素,之后执行循环体中的部分,语法格式如下:

for {{ 元素索引 }},{{ 元素值 }} in {{ 集合 }}:
    ...

在不需要使用到元素索引的情况下可以忽略元素索引

for {{ 元素值 }} in {{ 集合 }}:
    ...

可用于遍历的类型包括:字符串,列表,元组,集合和字典

例子:遍历输出列表中每个用户的信息

>>> members = [
...     {'name': "mike", "age": 18, "gender": 1},
...     {"name": "mary", "age": 24, "gender": 0},
...     {"name": "bob", "age": 65, "gender": 1}
... ]
>>> for person in members:
...     for k, v in person.items():
...         print(k, v)
...
name mike
age 18
gender 1
name mary
age 24
gender 0
name bob
age 65
gender 1

当我们需要通过循环获取列表的元素下标及元素值时,可以使用内置的方法range(),这个方法中支持多种参数传递方式。当只传一个参数时,如range(5),表示一个从0到5(不包括5)且步长为1的等差数列。当传递两个参数时,如range(3, 12),表示一个从3到12(不包括12)且步长为1的等差数列。当传递三个参数时,如range(3, 13, 2),表示一个从3到13(不包括13)且步长为2的等差数列。

我们通过len()方法获取原列表的长度,并做为range()的参数即可获得一个与原列表对应的元素下标列表,使用for循环遍历该元素下标列表可获得列表的下标值,通过列表索引该下标值即可获取元素值。

例子:根据列表下标遍历每个用户的信息

>>> members = [
...     {'name': "mike", "age": 18, "gender": 1},
...     {"name": "mary", "age": 24, "gender": 0},
...     {"name": "bob", "age": 65, "gender": 1}
... ]
>>> for index in range(len(members)):
...     for k, v in members[index].items():
...         print(index, k, v)
...
0 name mike
0 age 18
0 gender 1
1 name mary
1 age 24
1 gender 0
2 name bob
2 age 65
2 gender 1

需要注意的是range()生成的是一个可遍历对象,而不是一个列表

>>> print(range(5))
range(0, 5)

需要将其转化为一个实际的列表时,可以使用内置方法list()

>>> list(range(2, 14, 2))
[2, 4, 6, 8, 10, 12]

要累加range()中的内容时,可以使用内置方法sum()

例子:使用sum()从1加到100

>>> sum(range(1, 101))
5050

上一页流程控制下一页工具

最后更新于4年前