python基础知识(六)函数----(一)

(六)函数----(一)

目录

(六)函数----(一)

6.1函数的定义

6.2返回值return

6.3实参和形参


6.1函数的定义

#仿写len函数
s = input('请输入:')
def my_len(): #定义函数
    i = 0
    for j in s:
        i += 1
    return(i)
l = my_len()
print(l)
#函数的注释
def f():
    '''
    函数的功能
    参数1:
    参数2:
    :return:
    '''

6.2返回值return

    返回值的3种情况 :

             1)没有返回值: 

                                 a.没有返回值--默认返回值为None

                                 b.没有retrun 只有retrun:结束函数(中断函数)

                                 c.return None---不常用                          

            2)只有一个返回值:

                                a.可以返回任何数据类型,如返回一个列表return [1,2,3]

                                b.只要返回就可以接收

           3)返回多个值:

                             a.多个返回值用多个变量接收:有多少返回至就用多少变量接收

                             b.如果只用一个变量接收:得到的是一个元组

#如果一个程序有多个return,只执行第一个
def f1():
    li = ['aa','bb']
    for i in li:
        print(i)
    return
    print('cc')
ret = f1()
print(ret) #不打印cc

6.3实参和形参

实参:函数定义中的变量为实参

            按照位置传参

            按照关键字传参

            混着用可以,但是必须按照位置传参 再按照关键字传参 不能给同一个变量传递多个值

形参: 函数调用中的变量称为形参

            位置参数:必须传,有几个参数传几个秩,一一对应

            默认参数:可以不传,如果不传就是用默认值,如果传了就用传的值 

s = input('请输入:')
def my_len(s): #接收参数,形式参数,形参
    i = 0
    for j in s:
        i += 1
    return(i)
l = my_len(s) #传递参数,传参 实际参数,实参
print(l)

参数 :

         a.没有参数,即定义函数和调用函数,括号里什么都不写

          b.有一个参数,即传什么接收什么

          c.有多个参数

#传递多个参数
def my_sum(i,j):
    sum = i + j
    return sum
print(my_sum(1,3))
#默认参数 无则使用默认 有则使用传递的值
def classmate(a,b = '男'):
    print('{}:{}'.format(a,b))

classmate('aa')
classmate('bb','女')

调用函数的时候:  

            按位置传:直接写参数的值  

            按关键字传:关键字 = 值

            顺序:先位置传参数,再关键字传参数

定义函数的时候:  

           位置参数:直接定义参数  

           默认参数,关键字参数:参数名 = '默认的值’  

           动态参数:可以接收任意多个参数

                             按照位置接收多个参数,参数名之前加*,习惯参数名args  

                             按照关键字接收多个参数,参数名之前加**,习惯参数名kwargs  

           顺序:位置参数,*args,默认参数,**kwargs

def sum(*args):
    n = 0
    for i in args:
        n += i
    return n
print(sum(1,3,4)) #8

def f(**kwargs):
    print(kwargs)
f(a = 1,b = 2,c = 3)
f(a = 1,b = 2)
f(a = 1)
'''
{'a': 1, 'b': 2, 'c': 3}
{'a': 1, 'b': 2}
{'a': 1}
'''

         动态参数:可以接受任意多个参数

         *args : 接收的是按照位置传参的值,组织成一个元组

         **kwargs:接受的是按照关键字传参的值,组成的是一个字典

         *args必须在**kwargs之前

#动态参数的另一种传参方式
def f(*args):  #站在形参的角度,给变量加上*,就是组合所有传来的值
    print(args)

f(1,2,3)
l = [1,2,3,4]
f(*l)  #站在实参的角度,给一个序列加*,就是将这个序列按顺序拆分

def f(**kwargs):
    print(kwargs)

f(a = 1,b = 2)
d = {'a':1,'b':2}
f(**d)
'''
(1, 2, 3)
(1, 2, 3, 4)
{'a': 1, 'b': 2}
{'a': 1, 'b': 2}
'''

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值