Python函数基础

函数基础

1.函数的意义:减少重复性代码,提高代码的可读性。
2.函数的分类:系统内置,自定义。
系统内置
在这里插入图片描述

自定义函数
def 函数名(arg1,arg2…):
‘’’
函数说明文档
‘’’
函数体代码块
return 表达式|值
def 为函数声明的关键字
函数名的规范和变量名一致
函数参数参照后面课程讲解(重点)
函数的调用:函数名(实参)
函数中的逻辑只有在调用时才会真正运行
函数必须在调用之前定义
函数中遇到return语句,则将其之后的结果返回并结束函数执行,如果没有明确return语句则函数运行完毕返回结果为None
例:1
def zhishu(num):
for x in range(2,num):
if num % x == 0:
return False
else:
return True
if zhishu(3):
print(“3是质数”)
elif zhishu(4):
print(“4是质数”)
在这里插入图片描述

例:2
def f():
print(“我是一个函数”)
#调用
a = f()
print(a)

例:调用函数求100的因子
def f(num):
list1 = []
for x in range(1,num+1):
if num % x == 0:
list1.append(x)
return list1
a = f(100)
print(a)

例:求半径为r的圆的周长
def f®:
import math
l = 2 * math.pi *r
return l
print(f(5))

1).函数的实际参数的传入分为传值传递和引用传递(所有的编程 语言均涉及)
2).python中实际参数类型为可变类型是时传入方式为引用传递
3).不可变类型为传值传递
4).引用传递在函数内部对参数值进行改变将影响原始的对象
5).传值传递则不会有上面的现象出现
6).字符串,数字,布尔,none,元组均为不可变类型
列表,字典,集合均为可变类型

如下示例演示了引用传递对实际参数本身的影响
所以对可变类型注意选择合适的copy方法传入其副本
在这里插入图片描述

例:关于传值传递
在这里插入图片描述

元组形式的参数影响示例:
在这里插入图片描述

3.参数形式
必须参数,关键字参数,默认参数,可变参数
1.)必须参数
定义的形式参数和调用的实际参数必须一一对应(顺序,数量)
正确的调用
在这里插入图片描述
错误的调用
在这里插入图片描述
2.)关键字参数
(形式参数 = 实际参数)传入参数,函数调用时不关心参数顺序
应用场景:在我们不清楚参数的顺序时使用
调用示例
在这里插入图片描述
3.)默认参数
在我们函数定义是可以给参数设置一个默认值,当调用时该函数没有传入参数
函数逻辑使用预设的默认值,否则使用传入的参数
示例:
在这里插入图片描述

4.)args **kwargs 参数
函数需求传入的参数数量不明确的情况下,我们python提供了不定长参数方式
一般使用
args或者**kwarge的形式声明参数的形式
以*args形式声明参数在函数中使用args获取传入的参数(args的值是由参数构成的元组)
例1:
def fun(*args):
print(args)
#调用示例
fun(1,2,3,4,“a”)
fun()
fun(4,“a”)
例二:
在这里插入图片描述

def fun(*args):
b = 0
for x in args:
b += x
print(b)
l = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
fun(*l)

kwargs 形式的可变参数,在函数内部kwargs是一个字典
字典得key是我们传入的形式参数的名字,值为形式参数的值
若以字典形式传入时,注意字典的key必须是字符串类型
**kwargs调用示例
在这里插入图片描述

5.)扩展:必须关键字参数
仅在3.1之后的python中被支持
对于必须关键字参数,在传入时必须以关键字形式传入
定义:一般需要写在所有参数的最后部分,与其他形式的参数之间用 * 隔开
def funkw(a,k=0,*,city,age):
print(a)
print(k)
print(city)
print(age)
#正确的调用
funkw(20,city=“西安”,age=30)
在这里插入图片描述

注意:不推荐混合使用,若要混合使用请遵循:必须参数,默认参数,可变参数,关键字参数

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值