Python基础(9)——函数的定义与使用

函数的定义及使用

  • 在Python中,定义一个函数要使用 def 语句,依次写出函数名、括号、括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用 return 语句返回。
  • 请注意,函数体内部的语句在执行时,一旦执行到 return 时,函数就执行完毕,并将结果返回。
  • 如果没有 return 语句,函数执行完毕后也会返回结果,只是结果为 Nonereturn None 可以简写为 return
>>> def myprint():
...     print('Hello!')
...
>>> a=myprint()  # 先将 myprint 函数执行一遍,将返回值赋给 a
Hello!
>>> print(a)
None  # 没有 return 语句,函数执行完毕后也会返回结果,结果为 None。
  • 函数可以同时返回多个值,但其实就是一个tuple。( *b 的用法下文会讲到)
#返回多个值
>>> def many(a,*b):
...     return a,b   #返回 a,b 的值
...
>>> many(0,1)
(0, (1,))
>>> many(2,3,5)
(2, (3, 5))

1、不带参数的函数

注意:a = myprint( ) 与 b = myprint 的区别

print("1、不带参数的函数")
def myprint():            #定义 myprint 函数
    print("Hello!")
    return 1
myprint()                 #调用 myprint 函数
a=myprint()               #先将 myprint 函数执行一遍,将返回值赋给a
print("a的值:",a)
print("a的类型",type(a))   #此时返回值为 1,故 a=1,类型为 int
b=myprint                 #b,即myprint()函数
print("b的值:",b)         #<function myprint at 0x00000211D4B81E18>,b 的地址
print("b的类型",type(b))   #b 的类型为 function

运行结果:
1、不带参数的函数
Hello!
Hello!
a的值: 1
a的类型 <class 'int'>
b的值: <function myprint at 0x00000211D4B81E18>
b的类型 <class 'function'>

2、带固定参数的函数

print("2、带固定参数的函数")
def myplus(a,b):               #a,b 必须是同一类型的值    
    return a+b+a               #返回 a+b+a  
a=myplus(1,2)  
print(a)                       #结果为:4
print(myplus('2','3'))         #结果为:232
print(myplus([1,2,3],[4,5]))   #结果为:[1,2,3,4,5,1,2,3]
#print(myplus('2',3))          #会报错,因为 a、b 不是同一类型的值

运行结果:
2、带固定参数的函数
4
232
[1, 2, 3, 4, 5, 1, 2, 3]

3、带有可变参数(数量)的函数

print("3、带有可变参数(数量)的函数")
def mysum(*a):             #'*' 代表可变,此时 a 是一个元组
    print(type(a), a)
    return sum(a)
b=mysum(1, 2))
print(b)
print(mysum(1, 2, 3))

运行结果:
3、带有可变参数(数量)的函数
<class 'tuple'> (1, 2)     # a 的类型为 tuple, a=(1,2)
3                          # sum(a) = 1+2 =3
<class 'tuple'> (1, 2, 3)  # a 的类型为 tuple, a=(1,2,3)
6                          # sum(a) = 1+2+3 =6

4.带有关键字函数

注意:带有关键字函数的传参规律

print("4、带有关键字函数")
def myfun(a, *b, c=1):       # a 的值是必须有的,*b 的值是可有可无的
    return a + sum(b)**c     # 返回a+sum(b)**c
print(myfun(0, 1, 2))        # 此时 a=1,*b=(1,2),c=1
print(myfun(0, 1, 2, c=2))   # a=1,*b=(1,2),c=2

运行结果如下:
4、带有关键字函数
3                            # 0+ sum(1,2)**1 = 3 
9                            # 0+ sum(1,2)**2 = 9 

  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值