第一章 Python基础入门之函数式编程参数详解

系列文章目录

第一章 Python基础入门之Hello World
第一章 Python基础入门之变量与数据类型
第一章 Python基础入门之ASCII(字符编码和二进制)
第一章 Python基础入门之单多行的注释和输出
第一章 Python基础入门之INPUT用户输入
第一章 Python基础入门之IF ELSE条件判断
第一章 Python基础入门之While循环与For循环
第一章 Python基础入门之什么是模块(库)
第一章 Python基础入门之什么是.pyc
第一章 Python基础入门之数据类型
第一章 Python基础入门之Python3数据类型中的bytes和str的区别
第一章 Python基础入门之文件读与写详解
第一章 Python基础入门之文件修改详解
第一章 Python基础入门之文件的with语句
第一章 Python基础入门之函数与函数式编程



前言

Python系列学习


一、相关内容

函数的返回值

# 1、函数的返回值
def test1():
    print('test1')

def test2():
    print('test2')
    return 0

def test3():
    print('test3')
    return 1,'hello',['gdfsfsin','lifdsfeng'],{'name':'gl'}

print(test1())
print(test2())
print(test3())

函数的调用

函数方法test()执行时,()表示调用函数test,()内可以有参数也可以没有。
那么参数有4种:

  • 形参和实参
    • 形参:形式参数,不是实际存在的,是虚拟变量,在定义函数和函数体的时候使用形参,目的是在函数调用时接收实参(实参个数,类型应与实参一一对应)。
    • 实参:实际参数,调用函数时传给函数的参数,可以是常量、变量、表达式、函数。传给形参。
    • 两者的区别:形参是虚拟的,不占用内存空间。形参变量只有在调用时才分配内存单元。实参是一个变量,占用内存空间,
      数据传送单向,实参传给形参,不能形参传给实参。
  • 位置参数和关键字(标准调用:实参和形参位置一一对应;关键字调用:位置无需固定)
  • 默认参数
  • 参数组
# (1)位置参数
# x和y代表形参;1和2代表实参。形参和实参是一一对应的,并且这样也是位置参数调用样例。
def test(x,y):
    print(x)
    print(y)

test(1,2)

# (2)关键字
# x和y代表形参;1和2代表实参。形参和实参不需一一对应的,并且这样也是关键字调用样例。
def test(x,y):
    print(x)
    print(y)

test(y=2,x=1)

# (3)当既有位置参数、也有关键字时
# 当既有位置参数、也有关键字时。调用时,以位置参数优先,并且关键字不能写在位置参数之前
def test(x,y,z):
    print(x)
    print(y)
    print(z)
# test(2,y=4,3)      # 错误的调用示例
test(2,y=1,z=6)

# (4)默认参数
# 默认参数特点:调用参数的时候,默认参数非必须传递。
# 用途:1、默认安装值 2、连接数据库时的默认值等
def test(x,y=2):
    print(x)
    print(y)

test(1)         #当y没有重新赋值,那么y默认等于2
test(1,3)       #当y重新赋值了,那么y等于3

# (5)参数组
# 【1】*args:把N个位置参数,转换成元组的方式
def test(*args):            # *代表参数组,调用时把1,2,3,4,5,5,6都传给args
    print(args)

test(1,2,3,4,5,5,6)
test(*[1,2,3,4,5,5,6])      #args = tuple([1,2,3,4,5,5,6])

# 【2】
def test(x,*args):          # 调用时,会按照位置来,1传给x。2,3,4,5,5,6都传给args
    print(x)
    print(args)

test(1,2,3,4,5,5,6)

# 【3】**kwargs:把N个关键字参数,转换成字典的方式
def test(**kwargs):
    print(kwargs)
    print(kwargs['name'])
    print(kwargs['age'])
    print(kwargs['sex'])

test(name='gafewfn',age=18,sex='M')
test(**{'name':'gadsadfn','age':20,'sex':'M'})

# 【4】
def test(name,**kwargs):
    print(name)
    print(kwargs)

test('jacob',age=20,sex='M')

# 【5】
def test(name,age=26,**kwargs):
    print(name)
    print(age)
    print(kwargs)

test('jacob',high=183,sex='M')

# 【6】
def test(name,age=26,**kwargs):
    print(name)
    print(age)
    print(kwargs)

test('jacob',high=183,sex='M',age=31)

# 【7】
def test(name,age=20,*args,**kwargs):
    print(name)
    print(age)
    print(args)
    print(kwargs)

test('jacob',31,2,3,4,5,high=173,sex='M')

前向引用

# 函数action体内嵌套某一函数logger,该logger的声明必须早于action函数的调用,否则报错。
# def action():
#     print('in the action')
#     logger()
# action()
# # 报错:global name 'logger' is not defines

def logger():
    print('in the logger')
def action():
    print('in the action')
    logger()
action()

def action():
    print('in the action')
    logger()
def logger():
    print('in the logger')
action()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值