Python学习-----函数1.0(函数的定义和函数的参数)

目录

前言:

什么是函数?

 Python中的函数定义

函数的参数(带参数的函数)

(1)定义

(2)必须参数(又叫位置参数)

(3)默认参数

(4)关键字参数

(5)可变长参数


 

前言:

        从这里开始,Python学习的难度会有所提升,同时也是Python深入学习的开始,因为每一种编程语言最重要的部分之一就是函数,前面讲的这么多东西都是Python自带的函数,而今天我来教大家怎么去定义函数已经介绍函数的相关参数。

什么是函数?

        以前我们学过数学函数都知道,函数就是一种映射的表现形式,一个自变量会有与其相对应的因变量,但是Python中的函数跟数学上是不一样的,Python中的函数我们可以理解成是一种具有功能的包装块,也就是封装具有某一种功能的代码块。其性质是一段封装好的,可以重复使用的代码,提取保存起来,然后一个独一无二的名字,只要知道名字就可以调用该函数

 Python中的函数定义

定义函数需要用 def 关键字实现

#定义函数
def 函数名():
    函数体(即该函数的具体功能的代码/代码块)

#调用函数
函数名()	# 执行函数内的代码

 对比一下C语言,我在C语言定义函数是要标明函数的类型的,比如void类型、int类型、指针类型等等……与其相对应的类型要有返回值;而在Python中不需要这么麻烦,直接def+函数名就行了,其返回值是可以自己去定义的,可以这么说吧def 关键字包含了所有类型的函数,返回值可以为int、float、bool等等……

使用原则:缩进法则 

示例:

#定义函数
def hello():
    print('hello word')
#调用函数
hello()
#输出结果:hello word

注意事项:

函数名的命名方式和变量是一致的
函数:不能漏写 
函数内的缩进必须一致
函数必须先定义再调用
函数内容不能为空

学过C语言这些注意事项应该都懂的,就不多说了...

函数的参数(带参数的函数)

(1)定义

参数的分类:

形式参数:没有实际数据,只是先占个位置 --> 定义时使用

实际参数:有实际数值,在使用时取代形参 --> 调用时使

使用过程:

def 函数名(形式参数/形参):
    函数体(即该函数的具体功能的代码/代码块)
    
函数名(实际参数/实参)    

        在使用的时候,真正起作用的是实参,而形参只是在函数定义的时候进行的所有方式

(2)必须参数(又叫位置参数)

从名字就可以看出,这一类参数形参和实参的位置要相对应,并且类型还有一致的。

示例1:

def fun(name):
    print(f'我的名字叫{name}')
a=input('输入:')
fun(a)

示例2: 

def lisadd(li,li1):
    li.insert(1,li1)
    print(li)
lis=['蔡徐坤','只因']
lis1=[]
for i in range(0,5):
    a=input('enter')
    lis1.append(a)
    if a=='0':
        break
lisadd(lis,lis1)

(3)默认参数

概念:在函数定义的时候, 就一经写好参数值了, 在后期调用函数的时候 , 就可以不进行传参 , 如果在调用函数的时候也将该参数进行传递的化 , 那么原本的参数值将会被覆盖掉。

注意事项:定义默认参数一定要把默认参数放在位置参数的后面,否则就会报错

示例1: 

def fun(r,pi=3.14):
    s=pi*r**2
    print(s)
R=int(input('输入你的半径:'))
fun(R)
#输入 3
#输出 28.26

示例2:

def fun(r,pi=3.14):
    s=pi*r**2
    print(s)
R=int(input('输入你的半径:'))
fun(R,4)
#输入 3
#输出 36

这里可以看出我自行输入一个实参,结果这个实参会把原来的默认参数的值给覆盖掉,输出结果也是不一样的。

(4)关键字参数

概念:就是指使用形式参数的名字来确定输入的参数值,不再需要与形参的位置完全一致,只要将参数名写正确

格式:参数名 = 参数值

注意事项:当关键字与其他参数一起出现时 ,关键字参数必须在最后 , 传递的参数 , 必须是除位置参数外的其他参数。

def ff(name,age,num):
    print(f'''
 --------个人信息----------
       名字:{name}
        年龄:{age}
        学号:{num}
-----------end-----------
    ''')
ff(name='小sao',num=220064015,age=18)
#输出结果:
'''
 --------个人信息----------
       名字:小sao
        年龄:18
        学号:220064015
-----------end-----------
'''
#如果这样的话就会报错
ff(name='小sao',18,num=220064015)

是因为关键字参数再必须参数的前面,所以报错

(5)可变长参数

5.1单星号可变

作用:一个形参可以接收多个参数值

方式:在参数名前面加上一个 *, 该参数就是可变参数 , 就可以接收多个参数值, 也可以没有。 接收的实参必须是位置参数的形式

注意事项:该参数接收多余的参数值 , 全部保存到元组当中

def ff(name,age,*other):
    print(name,age)
    print(other)
ff('Jack',19,'Amy',18,'ww',88)

 

5.2双星号可变

方式:在参数名前面加上一个 ** , 该参数就是可变参数 , 就可以接收多个参数值, 也可以没有。 接收的实参必须是关键字参数

该参数接收到的参数值 , 以字典的形式保存 , 其中 , 参数名保存为键(key) , 参数值保存为(value)

注意事项:该参数接收多余的参数值 , 全部保存到字典当中

def ff(**p):
   print(p)
ff(name='Jack',num=18,hj=99)
#输出结果:{'name': 'Jack', 'num': 18, 'hh': 99}

        这一期就到这里了,后面几期我都会讲解关于Python中函数的相关知识点,喜欢的话就给个关注吧~~~

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Python的有参函数是指在函数定义时需要传递参数函数。主要有四种参数类型:位置参数、关键字参数、可变位置参数和可变关键字参数。 1. 位置参数:位置参数是指根据参数的位置来确定传递的值,例如:def func(a, b),a和b就是位置参数。调用函数时必须按照参数的顺序传递对应的值。 2. 关键字参数:关键字参数是指在函数调用时,参数参数名=参数值的形式传递,例如:func(a=1),其a=1就是关键字参数。调用函数时可以不按照参数的顺序传递值,只需要指定参数名即可。 3. 可变位置参数:可变位置参数使用*号作为前缀,在函数定义时表示可以接收任意数量的位置参数,这些参数会被打包成一个元组。例如:def func(*args),在调用函数时可以传入任意数量的位置参数。 4. 可变关键字参数:可变关键字参数使用**号作为前缀,在函数定义时表示可以接收任意数量的关键字参数,这些参数会被打包成一个字典。例如:def func(**kwargs),在调用函数时可以传入任意数量的关键字参数。 以上是Python有参函数的大致流程,通过位置参数、关键字参数、可变位置参数和可变关键字参数,可以根据不同的需求灵活地传递参数函数,使函数具有更强的适应性和扩展性。 <span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Python源码学习:Python函数浅析-有参函数](https://blog.csdn.net/qq_33339479/article/details/79793421)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Fitz&

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值