Python学习:函数(function)

编写函数

  • def是可执行的代码。Python函数是有一个新的语句便携的,即def。不像C这样的编译语言,def是一个可执行的语句,函数并不存在,知道Python运行了def后才存在。事实上,if语句、while语句升至是其他的 def中嵌套都是合法的。
  • def创建一个函数对象,并将其赋值给某一变量名。当Python运行到def语句时,将会生成一个新的函数对象并将其赋值给这个函数名。就像所有赋值一样,函数名变成了某一个函数的引用。函数对象可以赋值给其他的变量名,保存在列表中。函数也可以通过lambda表达式来创建。
  • lambda创建一个对象但将其作为结果返回。这一功能允许我们把函数定义内敛到语法上一条def语句不能工作的地方。属于高级概念。
  • return将一个结果对象发送给调用者。
  • yield向调用者发挥一个结果对象,但是记住它离开的地方。像生成器这样的函数也可以通过yield语句来返回值,并挂起它们的状态以便稍后能够恢复状态,属于高级概念。
  • global声明了一个模块级的变量并被赋值。在默认情况下,所有在一个函数中被赋值的对象,是这个函数的本地变量,并且仅在这个函数运行过程中存在。为了分配一个可以在整个模块中都可以使用的变量名,函数需要在global语句中将它列举出来。
  • 函数是通过赋值(对象引用)传递的。

函数的定义

创建一个新的函数对象,封装这个函数的代码,并将这个对象赋值给变量名times。

>>>def times(x,y):
>>>    return x*y
...

函数的调用

>>>x = times(2,4)
>>>x
8

>>>x = times(‘Judy‘, 4)
>>>x
‘JudyJudyJudyJudy‘

Python中的多态

从上面两个例子中看到,times函数中表达式x*y的意义完全取决于x和y的对象类型,同样的函数,在一个实例下执行的是乘法,在另一个实例中执行的却是赋值。Python将对某一对象在某种语法下的合理性交由对象自身判断。这种依赖类型的行为称为多态。

例子:寻找序列的交集

def intersect(seq1, seq2):
    res = []
    for x in seq1:
        if x in seq2:
            res.append(x)
    return res

或者用经典的列表解析表达式来替代:

>>>[x for x in seq1 if x in seq2]

这个单个的代码段可以应用于整个的对象类型范围。

时间: 2024-08-26 12:39:40

Python学习:函数(function)的相关文章

python学习——函数的参数

定义函数的时候,我们把参数的名字和位置确定下来,函数的接口定义就完成了.对于函数的调用者来说,只需要知道如何传递正确的参数,以及函数将返回什么样的值就够了,函数内部的复杂逻辑被封装起来,调用者无需了解. Python的函数定义非常简单,但灵活度却非常大.除了正常定义的必选参数外,还可以使用默认参数.可变参数和关键字参数,使得函数定义出来的接口,不但能处理复杂的参数,还可以简化调用者的代码. 位置参数 我们先写一个计算x2的函数: def power(x): return x * x 对于powe

PHP学习 函数 function

参数默认值function drink($kind ='tea'){echo 'would you please a cup'.$kind.'<br>';} drink();drink('coffee');********************************************** 可变长参数列表function tour(...$cities){ foreach($cities as $n) echo $n.'<br>';} tour('beijing','sha

Python学习—函数

函数 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率. 1.定义函数 Python 定义函数使用 def 关键字,一般格式如下: def 函数名(参数列表): 函数体 简单的说明: 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 (). 任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数. 函数的第一行语句可以选择性地使用文档字符串-用于存放函数说明. 函数内容以冒号起始,并且缩进. return [表

python学习 函数

# -*- config=utf-8 -*- #################################### 函数 ################################## def func_02(a,b):# a b :形式参数 if a>b: print("a 大于 b") else: print("b大于等于a"); func_02(2,4);# 2 4 :实际参数 #################################

python学习 -函数---递归--模块(os)--时间操作

#函数补充# 位置参数 def hello (name,sex)# 默认值参数 def hello (countyu = 'china')# def send_report(*args) 可变参数.参数组 不是必填,不限制个数,传入后保存为元组 #*args, # 1.不是必填参数 # 2.不限制参数的个数 # 3.传入多个参数的时候他把参数放到一个元组里面# def send_report(*args):# print('发邮件')# print(args)# send_report()# s

Python学习-函数补充1

1.普通参数(严格按照顺序,将实际参数赋值给形式参数) 2.默认参数(必须放置在参数列表的最后) 3.制定参数(将实际参数赋值给指定的形式参数) 4.动态参数:*(一个*表示在传递参数时,传递的所有参数都会被当作一个元素存放进元组中) (传递的参数前面带一个*时,表示将该参数拆分开,将其拆分的字符分别作为一个元素存放进元组中) def f1(*args):    print(args) f1(["lq",12,"le"]) ("["lq"

day10 python学习 函数的嵌套命名空间作用域等

1.三元运算 #1.三元运算 利用已下方法就可以实现一步运算返回a b中大的值 def my_max(a,b): c=0 a=int(input('请输入')) b=int(input('请输入')) # if a>b: # c=a # else: # c=b #或者这样 c = a if a > b else b return c ret=my_max(1,3) print(ret) 2.补充上节差的知识点 形参: #位置参数 #默认参数(关键字参数) #动态参数 *args:接收说有按照位

python学习--函数例子

1 #01 函数的定义,调用 2 #生日歌 3 def happy(): 4 print("Happy birthday to you!") 5 6 def sing(person): 7 happy() 8 happy() 9 print("Happy birthday, dear", person + "!") 10 happy() 11 12 def main(): 13 sing("Mike") 14 print()

第22日python学习函数前引和递归

函数前引用:函数即变量,需要在引用前定义好. def test (): print("from test") test1() def test1(): print("from test1")test() def test (): print("from test") test1()test()def test1(): print("from test1") 递归:例如:问路的事情(问了很多人),最后一个人知道了在回传回来 原文

Python学习-函数补充2-内置函数

1.abs()    求绝对值 2.all()     参数全部为真,则返回True,否则返回False 3.any()    参数中存在任一个为真,则返回True,全部为假才返回False 4.bin()    将参数转换为二进制表示0b 5.oct()    将参数转换为相应八进制表示0o 6.hex()    将参数转换为相应十六进制表示0x 7.bytes()    将参数转换成字节类型 bytes(要转换的字符串 , 按照什么编码) 8.callable()    是否可被调用的判断