当前位置: 首页 > 后端技术 > Python

认识python【今天开始写代码】第2课

时间:2023-03-26 12:09:04 Python

参考来源:Vitu.AI上节课,你已经看到并使用了print、abs等函数。但是python还有更多的特点,比如定义自己的函数是python编程的重要组成部分。在本课中,我们将带您了解有关使用和定义函数的更多信息。如何获得帮助?我确定您在上一个教程中看到了abs()函数,但是如果您忘记了它的作用怎么办?help()函数可能是帮助您学习python函数的最重要的函数。如果您能记住如何使用help(),那么您就掌握了理解大多数其他函数的关键。下面是一个示例:help(round)help()显示两件事:该函数的标题为round(number[,ndigits])。在这种情况下,这告诉我们round()接受一个我们可以描述为数字的参数。或者,我们可以选择给出一个单独的参数,可以描述为ndigits。功能的简短英文说明。常见陷阱:当我们查找函数时,记得传入函数本身的名称,而不是调用函数的输入参数。如果我们在调用函数abs()时调用help会发生什么?单击以运行下面单元格的输出以查看它。help(round(-2.01))Python通常从内到外计算表达式。首先,它计算round(-2.01)的值,即-2,然后它提供关于整数2的帮助。(事实证明关于整数有很多要说的!上面的大量帮助输出在之后会更有意义我们稍后讨论python中的对象、方法和属性。)round是一个非常简单的函数,带有一个简短的文档字符串。当处理更复杂和可配置的函数(如print())时,help()会显示更多参数的用法,让我们带来更多的帮助。如果以下输出看起来很乏味,请不要担心……现在,看看您是否可以从该帮助中学到任何新东西。help(print)如果你正在寻找这个,你可能知道print可以接受一个名为sep的参数,它描述了我们在打印它时放在所有其他参数之间的内容。我们将在本课稍后给出sep的示例。定义函数内置函数很棒,但是在我们需要开始定义我们自己的函数之前,我们只能在python中使用它们。下面是一个简单的例子。defleast_difference(a,b,c):diff1=abs(a-b)diff2=abs(b-c)diff3=abs(a-c)returnmin(diff1,diff2,diff3)这将创建一个名为least_difference的值接受三个参数a、b和c的函数。函数以def关键字引入的标头开头。调用函数时运行以下代码后的缩进代码块。return是另一个与函数唯一关联的关键字。当python遇到return语句时,它会立即退出函数,将右侧的值传递给调用上下文。代码中的least_difference()是什么意思清楚吗?如果我们不确定,我们总是可以尝试一些示例:print(least_difference(1,10,100),least_difference(1,10,10),least_difference(5,6,7))或者help()函数可以告诉我们有一些关于它的东西。help(least_difference)Python不够智能,无法阅读我的代码并将其转换为漂亮的英文描述。但是我们在写函数的时候可以提供一个描述,叫做docstring,这样python在调用help()函数的时候就可以读取到相应的帮助内容。Docstringsdefleast_difference(a,b,c):"""返回a,b,c中任意两个数的最小差值>>>least_difference(1,5,-5)4"""diff1=abs(a-b)diff2=abs(b-c)diff3=abs(a-c)returnmin(diff1,diff2,diff3)文档字符串是一个三引号字符串(可能跨越多行)紧跟在函数头之后。文档字符串是我们在函数上调用help()时看到的解释。help(least_difference)注意:文档字符串的最后两行是示例函数调用和结果。(>>>是对Python交互式shell中使用的命令提示符的引用。)Python不运行示例调用-这是为了方便读者。在函数的文档字符串中包含一个或多个示例调用并不常见,但它可以非常有效地帮助别人理解您的函数。有关实际示例,请参阅numpy函数np.eye的文档字符串。importnumpyhelp(numpy.eye)优秀的程序员使用文档字符串,除非他们想在使用后立即丢弃代码(这种情况很少见)。因此,为了成为一名优秀的程序员,您今天也应该开始编写文档字符串。没有return的函数如果我们不在函数中包含return关键字会怎样?defleast_difference(a,b,c):"""返回a,b,c中任意两个数的最小差。"""diff1=abs(a-b)diff2=abs(b-c)diff3=abs(a-c)min(diff1,diff2,diff3)print(least_difference(1,10,100),least_difference(1,10,10),least_difference(5,6,7),)Python允许我们定义如下函数这。调用它们的结果是特殊值None。(这类似于其他语言中的“null”概念。)如果没有return语句,least_difference是完全没有意义的,它只是一个有副作用的函数,它做了一些有用的事情而不返回任何东西。我们见过这样的例子:print()不返回任何有价值的东西。我们只是称它们为副作用,即在屏幕上放置一些无意义的文本。mystery=print()print(mystery)默认参数当我们调用help(print)时,我们看到print函数有几个可选参数。例如,我们可以为sep指定一个值,在我们的打印参数之间放置一些特殊的字符串:print(1,2,3,sep='<')但如果我们没有为sep指定一个值,它将被处理具有默认值''(单个空格)。print(1,2,3)下面的函数将Colin作为默认值;当不输入额外参数时,函数返回默认参数,当输入新参数时,函数返回新参数。defgreet(who="Colin"):print("Hello,",who)greet()greet(who="Kaggle")#(在这种情况下,我们不需要指定参数的名称,因为它是明确的。)greet("world")将函数作为参数并在函数内调用函数,这是一个强大的东西,虽然一开始感觉很抽象,但你可以将函数作为参数传递给其他函数。一些示例可能会使这一点更清楚:defmult_by_five(x):return5*xdefcall(fn,arg):"""Callfnonarg"""returnfn(arg)defsquared_call(fn,arg):"""在对arg"""调用fn的结果上调用fnreturnfn(fn(arg))print(call(mult_by_five,1),squared_call(mult_by_five,1),sep='\n',#'\n'is换行符,每个结果开始一个新行)对其他函数进行操作的函数称为“高阶函数”。你可能暂时不会写你自己的一些东西。但是,python中内置了更多高级函数,我们会发现它们很有用。这是一个使用max函数的有趣示例。默认情况下,max返回其最大参数。但是如果我们传入一个带有可选参数键的函数会发生什么?defmod_5(x):"""返回x除以5后的余数"""returnx%5print('哪个数最大?',max(100,51,14),'哪个数最大模5?',max(100,51,14,key=mod_5),sep='\n',#'\n'是一个换行符,每个结果开始一个新行)在上面的代码中,当我们通过parameterkey一个计算除以5后余数的函数,此时需要判断的条件是3个数除以5后,哪个数的余数最大?经过简单的计算,我们可以知道,100除以5没有余数,即0,51除以5,余数为1,14除以5,余数为4,因为余数最大的值是14,所以最后会返回14。原文地址:初识python【今天开始写代码】第二课