Python 函数的使用

函数的使用

提示:python学习过程中对函数的笔记复习和记录



前言

一、函数是什么?

函数,就是带名字的代码块。形象点的理解就是,一个工位,一个流水线上的工作,它只负责它该做的任务就行,需要的时候就调用(使唤)它即可。

二、定义函数

1.函数结构

代码如下(示例):

def print_hello():  # def 函数名(参数): 
	# 函数体,就是需要完成什么操作,该函数体功能就只打印‘Hello’
	print('Hello')  

print_hello() # 调用函数

# 输出结果
# Hello

2.向函数传递参数

代码如下,在调用函数的时候,传递了一个参数 ’小明‘,函数体中,直接打印接收到的参数,输出结果:

def print_hello(user_name): # 括号内定了一个形参(user_name)
	print('Hello ' + user_name) # 
	
print_hello('小明') 
# 调用函数 将实参’小明‘ 传递给了函数print_hello(),这个值被存储在形参user_name中

# 输出结果
# Hello 小明
形参:函数内定义的变量,其作用(即生命周期)就只在函数内
实参:调用函数时传递给函数的参数

3.关键字实参

代码如下,关键字实参时传递给函数参数时,直接在实参中将名称和值对应,所以在向函数传递实参的时候,不会混淆,也不用考虑实参的顺序。

def print_hello(user_name, user_name2):
	print('Hello ' + user_name + ',' + user_name2)
	
print_hello(user_name = '小明', user_name2 = '小刚') 

# 输出结果
# Hello 小明,小刚

4.默认值

代码如下,编写函数的时候,可以给每个形参指定默认值,如果在调用函数的时候提供了实参的话,就会代替默认值,反之如果不同实参的话,就会默认使用配置的默认值。

def print_player_info(user_name, banji='中一班'):
    print('欢迎 ' + banji + ' 的小朋友:' + user_name)

print_player_info('小明')
print_player_info('小红', '中二班')

# 输出结果:
# 欢迎 中一班 的小朋友:小明
# 欢迎 中二班 的小朋友:小红

注意:函数调用的时候,实参和形参需要一一对应得上,以下得场景,代码运行会报错:

1:函数调用不传实参,函数配置形参没有配置默认值---------报错
2:函数调用传实参,函数配置形参没有配置---------报错
3:实参和形参数量不匹配,并且形参没有配置默认值-----报错

5.返回值

函数运行可以处理一些数据,并返回数据(一个或者一组),称为返回值。
在函数中,使用return 语句。

def cheng_fa(num1, num2):
	result = num1 * num2		# 函数体实现 将两个形参进行相乘,得到结果放在result变量中
	return result				# 返回 result


out_data = cheng_fa(2,2)		# 调用函数 cheng_fa 得到返回值
print('调用乘法函数,返回结果:' + str(out_data))  # 打印结果

# 输出结果:
# 调用乘法函数,返回结果:4

5.1 返回字典

上面提到过,返回的可以是一个或者多个数据,这里我们返回一个字典看看效果:

def collect_name(first_name, second_name, third_name):
	name_dict = {first_name, second_name, third_name}
	return name_dict

out_dict = collect_name('小明','小红','小黄')
print(out_dict)

# 输出结果:
# {'小明', '小红', '小黄'}

如此类推,返回一个列表也是类似的操作即可。

6.在函数中修改列表

将列表传递函数后,函数就可以对其进行修改。函数内对列表的修改都是永久性的,就是说,函数外的列表数据会跟着被改动,需要注意。

def print_model(first_list, second_list):
    while first_list:							# 判断:只要列表有数据,就会一直执行循环
        temp_item = first_list.pop()			# 推出列表最后的参数,放在变量temp_item 中
        second_list.append(temp_item)			# 将temp_item 加入到second_list中


first_list = ['1', '2', '3', '4']
second_list = []
print('调用函数前 first_list:', first_list)
print('调用函数前 second_list:', second_list)
print_model(first_list, second_list)
print('调用函数后 first_list:', first_list)
print('调用函数后 second_list:', second_list)

# 输出结果:
# 调用函数前 first_list: ['1', '2', '3', '4']
# 调用函数前 second_list: []
# 调用函数后 first_list: []
# 调用函数后 second_list: ['4', '3', '2', '1']

上面代码中,我们看到first_list 最后被修改了,如果我们不想修改呢,下面是一个方法:

def print_model(first_list, second_list):  # 修改函数体即可
	temp_list= copy.deepcopy(first_list)	# 这里使用拷贝,复制一个新的列表出来使用
    while temp_list:						# 将临时列表	temp_list 替换掉first_list
        temp_item = temp_list.pop()			# 将临时列表	temp_list 替换掉first_list
        second_list.append(temp_item)		
	

7. 传递任意数量的实参

上面说到参数可以有多个,所以我们可以配置多个实参。函数只需要配置一个形参即可(形参前面加*号),如下:

def print_color(*colors):
	print(colors)     # 这里可以直接打印,或者用循环逐个打印出来

print_color('red', 'yellow', 'blue')
# 输出结果:
# ('red', 'yellow', 'blue')

8. 将函数存储在模块中

函数的好处之一就是可以跟主代码分离,所以我们可以将函数独立成一个文件,在主代码中直接导入,就可以直接应用。如下脚本

#  独立的一个py文件 model1.py
def get_sum(num1,num2):
	return num1 + num2
# 主程序 main.py
import model1
out_data = model1.get_sum(2,2)
print('得到结果为:' + str(out_data))
# 输出结果:
# 得到结果为:4

总结

好了,今天就到这里了,关于函数,还有不少基础的知识点,先记录到这,以上如果有错别字,或者哪里不对的地方,欢迎斧正。谢谢

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值