Python中函数的定义与使用


一、函数基本定义

  定义函数的目的是为了让一段代码可以被重复使用

  函数定义的语法:

def  函数名([参数,参数.....]):
    函数主体代码(多行代码)
    [return [返回值]]
注:函数中的函数体都通过缩进来定义

  实例一:定义一个无参有返回值的函数

# coding=UTF-8
def get_info(): 
    #获取信息的函数
    return "我的第一个函数"

print(get_info()) #调用函数,直接返回内容输出

  程序执行结果:

  

 

 

二、函数的参数传递

 

  实例一:

# coding=UTF-8
def echo(title,url):
    return "网站名称:%s,主页地址:%s"%(title,url)

print(echo("百度","www.baidu.com"))

print(echo(url="www.baidu.com",title="百度"))

   

  实例二:定义参数的默认值

# coding=UTF-8
def echo(title,url="www.taobao.com"):
    return "网站名称:{},主页地址:{}".format(title,url)
#打印输出指定标题及网址
print(echo("百度","www.baidu.com"))
#打印输出不指定网址
print(echo("淘宝"))

  执行结果:

  

 

 注:如果在参数上定义了默认值,那么该参数一定要放在参数列表的最后

 

  实例二:使用函数修改列表

# coding=UTF-8
def change_data(list):
    list.append("one")  #修改列表内容
#定义infos列表
infos = ["tow"]
change_data(infos)  #函数扩充列表内容
print(infos)  #输出infos列表

  执行结果:

   

 

三、可变参数

  按照之前的参数形式,只要函数定义了几个参数,在函数调用的时候就必须明确的传递几个参数,在Python中为了灵活的使用参数提供有可变参数的形式。

  可变参数都使用元组来进行接收。

  实例一:使用元组(使用“*”标记来声明)的可变参数实现累加及累减的操作

# coding=UTF-8
def math(cmd,*numbers): # *代表numbers定义的是一个元组
    print("可变参数numbers的类型:%s,参数的数量:%d" %(type(numbers),len(numbers)))
    sum = 0 #保存计算结果
    if cmd == "+":
        for num in numbers:
            sum += num
    elif cmd == "-":
        for num in numbers:
            sum -= num
    return sum

print("数字的累加结果:%d" %math("+",1,2,3,4,5,6,7,8,9))
print("数字的累减结果:%d" %math("-",1,2,3,4,5,6,7,8,9))

  执行结果:

  

 

 

 

  实例二:使用字典(可以使用“**”标记来声明)来实现关键字参数的传递

# coding=UTF-8
def print_info(name,**urls):
    """
    定义输出函数
    param name:用户姓名
    param urls:一组key=value的组合 网站名=网址
    """
    print("用户姓名:%s" %name)
    print("喜欢的网站:")
    for key,value in urls.items():
        print("\t|-%s:%s" %(key,value))

print_info("风之老凌",baidu="www.baidu.com",taobao="www.taobao.com")

  执行结果:

  

 

 

四、定义混合参数

  函数中参数的类型可以有很多种:必选参数、默认参数、可变参数、命名关键字参数和关键字参数,这些参数在定义是也要考虑到其各自的语法参数问题。

   实例一:

# coding=UTF-8
def print_info(name,age,*inst,**urls):
    print("用户姓名:%s,年龄:%s" %(name,age))
    print("用户的兴趣:",end="")
    for item in inst:
        print(item,end="")
    print("\n喜欢的网站:")
    for key,value in urls.items():
        print("\t|-%s:%s" %(key,value))

print_info("风之老凌",20,"看书","写作",baidu="www.baidu.com",taobao="www.taobao.com")

  执行结果:

  

 

 

五、函数的递归调用 (如非必要情况不建议使用递归)

递归调用的处理条件

  需要明确的定义一个递归调用的结束条件

  每一次调用的时候都需要修改相应的参数的内容

 

  实例一:使用递归计算1-99的和

# coding=UTF-8
def sum(num):
    if num == 1:
        return 1
    return num + sum(num -1)

print("1-99的和:%d" %sum(100))

  执行结果:

  

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM