python中为什么要使用函数_Python中函数的定义与使用

一、函数基本定义

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

函数定义的语法:

def函数名([参数,参数.....]):

函数主体代码(多行代码)

[return [返回值]]

注:函数中的函数体都通过缩进来定义

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

#coding=UTF-8

defget_info():#获取信息的函数

return "我的第一个函数"

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

程序执行结果:

二、函数的参数传递

实例一:

#coding=UTF-8

defecho(title,url):return "网站名称:%s,主页地址:%s"%(title,url)print(echo("百度","www.baidu.com"))print(echo(url="www.baidu.com",title="百度"))

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

# coding=UTF-8defecho(title,url="www.taobao.com"):

return"网站名称:{},主页地址:{}".format(title,url)

#打印输出指定标题及网址

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

#打印输出不指定网址

print(echo("淘宝"))

执行结果:

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

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

# coding=UTF-8def change_data(list):

list.append("one") #修改列表内容

#定义infos列表

infos= ["tow"]

change_data(infos) #函数扩充列表内容

print(infos) #输出infos列表

执行结果:

三、可变参数

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

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

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

# coding=UTF-8def math(cmd,*numbers): # *代表numbers定义的是一个元组

print("可变参数numbers的类型:%s,参数的数量:%d" %(type(numbers),len(numbers)))sum = 0#保存计算结果if cmd == "+":for num innumbers:sum +=numelif cmd == "-":for num innumbers:sum -=num

returnsumprint("数字的累加结果:%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-8def print_info(name,**urls):"""定义输出函数

param name:用户姓名

param urls:一组key=value的组合 网站名=网址""" print("用户姓名:%s" %name)

print("喜欢的网站:")for key,value inurls.items():

print("\t|-%s:%s" %(key,value))

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

执行结果:

四、定义混合参数

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

实例一:

# coding=UTF-8def print_info(name,age,*inst,**urls):

print("用户姓名:%s,年龄:%s" %(name,age))

print("用户的兴趣:",end="")for item ininst:

print(item,end="、")

print("\n喜欢的网站:")for key,value inurls.items():

print("\t|-%s:%s" %(key,value))

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

执行结果:

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

递归调用的处理条件

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

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

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

# coding=UTF-8defsum(num):if num == 1:

return1return num+ sum(num -1)

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

执行结果:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值