设为首页 加入收藏

TOP

Python快速入门学习笔记(三)——函数的定义与调用
2017-09-30 17:38:32 】 浏览:8890
Tags:Python 快速 入门 学习 笔记 函数 定义 调用

定义函数

Python中定义函数的格式为:

def fun([参数列表]):
... 

函数在执行到return语句时结束,并将结果返回。如果没有return语句,函数执行完毕后返回None。
例:

def myAge(x):
    if x < 0:
        print 'error:invalid number'
    elif x > 120:
        print 'error:too large number'
    else:
        print 'my age is ' + str(x) 
myAge(20)

结果为:

my age is 20

ps:str(x)函数我一开始并不知道具体功能是什么,只是觉得应该要将int型转换成string类型再输出,按了下s,就在代码补全的列表里看到了str函数,放上去后居然能正确运行...

出于好奇我去Google了下这个函数的功能,Google解释如下:

The str() function is meant to return representations of values which are fairly human-readable...

大致意思是说,str函数是返回一个适合人类阅读的值...
比如,输入

s = 'hello,world'
str(s)

返回结果为:

'hello,world'

输出的结果是用引号包含的,这个“适合人类阅读”的值应该也是string类型的,难怪我加了str后就可以正常运行了!

pps:我又发现那段代码可以改为:

print 'my age is ',x

返回多个值

Python支持多个值返回,如以下程序使物体从一个坐标移动到另一个坐标:

import math

def move(x,y,step,angle = 0):
    nx = x + step * math.cos(angle)
    ny = y - step * math.sin(angle)
    return nx,ny
x,y = move(100,100,60,math.pi*6)
print x,y

结果为:

160.0 100.0

事实上,这种“返回多个值”返回的是一个tuple类型:

m = move(100,100,60,math.pi*6)
print m

用这段代码替换上面调用move函数的代码,结果为:

(160.0, 100.00000000000004)

 函数的参数

Python里函数的参数是非常灵活的,Python除了正常的必选参数外,还可以使用默认参数、可变参数、关键字参数,使得函数定义出来的借口,不但能处理复杂的参数,还可以简化调用者的代码。

默认参数

以下是一个能计算任意次方的函数(默认计算二次方):

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

这样,当我们调用power(5)时,相当于调用power(5,2):

power(5)  # power(5,2)

结果为:

25

默认参数和C++中构造函数默认参数列表相似。

可变参数

可变参数,顾名思义,就是传入的参数的个数是可变的,可以是0个、1个、2个到任一个。

如:求a^2+b^2+c^2+...+n^2的值。

一般情况下,我们可以定义一个函数,再以一个tuple或list作为参数传入:

def calcul(numbers):
    sum = 0
    for n in numbers:
    sum = sum + n * n
    return sum

cal([1,2,3])    #参数为list
    

如果想要改成可变参数列表的形式,只需在参数前加上*号:

def calcul(*numbers)
    sum = 0
    for n in numbers:
    sum = sum + n * n
    return sum
    
cal(1,2,3)      #参数个数是可变的,在调用时自动组装为tuple

调用结果均为:

14

关键字参数

关键字参数允许我们传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict

def person(name,age,**other):
    print 'name:',name,' age:',age,' other:'other

该函数除了必选参数name,age外,还接受关键字参数other。在调用该函数时,可以只传入必选参数:

person('Larry',21)

调用结果为:

name: Larry,age: 21,other: {}

又如,调用

person('Larry',21,Sch = 'HFUT',Dept = 'CS')

的结果为:

name: Larry,age: 21,other: {'Sch':'HFUT','Dept':'CS'}

关键字参数可以很好的扩展函数的功能,可以使我们更为方便的处理事务。

参数组合

在Python中,必选参数、默认参数、可变参数和关键字参数可以一起使用,但是必须要严格按照此顺序,如:

def fun(a,b,c = 0,*argc,**kw):
    print 'a = ',a,'b = ',b,'c = ',c,'argc = '.argc,'kw = ',kw

在调用函数的时候,Python解释器按照参数的位置和名字把对应的参数传进去:

func(1, 2)
a = 1 b = 2 c = 0 args = () kw = {}

func(1, 2, c=3)
a = 1 b = 2 c = 3 args = () kw = {}

func(1, 2, 3, 'a', 'b')
a = 1 b = 2 c = 3 args = ('a', 'b') kw = {}

func(1, 2, 3, 'a', 'b', x=99)
a = 1 b = 2 c = 3 args = ('a', 'b') kw = {'x': 99}
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇python 端口扫描 下一篇利用Python进行数据分析 基础系列..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目