0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

详解Python的for和while循环

python爬虫知识分享 来源:python爬虫知识分享 作者:python爬虫知识分享 2022-06-24 16:02 次阅读

Python 的 for 和 while 循环是灵活并且高级的,语法自然、读起来像伪代码。而 Cython 也支持 for 和 while,无需修改。但由于循环通常占据程序运行时的大部分时间,因此我们可以通过一些优化,确保 Cython 能够将 Python 循环转换为高效的 C 循环。

n=100
foriinrange(n):
 ...

上面是一个标准的 Python for 循环,如果这个 i 和 n 是静态类型,那么 Cython 就能生成更快的 C 代码。

cdef Py_ssize_t i, n = 100
for i in range(n):
    ...
# 这段代码和下面的C代码是等效的
"""
for (i=0; i

所以当通过 range 进行循环时,我们应该将 range 里面的参数以及循环变量换成 C 的整型。如果不显式地进行静态声明的话,Cython 就会采用最保守的策略:

cdef Py_ssize_t n = 100
for i in range(n):
    print(i + 2 ** 100)

在循环的时候,如果我们使用了变量 i,那么在和一个数字相加的时候,由于 Cython 无法确定是否会发生溢出,因此会保守的选择 Python 的整型。

如果我们能保证表达式中一定不会发生溢出,那么可以显式地将 i 也声明为 C 的整数类型。

当然不光是整型,其它的 Python 类型也可以提前声明,举个例子:

cdef list lst = [
    {"name": "satori", "age": 17},
    {"name": "koishi", "age": 16},
    {"name": "marisa", "age": 15},
]

# lst 里面都是字典,在遍历之前可以提前声明好
cdef dict item
for item in lst:
    print(f"{item['name']}, {item['age']}")
"""
satori, 17
koishi, 16
marisa, 15
"""

# 通过 cdef dict item 提前声明循环变量的类型
# 然后遍历以及操作的时候,速度会快很多
# 因为我们实现了基于类型的优化

以上是 for 循环,至于 while 循环也是同理,说白了还是规定好类型,实现基于类型的优化。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 循环
    +关注

    关注

    0

    文章

    91

    浏览量

    15855
  • C代码
    +关注

    关注

    1

    文章

    89

    浏览量

    14175
  • python
    +关注

    关注

    51

    文章

    4669

    浏览量

    83456
收藏 人收藏

    评论

    相关推荐

    arduino中while循环怎么跳出

    Arduino 是一款开源的硬件平台,广泛应用于各种物联网和嵌入式系统项目。在 Arduino 上编写代码时,循环结构起到了至关重要的作用。而其中的 while 循环更是常用于需要根据特定条件重复
    的头像 发表于 02-14 16:22 637次阅读

    python如何一直循环一个代码

    Python中,有几种方法可以实现代码的循环执行。下面我将详尽、详实、细致地介绍这些方法和它们的使用情况。 使用while循环: 在Python
    的头像 发表于 11-23 15:54 839次阅读

    python怎么设置循环次数

    Python中,可以使用循环语句来重复执行一段代码多次。要设置循环次数,可以使用循环的计数器来控制循环的执行次数。以下是几种常用的设置
    的头像 发表于 11-23 15:50 1846次阅读

    python循环创建变量并赋值

    Python中如何使用循环创建变量并赋值,以及它的一些应用场景。 首先,让我们来了解一下Python中的循环Python提供了两种常用的
    的头像 发表于 11-23 14:51 624次阅读

    c语言在while中嵌套if循环

    C语言是一种广泛使用的面向过程编程语言,它提供了许多控制结构来帮助程序员实现复杂的逻辑和流程控制。其中,while循环和if语句是非常常见和重要的控制结构。本文将详细介绍C语言中在while
    的头像 发表于 11-22 10:09 1506次阅读

    while与if嵌套如何使用

    嵌套是编程中常用的一种技术,它可以使代码在特定条件下执行不同的操作。在Python中,while循环和if条件语句经常被嵌套使用,以实现更复杂的程序逻辑。 首先,我们来看一下while
    的头像 发表于 11-22 10:06 1406次阅读

    pythonwhile的用法例子

    Python中的while循环是一种重复执行代码块的结构,只有在指定条件为真时才会执行。当条件变为假时,循环停止。 下面是一些使用while
    的头像 发表于 11-22 10:04 660次阅读

    while循环用法格式

    while循环是一种常用的循环结构,能够按照指定条件多次重复执行一段代码。它的一般用法格式如下: while 条件表达式:循环体 在执行
    的头像 发表于 11-22 10:02 832次阅读

    python循环里的输出结果汇总

    循环是计算机编程中常用的一种控制结构,用于重复执行一段代码。Python提供了多种类型的循环结构,包括for循环while
    的头像 发表于 11-22 09:59 738次阅读

    一文详解python循环

    今天给大家带来python循环
    发表于 10-01 10:48 342次阅读
    一文<b class='flag-5'>详解</b><b class='flag-5'>python</b><b class='flag-5'>循环</b>

    pythonwhile循环条件介绍

    while循环 如果条件成立(true),重复执行相同操作,条件不符合,跳出循环 while 循环条件:
    的头像 发表于 09-12 16:52 687次阅读

    C语言中while和do-while循环的用法

    循环是一种重要的控制结构,可以使程序重复执行一段代码,直到满足特定条件为止。在C语言中,while和do-while是两种常用的循环结构,本文将详细介绍这两种
    发表于 08-18 16:35 1136次阅读
    C语言中<b class='flag-5'>while</b>和do-<b class='flag-5'>while</b><b class='flag-5'>循环</b>的用法

    [源代码]Python算法详解

    [源代码]Python算法详解[源代码]Python算法详解
    发表于 06-06 17:50 0次下载

    Python循环语句介绍

    哈喽大家好,我是知道。今天带大家了解下Python循环语句 定义循环语句允许我们执行一个语句或语句组多次 类型Python提供了两种不同类型的循环
    的头像 发表于 05-11 17:39 639次阅读

    详解Python中的while循环

    说起编程语言中的循环,一般 for 循环用的时候比较多,因为相比于 while 循环,for 循环的代码量更少。不过有时候也会用到
    的头像 发表于 04-26 17:55 1063次阅读