网管 发布的文章

内置函数你会不会有些好奇Python为什么可以直接使用一些内建函数,而不用显式的导入它们?比如 str()、int()、dir()、id()、type(),max(),min(),len()等,许多许多非常好用,快捷方便的函数。因为这些函数都是一个叫做builtins模块中定义的函数,而builtins模块默认在Python环境启动的时候就自动导入,所以你可以直接使用这些函数。

- 阅读剩余部分 -

装饰器作为许多语言都存在的高级语法之一,装饰器是你必须掌握的知识点。装饰器(Decorator):从字面上理解,就是装饰对象的器件。可以在不修改原有代码的情况下,为被装饰的对象增加新的功能或者附加限制条件或者帮助输出。装饰器有很多种,有函数的装饰器,也有类的装饰器。装饰器在很多语言中的名字也不尽相同,它体现的是设计模式中的装饰模式,强调的是开放封闭原则。装饰器的语法是将@装饰器名,放在被装饰对象上面。

- 阅读剩余部分 -

生成器前面我们已经好几次提到了生成器的概念。这里对其简要介绍一下。有时候,序列或集合内的元素的个数非常巨大,如果全制造出来并放入内存,对计算机的压力是非常大的。比如,假设需要获取一个10**20次方如此巨大的数据序列,把每一个数都生成出来,并放在一个内存的列表内,这是粗暴的方式,有如此大的内存么?如果元素可以按照某种算法推算出来,需要就计算到哪个,就可以在循环的过程中不断推算出后续的元素,而不必创建完整的元素集合,从而节省大量的空间。在Python中,这种一边循环一边计算出元素的机制,称为生成器:generator。

- 阅读剩余部分 -

迭代器在介绍迭代器之前,先说明下迭代的概念:迭代:通过for循环遍历对象的每一个元素的过程。Python的for语法功能非常强大,可以遍历任何可迭代的对象。在Python中,list/tuple/string/dict/set/bytes都是可以迭代的数据类型。可以通过collections模块的Iterable类型来判断一个对象是否可迭代:

- 阅读剩余部分 -

推导式Python语言有一种独特的推导式语法,相当于语法糖的存在,可以帮你在某些场合写出比较精简酷炫的代码。但没有它,也不会有太多的影响。Python语言有几种不同类型的推导式,下面逐一介绍:1. 列表推导式列表推导式是一种快速生成列表的方式。其形式是用方括号括起来的一段语句,如下例子所示:

- 阅读剩余部分 -

匿名函数在函数创建过程中,有时我们并不需要显式地定义函数,而是可以直接传入匿名函数来实现相应的功能。这样做不仅省去了为函数命名的麻烦,还能减少代码量。许多编程语言都支持匿名函数的特性。正确地使用匿名函数可以起到画龙点睛的效果,但如果使用不当,可能会适得其反。因此,在日常的编码过程中,我们需要多学习、多观察、多思考。

- 阅读剩余部分 -

递归函数在前面的章节中,我们已经多次见到了函数调用其他函数的情况。而如果一个函数在内部调用了自身,那么这个函数就被称为递归函数。是的,函数可以直接或间接地调用自己,这就形成了递归调用。你可能会问,这样不会导致无限循环,永远无法退出吗?实际上,递归函数必须具备终止条件,才能保证递归的结束。让我们看一个经典的例子,高斯求和问题:1+2+3+4+…+99+100。如果不使用递归,我们可以通过循环来实现:

- 阅读剩余部分 -

range()函数在C语言中,如果想要循环一个变量从1到100,要怎么写呢?for(i = 1,i<=100,i++)你在C的代码中,几乎随处可见上面的for循环。Python非常贴心,为我们设计了range函数,直接实现上面的功能。range函数是内置函数,无须特别导入,在任何地方都可以直接使用它。下面看一下具体用法:

- 阅读剩余部分 -

变量作用域提到函数就必须介绍变量的作用域相关内容。作用域指的是变量的有效范围。并非所有位置都可以访问变量,访问权限取决于变量在哪里赋值,即在哪个作用域内。在大多数编程语言中,变量的作用域可以按代码结构形式划分为块级、函数级、类级、模块级和包级等级别,从小到大。但在Python中,没有块级作用域的概念。例如,if语句块、for语句块、with上下文管理器等,它们与普通语句等同,不存在独立的作用域。

- 阅读剩余部分 -

参数类型大多数函数在定义时会接收一定数量的参数,然后根据调用时提供的参数值的不同来产生不同的结果。前面我们已经提到,不建议在函数内部使用与外部变量相同的参数名称,因为这样容易引起混淆和错误。通常情况下,函数的定义和参数传递如下所示:

- 阅读剩余部分 -