params
Hello,大家好,我是程序汪小成~
虽然python是一个易入门的语言,但是很多人依然还是会问到底怎么样学 Python 才最快,答案当然是实战各种小项目, 只有自己去想与写,才记得住规则 .本文写的是 10 个极简任务,初学者可以尝试着自己实现;本文同样也是 10段代码,Python 开发者也可以看看是不是有没想到的用法.
以下方法可以检查给定列表是不是存在重复元素,它会使用 set() 函数来移除所有重复元素.
给定具体的大小,定义一个函数以按照这个大小切割列表.
这个方法可以将布尔型的值去掉,例如(False,None,0,""),它使用 filter() 函数.
我们常用 For 循环来遍历某个列表,同样我们也能枚举列表的索引与值.
如下代码段可以将打包好的成对列表解开成两组不同的元组.
该方法将返回第一个列表的元素,且不在第二个列表内.如果同时要反馈第二个列表独有的元素,还需要加一句 set_b.difference(set_a).
如下代码块可以用来计算执行特定代码所花费的时间.
该算法会打乱列表元素的顺序,它主要会通过 Fisher-Yates 算法对新列表进行排序:
不需要额外的操作就能交换两个变量的值.
以上,是我简单列举的十个python极简代码,拿走即用,希望对你有所帮助!
parameter 是函数定义的参数形式
argument 是函数调用时传入的参数实体.
对于函数调用的传参模式,一般有两种:
此外,
也是关键字传参
python的函数参数定义一般来说有五种: 位置和关键字参数混合 , 仅位置参数 , 仅关键字参数 , 可变位置参数 , 可变关键字参数 .其中仅位置参数的方式仅仅是一个概念,python语法中暂时没有这样的设计.
通常我们见到的函数是位置和关键字混合的方式.
既可以用关键字又可以用位置调用
或
这种方式的定义只能使用关键字传参的模式
网络模块request的request方法的设计
多数的可选参数被设计成可变关键字参数
有多种方法能够为函数定义输出:
非常晦涩
如果使用可变对象作为函数的默认参数,会导致默认参数在所有的函数调用中被共享.
例子1:
addItem方法的data设计了一个默认参数,使用不当会造成默认参数被共享.
python里面,函数的默认参数被存在__default__属性中,这是一个元组类型
在例子1中,默认参数是一个列表,它是mutable的数据类型,当它写进 __defauts__属性中时,函数addItem的操作并不会改变它的id,相当于 __defauts__只是保存了data的引用,对于它的内存数据并不关心,每次调用addItem,都可以修改 addItem.__defauts__中的数据,它是一个共享数据.
如果默认参数是一个imutable类型,情况将会不一样,你无法改变默认参数第一次存入的值.
例子1中,连续调用addItem('world') 的结果会是
而不是期望的
函数是组织好,可重复使用的,用来实现相关功能的代码段
函数提高了代码的重复利用率和应用的模块性.
除Python自带的函数之外,也可以自己创建函数,叫做自定义函数
语法:
函数代码块以 def 开头
参数为 输入值 ,放于函数名后口号里面,
函数内容以冒号:开始,函数体缩进, return 返回 输出值
函数调用使用关键字参数来确定传入的参数值,此时,如果多个函数则不需要按照指定顺序.
在定义函数时,指定参数默认值.调用时如果不传入参数,则使用默认值
不定长部分如果没有指定参数,传入是一个空元组
加了 两个星号 ** 的参数会以字典的形式导入
/ 用来指明函数形参必须使用指定位置参数,不能使用关键字参数的形式.
不使用 def 定义函数,没有函数名
lamdba主体时一个表达式,而不是代码块,函数体比def简单很多
定义在函数内部的为局部变量,仅能在函数内部使用
定义在函数外部的为全局变量,可在全局使用
模块是将包含所有定义的函数和变量的文件,一般将同类功能的函数组和在一起称为模块.
模块需要导入后,在调用相应函数进行使用
模块导入的方法:
从模块中导入一个指定的部分
把一个模块的所有内容全都导入
记住两个关键:
初学的你,还是太难理解?
你可以将生成器理解为一个盒子,你可以向这个盒子里随意添加元素,当你需要的时候,再取出来用.
请看下面的例子:
作用:惰性求值(一边循环一边计算的机制),节省性能
当:
时,我们可以使用匿名函数.
你想实现一个求x的平方的函数,但是这个函数太简单,不值得专门def定义,同时,你忘记了平方的英文如何拼写,要是命名成 "pingfang",又显得自己太low,于是乎,你可以不给这个函数起名字,还能实现它.这就是匿名函数lambda表达式.
比如:求一个数的平方
01 如果你是初学者,可以先不掌握生成器和匿名函数,待学成python后,再行琢磨;