python函数part1

一、函数基本概念

函数的功能时什么?
答:包裹一部分代码,实现某一个功能,达成一个目的。

特点:可以反复调用,提高代码的复用性,提高开发效率,便于维护管理

1、函数的基本格式:

函数的定义:
def 函数名() #定义函数
code1
code2

函数名() # 函数的调用

def func():
	print("我是一个函数")
func()

运行结果:
运行结果

2、函数的命名规则(同变量):

1)可以使用数字字母下划线
2)首字符不能用数字
3)严格区分大小写
4)不能使用关键字
5)变量命名要有意义
6)不能使用中文

驼峰式命名法:
1)大驼峰命名法:每个单词首字母大写(定义类:面向对象)
mycar => MyCar
2)小驼峰命名法:除了第一个单词首字符小写之外,剩下每个单词首字符大写
mycar => myCar

3、函数方式打印两遍99乘法表

def func():
	for i in range(1,10):
		for j in range(1,i+1):
			num = "%d*%d=%2d " %(i,j,i*j)
			print(num,end="")
		print()

# 函数调用处
for i in range(2):
	func()

运行结果:
运行结果

二、函数的参数

参数:
1、形参:形式参数,在函数的定义处
2、实参:实际参数,在函数的调用处

形参:普通形参(位置),默认形参,普通收集形参,命名关键字形参,关键字收集形参
实参:普通实参,关键字实参

遵循原则:
形参和实参要一一对应

1、普通形参

def func(a,b):
	for i in range(a,b):
		for j in range(1,i+1):
			num = "%d*%d=%2d " %(i,j,i*j)
			print(num,end="")
		print()
for i in range(2):
	func(1,10)

把1和10传给a和b
运行结果:
运行结果

2、默认形参

形参上面有默认值,为默认形参

def func(a=1,b=10):
	for i in range(a,b):
		for j in range(1,i+1):
			num = "%d*%d=%2d " %(i,j,i*j)
			print(num,end="")
		print()
for i in range(2):
	func()

运行结果:
运行结果

3、普通形参 + 默认形参

默认形参必须跟在普通形参之后,顺序是一定的

def func(a,b=10):
	for i in range(a,b):
		for j in range(1,i+1):
			num = "%d*%d=%2d " %(i,j,i*j)
			print(num,end="")
		print()
for i in range(2):
	func(1)

运行结果:
运行结果

4、关键字实参

关键字实参是对具体的某个参数赋值,具体的顺序可以打乱。

def func(a,b,c):
	for i in range(a,b):
		for j in range(c,i+1):
			num = "%d*%d=%2d " %(i,j,i*j)
			print(num,end="")
		print()
for i in range(2):
	func(b=10,c=1,a=1)

运行结果:
运行结果

5、普通实参 + 关键字实参

同样存在顺序问题:关键字实参必须在普通实参之后。

def func(a,b,c):
	for i in range(a,b):
		for j in range(c,i+1):
			num = "%d*%d=%2d " %(i,j,i*j)
			print(num,end="")
		print()
for i in range(2):
	func(1,b=10,c=1)

运行结果:
运行结果

6、区分默认形参和关键字实参

默认形参和关键字实参写法上一模一样
区别:
默认形参在函数的定义处
关键字实参在函数的调用处

7、收集参数

1、普通收集参数
专门用来收集多余没人要的=普通实参=
语法:
def func(*args)
code

*args => arguments(参数)
在args这个参数的前面加上一个*表达普通收集参数,形成一个元组。

基本使用:

def func(*args):
	print(args) #作为变量不用加*号
func(1,2,3,4,5,6,8,9)

运行结果:
运行结果

8、关键字收集参数

专门用来收集多余的没人要的=关键字实参=

语法:
def func(**kwargs):
code

**kwargs => keyword arguments
在kwargs前面加**表示关键字收集参数,形成一个字典。

基本使用:

def func(**kwargs):
	print(kwargs) #作为变量不用加**号
func(k1=1,k2=2,k3=3,k4=4,k5=5,k6=6,k7=8,k8=9)

运行结果:
运行结果

9、命名关键字参数

定义命名关键字参数有两种方式:
1)def func(a,b,*,c) c是命名关键字
2)def func(*args,c,**kwargs) c是命名关键字参数
在函数调用时,必须使用命名关键字参数来赋值

1、定义方式一

def func(a,b,*,c,d):
	print(c,d)
func(1,2,d=5,c=3)

运行结果:
运行结果

2、定义方式二

def func(*args,c,**kwargs):
	print(c)
	print(args)
	print(kwargs)
func(1,2,d=5,c=3,e=6)

运行结果:
运行结果

10、关于*和**的用法

*和** 在函数的定义处,用来做收集操作,打包
*和** 在函数的调用处,用来做打散操作,解包

解包:

def func(a,b,c,f,g,h):
	print(g)
lst = [7,8,9]
func(1,2,5,*lst)

运行结果:
运行结果

重点(顺序不能乱):
参数定义的顺序:普通参数 -> 默认参数 -> 普通收集参数 -> 命名关键字参数 -> 关键字收集参数

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值