Jingh Blog

"志之所趋,无远弗届,穷山距海,不能限也"

「 Intermediate Python 」 对象变动(Mutation)

"它是一本开脑洞的书。无论你是Python初学者,还是Python高手,它显现给你的永远是Python里最美好的事物。"

本书的原文原址intermediatePython 对象变动(Mutation) Python中可变(mutable)与不可变(immutable)的数据类型让新手很是头痛。简单的说,可变(mutable)意味着”可以被改动”,而不可变(immutable)的意思是“常量(constant)”。想把脑筋转动起来吗?考虑下这个例子: foo = ['hi'] print(foo)...

「 Intermediate Python 」 Global和Return

"它是一本开脑洞的书。无论你是Python初学者,还是Python高手,它显现给你的永远是Python里最美好的事物。"

本书的原文原址intermediatePython Global和Return 你也许遇到过, python中一些函数在最尾部有一个return关键字。你知道它是干嘛吗?它和其他语言的return类似。我们来检查下这个小函数: def add(value1, value2): return value1 + value2 result = add(3, 5) prin...

「 Intermediate Python 」 Decorators(装饰器)

"它是一本开脑洞的书。无论你是Python初学者,还是Python高手,它显现给你的永远是Python里最美好的事物。"

本书的原文原址intermediatePython 装饰器 装饰器(Decorators)是Python的一个重要部分。简单地说:他们是修改其他函数的功能的函数。他们有助于让我们的代码更简短,也更Pythonic(Python范儿)。大多数初学者不知道在哪儿使用它们,所以我将要分享下,哪些区域里装饰器可以让你的代码更简洁。 首先,让我们讨论下如何写你自己的装饰器。 这可能是最...

「 Intermediate Python 」 三元运算符

"它是一本开脑洞的书。无论你是Python初学者,还是Python高手,它显现给你的永远是Python里最美好的事物。"

本书的原文原址intermediatePython 三元运算符 三元运算符通常在Python里被称为条件表达式,这些表达式基于真(true)/假(false)的条件判断,在Python 2.4以上才有了三元操作。 下面是一个伪代码和例子: 伪代码: #如果条件为真,返回真 否则返回假 condition_is_true if condition else condition_...

「 Intermediate Python 」 set(集合)数据结构

"它是一本开脑洞的书。无论你是Python初学者,还是Python高手,它显现给你的永远是Python里最美好的事物。"

本书的原文原址intermediatePython set(集合)数据结构 set(集合)是一个非常有用的数据结构。它与列表(list)的行为类似,区别在于set不能包含重复的值。 这在很多情况下非常有用。例如你可能想检查列表中是否包含重复的元素,你有两个选择,第一个需要使用for循环,就像这样: some_list = ['a', 'b', 'c', 'b', 'd', 'm...

「 Intermediate Python 」 Map,Filter 和 Reduce

"它是一本开脑洞的书。无论你是Python初学者,还是Python高手,它显现给你的永远是Python里最美好的事物。"

本书的原文原址intermediatePython Map,Filter 和 Reduce Map,Filter 和 Reduce 三个函数能为函数式编程提供便利。我们会通过实例一个一个讨论并理解它们。 Map Map会将一个函数映射到一个输入列表的所有元素上。这是它的规范: 规范 map(function_to_apply, list_of_inputs) 大多数时候...

「 Intermediate Python 」 生成器 Generators

"它是一本开脑洞的书。无论你是Python初学者,还是Python高手,它显现给你的永远是Python里最美好的事物。"

本书的原文原址intermediatePython 生成器(Generators) 首先我们要理解迭代器(iterators)。根据维基百科,迭代器是一个让程序员可以遍历一个容器(特别是列表)的对象。然而,一个迭代器在遍历并读取一个容器的数据元素时,并不会执行一个迭代。你可能有点晕了,那我们来个慢动作。换句话说这里有三个部分: 可迭代对象(Iterable) 迭代器(...

「 Intermediate Python 」 pdb 调试 Debugging

"它是一本开脑洞的书。无论你是Python初学者,还是Python高手,它显现给你的永远是Python里最美好的事物。"

本书的原文原址intermediatePython 调试(Debugging) 利用好调试,能大大提高你捕捉代码Bug的。大部分新人忽略了Python debugger(pdb)的重要性。 在这个章节我只会告诉你一些重要的命令,你可以从官方文档中学习到更多。 译者注,参考:https://docs.python.org/2/library/pdb.html Or http...

「 Intermediate Python 」 *args 和 **kwargs

"它是一本开脑洞的书。无论你是Python初学者,还是Python高手,它显现给你的永远是Python里最美好的事物。"

本书的原文原址intermediatePython *args 和 **kwargs 我观察到,大部分新的Python程序员都需要花上大量时间理解清楚 *args 和**kwargs这两个魔法变量。那么它们到底是什么? 首先让我告诉你, 其实并不是必须写成*args 和**kwargs。 只有变量前面的 *(星号)才是必须的. 你也可以写成*var 和**vars. 而写成*a...

Python进阶知识点整理

参数传递是值传递还是引用传递? 引用传递 都是引用传递,对于不可变的数据类型来说,值不能被改变,如果修改了,事实上是新建了一个新对象。 或者说 Python 中有可变对象(比如列表 List)和不可变对象(比如字符串),在参数传递时分为两种情况: 对于不可变对象作为函数参数,相当于 C 系语言的值传递; 对于可变对象作为函数参数,相当于 C 系语言的引用传递。 再或者...