Python学习笔记——函数

1.定义函数:

  在Python中,定义一个函数要使用def语句,依次写出函数名、括号、括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用return语句返回。如果一个函数什么也不做,需要用到pass语句(C,Java中可以直接不写代码,python必须要写pass占位,否则报错)。

def my_abs(x):
    if x >= 0:
        return x
    else:
        return -x

2.参数检查:

  isinstance(object, classinfo),其第一个参数为对象,第二个为类型名或类型名的一个列表。其返回值为布尔型。若对象的类型与参数二的类型相同则返回True。若参数二为一个元组,则若对象类型与元组中类型名之一相同即返回True。

def my_abs(x):
    if not isinstance(x, (int, float)):
        raise TypeError(‘bad operand type‘)
    if x >= 0:
        return x
    else:
        return -x

 3.返回多个值:

  python参数可以返回多个值,实质上是返回一个元组。多个变量可以同时接收一个元组,按位置赋值。

 4. 关于参数:

  4.1 默认参数:

  python的函数参数可以设置一个默认值,当不传入相应的参数时,就按默认值处理。如下面的示例打印的都是25。

def power(x, n=2):
    s = 1
    while n > 0:
        n = n - 1
        s = s * x
    return s
print power(5)
print power(5, 2)

  有多个默认参数时,可以按顺序传入,也可以使用“参数名=参数值”的形式传递。

def enroll(name, gender, age=6, city=‘Beijing‘):
    print ‘name:‘, name
    print ‘gender:‘, gender
    print ‘age:‘, age
    print ‘city:‘, cityenroll(‘Adam‘, ‘M‘, city = ‘Chengdu‘)enroll(‘Tom‘, ‘M‘, 7)

  默认参数值一般来说为不可变对象,否则默认参数值可能会随着调用而改变。例如:

def add_end(L=[]):
    L.append(‘END‘)
    return Lprint add_end(),print add_end()

  输出是[‘END‘] [‘END‘, ‘END‘]。

  4.2 可变参数:

  可变参数就是传入的参数个数是可变的,其实也可以通过列表或元组来实现。可变参数如下所示:

def calc(*numbers):
    sum = 0
    for n in numbers:
        sum = sum + n * n
    return sum
print calc(1, 2, 3)print calc()

  如果要传入的参数存储在列表中,可以 calc(*listname) 。

  4.3  关键字参数:

  关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict。关键字参数前面加**,示例如下:

def person(name, age, **kw):
    print ‘name:‘, name, ‘age:‘, age, ‘other:‘, kw

print  person(‘Bob‘, 35, city=‘Beijing‘)kw = {‘city‘: ‘Beijing‘, ‘job‘: ‘Engineer‘}
print person(‘Jack‘, 24, **kw)

  4.4 参数组合:

  4种参数都可以一起使用,或者只用其中某些,但是请注意,参数定义的顺序必须是:必选参数、默认参数、可变参数和关键字参数。

def func(a, b, c=0, *args, **kw):
    print ‘a =‘, a, ‘b =‘, b, ‘c =‘, c, ‘args =‘, args, ‘kw =‘, kw
args = (1, 2, 3, 4)
kw = {‘x‘: 99}
print func(*args, **kw)  #对于任意函数,都可以通过func(*args, **kw)的形式调用它
# 打印结果:a = 1 b = 2 c = 3 args = (4,) kw = {‘x‘: 99}

 

  

时间: 2024-10-10 06:26:27

Python学习笔记——函数的相关文章

python 学习笔记 函数和类

与java类似 python的函数也是出于可以复用才使用的 如果一段代码没有复用的价值就可以不用函数 一般的函数可以定义成这样: def func(a,b=123,*arg,**args): for x in arg:#arg是一个list print x for x,y in args.items():#args是一个dict print x,y print 'a:',a print 'b:',b func(1,1,2,3,4,c=1,d=2) 结果: 2 3 4 c 1 d 2 a: 1 b

python学习笔记 - 函数,集合,包,模块

一.函数 a=1, b=2, 交换值 定义中间量c,C=None, a,b=b,a a,b,c=1,2,3 sys.argv 实现指定的某些功能,使用的时候可以直接调用,简化代码,提高代码复用性 def fun():#定义一个函数,后面是函数名                print("Hello World")#函数体 例如: 1.def sayHello(): print("Hello World") sayHello()  --调用 2.def sayNam

Python学习笔记-函数篇

定义 返回单值 def my_abs(x): if x >= 0: return x else: return -x 返回多值 返回多值就是返回一个tuple import math def move(x, y, step, angle=0): nx = x + step * math.cos(angle) ny = y - step * math.sin(angle) return nx, ny 空函数 def nop(): pass 指定默认参数 必选参数在前,默认参数在后.默认参数需指向不

Python 学习笔记-函数(一)传参

首先明确字符串,数字和元组作为函数参数时是不可变的,但是列表和字典等数据结构却是可以改变的. def change(n):     n[0]='apple' names=['banana','pear'] n=names[:] change(n) print names,n ['banana', 'pear'] ['apple', 'pear'] 修改后让原始列表保持不变. 假设现在要编写一个存储姓名, 年龄,部门并能够根据这三样进行联系人查询的程序: 因为是查询多个元素,首先想到了字典这种数据

Python学习笔记#函数中使用文档,让你的函数更容易理解

>>> def intadd(a,b): 'this is a test of the doc of function' return a+b >>> intadd(2,3) 5 >>> intadd.__doc__ 'this is a test of the doc of function' >>>

python学习笔记11-python内置函数

python学习笔记11-python内置函数 一.查看python的函数介绍: https://docs.python.org/2/library/ 二.python内置函数 1.abs获取绝对值: 通过python官网查看abs abs(x) Return the absolute value of a number. The argument may be a plain or long integer or a floating point number. If the argument

python学习笔记之函数总结--高阶函数以及装饰器

python学习笔记之函数总结--高阶函数以及装饰器 Python特点: 1.不是纯函数式编程(允许变量存在): 2.支持高阶函数(可以传入函数作为变量): 3.支持闭包(可以返回函数): 4.有限度的支持匿名函数: 高阶函数: 1.变量可以指向函数: 2.函数的参数可以接收变量: 3.一个函数可以接收另一个函数作为参数: 下面我将示例一些函数的写法以及使用,并说明python中函数的特性: 1.基本的高阶函数示例: #!/usr/bin/env python def func():      

python学习笔记(03):函数

默认参数值:   只有在行参表末尾的哪些参数可以有默认参数值,即 def func(a, b=5 )#有效的 def func( a=5,b )#无效的 关键参数: #!/usr/bin/python # Filename: func_key.py def func(a, b=5, c=10): print 'a is', a, 'and b is', b, 'and c is', c func(3, 7) func(25, c=24) func(c=50, a=100) #输出: $ pyth

Python学习笔记010——匿名函数lambda

1 语法 my_lambda = lambda arg1, arg2 : arg1 + arg2 + 1 arg1.arg2:参数 arg1 + arg2 + 1 :表达式 2 描述 匿名函数不需要return来返回值,表达式本身结果就是返回值. lambda 仅简洁了代码,并不会提高程序运行效率 如果可以用 for...in...if 来完成的,最好不使用匿名函数lambda 使用lambda时,函数内不要包含循环.嵌套:如果存在,则最好使用def函数来完成,这样的代码可读性和复用性均较高 l