首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

2018-7-18pythoh中函数的参数,返回值,变量,和递归

*****************************************************************                                  函数中的参数的初级和返回值...: 技术文档中[]方括号里面的东西表示可选的 参数:函数运行需要的数据   如果没有参数会提示:missing 1 required positional, 函数的两个要点,参数和返回值: 1.如果函数有参数在调用执行函数的时候要把参数写里面...,需要用返回值时要定义一个变量接收返回值,如果不接收的话返回值不会打印出来,如: def check():    print("表演人:")    name="songanhua "    return...: variable  变量 函数中的变量分全局变量和局部变量,函数外的为全局变量,函数内的为局部变量 在函数中如果需要修改全局变量的值,需要先用global+name声明一下全局变量放在定义的函数顶部...: 定义一个函数表示 一个行为 #在一个函数中可以调用另一个函数,叫做函数的相互调用 #在函数也可以调用自己叫做函数的递归 #第一种:两个行为是相互独立的 # def movie(): #

2.1K40
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    构造函数init到底是什么作用 是下面的方法都可以从init里面获取参数吗?(AI+Python)

    一、前言 前几天在Python白银交流群【无敌劈叉小狗】问了一个Python基础的问题,问题如下: 问一下 构造函数init到底是什么作用 是下面的方法都可以从init里面获取参数吗?...后来我也问了下kimi,她的回答如下:在面向对象编程(OOP)中,构造函数(Constructor)是一个特殊的方法,它在创建类的新实例时被自动调用。...在Python中,构造函数通常被命名为 __init__,并且它会接收一个名为 self 的参数,该参数是对当前对象实例的引用。通过 self,你可以访问和设置对象的属性以及其他方法。...# 创建 MyClass 的一个实例,并传递参数 my_instance = MyClass(10, 20) # 调用对象的方法,该方法可以使用在构造函数中初始化的属性 result = my_instance.my_method...() # 结果应该是 30 在这个例子中,my_method 方法可以直接访问和使用在构造函数 __init__ 中初始化的 param1 和 param2 属性。

    16710

    12个很好玩的C语言面试题,不来测试下嘛?

    7.void*和C结构体 问:你能设计一个能接受任何类型的参数并返回interger(整数)结果的函数吗?...答:如下: ‍‍int func(void *ptr) ‍‍‍‍ 如果这个函数的参数超过一个,那么这个函数应该由一个结构体来调用,这个结构体可以由需要传递参数来填充。 8....答:尽管上面的程序有时候能够正常运行,但是在“inc()”中存在严重的漏洞。这个函数返回本地变量的地址。...因为本地变量的生命周期就是“inc()”的生命周期,所以在inc结束后,使用本地变量会发生不好的结果。这可以通过将main()中变量“a”的地址来避免,这样以后还可以修改这个地址存储的值。...12.处理printf()的参数 问:下面代码会输出什么? ? 答:输出结果是: 110..40..60 这是因为C语言里函数的参数默认是从右往左处理的,输出时是从左往右。

    1.1K3130

    『No25: 编写可读代码的艺术(2)』

    大家好,我叫谢伟,是一名程序员。 上节从编程语言特性的角度讲述了编写可读代码的几个要点。...A, C 那么应该准从什么样的尊则? 左边倾向于变量,右边倾向于常量; 其实这不是什么新的东西,在我们学习数学中的未知数的时候就是这么做的。...1.4 函数什么时候返回 经常我们编写函数的时候,喜欢声明一个变量用来存储结果,到所有的逻辑结束后返回这个变量作为函数的返回值。...几个建议: 可以提前进行函数返回值,多几个 return, 没关系 最好函数都要有返回值,Golang 里建议至少返回一个 错误信息 1.5 减少多层级的嵌套 层级的增多,增加了认知的负担。...如何减少嵌套: 提前函数返回 在循坏内使用 continue 2.

    64620

    经典C语言面试题

    在我的gcc里默认就是这样,所以我不得不使用编译命令‘-fno-stack-protector’来实现上述方案。 3.main()的返回类型 问:下面的代码能 编译通过吗?...7.void*和C结构体 问:你能设计一个能接受任何类型的参数并返回interger(整数)结果的函数吗?...答:如下: int func(void *ptr)  如果这个函数的参数超过一个,那么这个函数应该由一个结构体来调用,这个结构体可以由需要传递参数来填充。 8.*和++操作 问:下面的操作会输出什么?...这个函数返回本地变量的地址。因为本地变量的生命周期就是 “inc()”的生命周期,所以在inc结束后,使用本地变量会发生不好的结果。...这可以通过将main()中变量“a”的地址来避免,这样以后还可以修改 这个地址存储的值。 12.处理printf()的参数 问:下面代码会输出什么?

    2.8K50

    可以大体看出你C语言水平的十道题,挑战一下?

    6.void*和C结构体 问:你能设计一个能接受任何类型的参数并返回interger(整数)结果的函数吗?...答:如下: int func(void *ptr) 如果这个函数的参数超过一个,那么这个函数应该由一个结构体来调用,这个结构体可以由需要传递参数来填充。 7.*和++操作 问:下面的操作会输出什么?...9.返回本地变量的地址 问:下面代码有问题吗?如果有,该怎么修改?...这个函数返回本地变量的地址。因为本地变量的生命周期就是“inc()”的生命周期,所以在inc结束后,使用本地变量会发生不好的结果。...这可以通过将main()中变量“a”的地址来避免,这样以后还可以修改这个地址存储的值。 10.处理printf()的参数 问:下面代码会输出什么?

    48610

    12个有趣的C语言面试题

    在我的gcc里默认就是这样,所以我不得不使用编译命令‘-fno-stack-protector’来实现上述方案。 3.main()的返回类型 问:下面的代码能 编译通过吗?...7.void*和C结构体 问:你能设计一个能接受任何类型的参数并返回interger(整数)结果的函数吗?...答:如下: int func(void *ptr) 如果这个函数的参数超过一个,那么这个函数应该由一个结构体来调用,这个结构体可以由需要传递参数来填充。 8....这个函数返回本地变量的地址。因为本地变量的生命周期就是“inc()”的生命周期,所以在inc结束后,使用本地变量会发生不好的结果。...这可以通过将main()中变量“a”的地址来避免,这样以后还可以修改这个地址存储的值。 12.处理printf()的参数 问:下面代码会输出什么?

    81920

    【C++初阶】函数模板与类模板

    2.拔高训练 2-1自动推演实例化和显式实例化 那如果我想用一个同类型的Swap模板实例化出来的函数交换两个不同类型的实参,可以吗?...(比如求和),我们可以采取下面3种方法: 1.新建一个不同类型参数的函数模板 这样的话,不同类型和同一类型的实参都可以随意调用 template...,但是模板参数定义的是类型,函数参数定义的是形参变量 //正确写法: // template //错误写法: //template参数不同,就是不同类(和函数模板参数不一样,就是不同函数) //类模板的显式实例化 Stack St1(10); //函数模板的实例化 add(1, 2); 大胆的尝试:一个模板参数能同时用在类模板和函数模板上或不同的两个函数模板上吗...//4.命名空间域:解决与库中array的冲突问题 这里只讲第3点两个好处: 首先一定得采用传引用返回(出了作用域,_a[i]还是存在),在这里传引用返回行不通 至于两个好处: 传引用返回可以修改

    75740

    Python - 函数

    函数是可重复使用的,用来实现单一功能的代码段 使用函数描述程序中功能相似的代码段,从而消除代码的重复性 函数的定义 def 函数名(参数列表): 函数体 简单的栗子 # 简单的栗子 def max...Python 提供了 return 语句用于从函数中返回,当程序执行到 return 语句时,程序从函数中返回到调用函数的地方 实际栗子 # return def test2(): print...return 语句有两个常见用途 提前退出函数 返回具体的数据 提前退出函数 通常情况下,函数执行到最后一条语句时退出函数的执行 但某些情况下,可以通过 return 语句提前退出函数(向上面的栗子其实就是了...,那么会返回 None 函数的返回值 return 语句可以携带参数,该参数作为函数的计算结果返回给调用方 return 返回值 return 一个返回值 求和函数 # return a def test3...不是,函数可以不写 return 语句 但变量赋值这个函数的时候,会得到一个 None 函数 + pass 语句 有时候只想先声明一个函数,但并不想这么快写代码块,怎么办呢 错误写法 def test(

    82720

    C#之Yield Return语法的作用和好处

    还是和以前一样,我先上代码,请大家先拿到我的代码或者你跟着敲,运行看效果,以及理解每行带代码的作用。 我们要带着为什么要用Yield这个关键字,不用可以吗这个目的去学知识,我相信会更加的有意思。...我们可以通过这个构造函数往待测试集合中存入1-100这100个测试数据 { _numArray = new List(); //给集合变量开始在堆内存上开内存...可能有人会觉得奇怪返回类型不是List这样可以吗 //这个就要回到我们的里氏替换原则了,子类是可以替换父类的,也就是当父类用 //比如我这个方法是想得到...我们可以通过这个构造函数往待测试集合中存入1-100这100个测试数据 { _numArray = new List(); //给集合变量开始在堆内存上开内存...你发现没下次执行这个函数上次跑来的代码是不会重复执行的, 但是你一般的return result 假如你在循环体提前return ,下面调这个函数是会从第一步开始重新执行的。不会记录上次执行的地方。

    29560

    进入编译器后,一个函数经历了什么?

    “一般有三种:” cdcel,参数从右往左入栈,主调函数负责恢复栈平衡 stdcall,参数从右往左入栈,被调函数负责恢复栈平衡 fastcall,参数通过寄存器传递,寄存器不够再用栈传递 “他刚才看你没有显式声明...,我小声问到。 工作人员没有搭理我,忙着给我的资料上加东西。 旁边的小伙伴又把我拽了过去,说到:“咱们函数里面定义的局部变量、参数是存放在线程栈里面的。...线程要不断游走在不同的函数中,调用函数后为了能回到原来的地方,调用之前把返回地址也放在了线程栈里。就像这样,你看会不会有什么问题:” ?...“你看,函数进来之前,先在局部变量和返回地址之间设置一个数值,函数返回之前再去检查一下,如果栈里的数据被破坏了,检查这个数值就能发现,提前抛出异常!”,小伙伴耐心的解释到。...链接 没过一会儿,我们这一队的所有函数代码都编译完成,大家从原来的.c文件都搬到了新家:一个.o文件,我也再次见到了小伙伴str_lower。 “咱们是不是已经完成了编译,可以离开这里了吧?”

    74610

    前端进阶必会的22个JavaScript技巧总结

    函数柯里化仅仅只是上面求和的这种运用吗?? ?这个问题,有必要去?一下。其实利用函数柯里化这种思想,我们可以更好的实现函数的封装。...手写 find 方法 find() 方法返回数组中满足提供的测试函数的第一个元素的值。否则返回 undefined。 ? 拉平数组 将嵌套的数组扁平化,在处理业务数据场景中是频率出现比较高的。...值得思考的是,懒加载和惰性函数有什么不一样嘛? 我所理解的懒加载顾名思义就是需要了才去加载,懒加载正是惰性的一种,但惰性函数不仅仅是懒加载,它还可以包含另外一种方向。...4.预加载 预加载顾名思义就是提前加载,比如提前加载图片。 ? 当用户需要查看时,可直接从本地缓存中取。...22.私有变量的实现 ? 以上是 es5 实现的私有变量的封装,通过使用 WeakMap 可以扩展每个实例所对应的私有属性,私有属性在外部无法被访问,而且随 this 对象的销毁和消失。

    60620

    【嵌入式入门篇】嵌入式0基础沉浸式刷题篇1

    问题描述:在一个递归函数recursion中,有一个static修饰的变量m,它被初始化为0。...现在该函数输入了一个数字n,牛牛在每次递归调用该函数的时候,都将m+n的值赋值给变量m,直到n为0时结束递归。于是牛牛就想知道这个m最后到底等于多少,你能帮牛牛实现这个递归函数,返回m的值吗?...牛牛想知道牛客网的后台使用的是哪种模式,你能根据函数输入的数据判断吗? 示例输入:1 (大端模式返回数字1,小端模式返回数字0.)...假设牛牛不允许你使用任何排序方法将这些整数有序化,你能快速找到从0开始的第450小的数字吗?...(输入三个相应类型的变量用于初始化结构体) 示例输入:1,1.000,a 示例输出:13 示例代码: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * @param

    10610

    程序员面试闪充--Block

    1、介绍 Block是OC中非常重要的一种技术手段 2、从c函数和oc函数的区别来定义block C函数写法:int add(int num1, int num2) OC函数写法:-(void)show...2)定义带参数的block 格式: void (^block名称)(参数列表) = ^(参数列表){//代码实现} 在代码中,如果要使用到参数,就必须要带上变量名,所以定义x,y。...在用block做参数的那份代码中,dailyWork方法的返回值是空,而现在我们可以将它的返回值类型修改为workBlock类型,然后在最后返回一个work。...workBlock workFunc(int day){} 将day作为参数加入到block中,如此一来就可以按照天数来决定调用哪一块代码 //声明一个函数,该返回值是workBlock workBlock...2、如果在block里面修改外部变量的值,会报错吗?

    62080

    进阶 | 函数与函数式编程

    在变量对象详解中我有提到过,变量对象的创建过程中,函数声明比变量声明具有更为优先的执行顺序,即我们常常提到的函数声明提前。...大家还记得我们前面讲到过的闭包的特性吗?没错,利用闭包,我们可以访问到执行上下文内部的变量和方法,因此,我们只需要根据闭包的定义,创建一个闭包,将你认为需要公开的变量和方法开放出来即可。...function(){}(),+function(){}() 二、函数参数传递方式:按值传递 还记得基本数据类型与引用数据类型在复制上的差异吗?...函数是第一等公民 所谓"第一等公民"(first class),指的是函数与其他数据类型一样,处于平等地位,可以赋值给其他变量,也可以作为参数,传入另一个函数,或者作为别的函数的返回值。...函数式编程强调没有"副作用",意味着函数要保持独立,所有功能就是返回一个新的值,没有其他行为,尤其是不得修改外部变量的值。 即所谓的只要是同样的参数传入,返回的结果一定是相等的。

    36431

    什么是堆和栈,它们在哪儿?

    在栈上创建变量的时候会扩展,并且会自动回收。 相比堆而言在栈上分配要快的多。 用数据结构中的栈实现。 存储局部数据,返回地址,用做参数传递。...如果函数中有一个 32-bit 的局部变量会在栈中留够四字节的空间。当函数返回时,sp 通过返回原来的位置来释放空间。 如果函数有参数的话,在函数调用之前,会将参数压栈。...函数中的代码通过 sp 的当前位置来定位参数并访问它们。 函数嵌套调用和使用魔法一样,每一次新调用的函数都会分配函数参数,返回值地址、局部变量空间、嵌套调用的活动记录都要被压入栈中。...(译者注:“不同语言的异常提示不同,因此通过语言运行时来转换”我想他表达的是这个含 义) ? *函数的分配可以用堆来代替栈吗?...下面是一些不确定点: 我没有听过 bookkeeping data 这种说法,故没有翻译。从上下文理解来看,可以想成是用来寄存器值?函数参数?返回地址?如果有了解具体含义的朋友,烦请告知。

    1.9K50

    3-学习GPRS_Air202(需要知道的关于Lua的一些基本的知识)

    我希望能用自己的通俗易懂的技术文章唤起很多人学习的乐趣..让知识变得从未如此性感.... 知识是枯燥的吗??就我现在感觉,知识就是工具,也是乐趣. 知识难吗?...前面那个数控制,用来指定一个起始点; 然后select函数将返回指定的多重返回值序列中  起点开始 到 序列末尾为止  的部分 ? ? 我现在需要得到传进来的值 第一种 ? 第二种 ?...看来 arg默认接收第一个参数 上面只是铺垫 用lua开发过WIFI  的朋友发没发现一个文件里面的全局变量和函数不用做任何的设置就可以在另一个文件里面用了(前提前一个文件先加载) 先说一句,,别忘了数组的变量可以是函数...如果写的程序少没啥子问题...万一多了...变量函数一大堆.....真怕重名....就乱了 所以呢最好是每个文件能够独立起来,然后我用到哪个文件里面的变量或函数就利用某种途径调用,,,,, 还记不记得C...现在看lua怎么办 table起了大作用,,,因为table 既可以存变量又可以存函数,,,,, 如果table在一个文件里面是局部的,然后呢把变量个函数都存进去,,,,,然后通过某种方式调用这个table

    49150

    这几道C语言题涉及你的知识盲区?

    gets() 的使用,这个函数从 stdin 接收一个字符串而不检查它所复制的缓存的容积,这可能会导致缓存溢出。...7.返回本地变量的地址 问:下面代码有问题吗?如果有,该怎么修改?...这个函数返回本地变量的地址。因为本地变量的生命周期就是 “inc()” 的生命周期,所以在 inc 结束后,使用本地变量会发生不好的结果。...这可以通过将 main() 中变量 “a” 的地址来避免,这样以后还可以修改这个地址存储的值。 8.处理printf()的参数 问:下面代码会输出什么?...%d \n", a+b+c, (b = b*2), (c = c*2)); return 0; } 答:输出结果是: 110..40..60 这是因为C语言里函数的参数默认是从右往左处理的,输出时是从左往右

    61120
    领券