python——函数

函数

函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段

语法:

  def 函数名(参数列表):

   函数体

   return XXX


1. 函数的定义:

[python] view plain copy

def func_name(参数1,2...):  

"函数底下第一行写一个str会作为函数的文档DocStrings"  

 print("hello world!") 

print("hello again!")  

 函数底下缩进一个TAB的都是函数的代码块  

 按照语法就定义了一个函数,函数名为 func_name

 调用时输入: func_name(需要输入的参数) 进行调用。

 使用: func_name.__doc__ 即可调用函数的DocStrings,一般用作为阐述函数的功能。

 

 2. 函数的参数传递:

 参数传递有两种方式:一是值传递,将参数复制一份副本(堆和栈中都复制)传入函数内,函数内部修改的数据

 实际上是复制的副本,原参数不会受到影响;

[python] view plain copy

a = [1,2,3]  

def foo(x):  

x[1] = 10  

foo(a)   调用函数  

print(a) >> [1,2,3] 仍为原值 

 另一种是 引用传递 将参数本身传入函数中进行数据操作,只适用于 list,dict等可变量。值得注意的是,要使用引用传递,

必须要在参数中把可变量的值写进去,如果只是传入一个变量,则还是值传递:

[python] view plain copy

def foo(x): 

x.pop() 

return x 


 引用传递  

print(foo([1,2,3])) >> [1,2] 


 值传递  

l = [1,2,3]  

foo(l)  

print(l) >> [1,2,3]  仍为原值 


3. 函数的几种参数

函数有 5 种参数,必选参数,默认参数,可变参数,关键字参数,命名关键字参数。

必选参数,就是普通的参数。

默认参数,调用时可省略,会有一个默认值。语法是加个 = x

[python] view plain copy

def foo(a,b=2,c=3):  

pass  

 b,c 是默认参数  

 可变参数,可传入任意个参数,自动组成一个 tuple。语法是 *参数,也可直接调用时 *list

[python] view plain copy

def foo(*sdf): 

pass  

foo(1,2,3,3,4,4,2,32) 组成元组传入函数内 

l = [1,2,3,4]  

foo(*l)  list每个值取出,组成元组。  

 关键字参数,**kw(固定语法) 可传入 任意个 等号键值对(a=2,键不需要引号) 的参数,组成一个字典传入函数,类似,

可以调用时 **dict 传入字典内所有内容。

[python] view plain copy

def foo(**kw):  

pass  

foo(name="sd",age=18) 

d = {"name":"dsf","age":20}  

foo(**d)  

 命名关键字,foo(a,b,*,name,age) 用一个星号,星号后面的都是命名关键字参数。仍然可以输入任意的 等号键值对 ,

相当于从中筛选出 name, age 两个键值对,没什么用。同时定义时,星号后的可以写成默认参数。

[python] view plain copy

def foo(a,b,*,name="pop",age=20): 

pass 

foo(a,b)  默认值补上  

foo(a,b,name="sdf",class="ed",age=30)  

 class 被忽略 

5. 全局变量

在外部创建的变量为全局变量,作用域为全部。函数内部定义的变量为局部变量,作用域仅限于函数内。如果想在函数内

使用全局变量,直接使用,但是不能赋值,由于python的创建变量机制,解释器会认为是在函数内创建一个新的变量。

解决方法 global 变量名,声明使用的是全局变量。建议定义全局变量写 g_变量名。

[python] view plain copy

a = 21  

def foo():  

global a  

a = 30  

print(a) >> 30  

6. 匿名函数

适用于简单的函数(只有一行表达式的函数),用完就删。

[python] view plain copy

lambda x,y:x+y 

冒号前为参数,冒号后为返回值  

lambda是固定语法  


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于Python的计算思维训练主要涉及到函数的概念。函数Python中的基本编程结构,通过函数可以将一系列操作封装起来,提高代码的复用性和可维护性。 首先,函数的定义和调用是计算思维中重要的一部分。学习者需要理解如何使用def关键字定义函数,并且学会传入参数和返回数值。这能够帮助他们将复杂的问题拆分成更小的部分,然后再分别解决。 其次,函数的参数和返回值的运用是培养计算思维的有效途径。学习者需要理解函数的参数可以是任意类型的数据,也可以是默认值,还可以是可变数量的参数。同时,他们需要掌握函数可以返回单个数值、多个数值或者其他函数的能力。 此外,函数的嵌套和递归是培养计算思维的重要方法。学习者需要了解函数可以在其内部调用其他函数,从而实现更复杂的功能。而递归则可以帮助他们理解问题的分治和循环求解策略。 最后,函数的高阶用法和闭包也是培养计算思维的关键。学习者需要明白函数可以作为参数传递给其他函数,也可以作为返回值被另一个函数使用。此外,他们还需要掌握闭包的概念和运用,以便更好地理解函数的作用域和生命周期。 通过学习和实践以上内容,学习者不仅可以掌握Python函数的用法,还可以培养出较强的计算思维能力,从而更好地应对复杂的问题和挑战。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值