美文网首页
Python学习之路(函数参数)

Python学习之路(函数参数)

作者: 55lover | 来源:发表于2017-12-22 10:15 被阅读0次

函数参数 以及默认参数

def getInfo(name, age, city) :
    return '我是%s,我今年%d岁了,我来自%s' %(name, age, city)
# print(getInfo('邓鹏', 24)) # 报错 缺少 city 参数

def getInfo(name, age, city='四川') :
    return '我是%s,我今年%d岁了,我来自%s' %(name, age, city)
print(getInfo('邓鹏', 24, '绵阳'))

# 多个参数 #默认参数 一定要写在参数列表最后

def getInfo1(name, age, city="四川", gender='男'):
    return '我叫%s, 性别%s, 我今年%d岁了,我来自%s' %(name, gender, age, city)
print(getInfo1('蔡姵仪', 23, '绵阳', '女')) # 参数顺序 必须正确
print(getInfo1('蔡姵仪', 23, gender='女')) # 参数顺序 设置其中一个默认参数 可带上参数名

定义一个可变参数的函数 一般是list 或者 tuple

# 第一种定义方式:
def cacl(numbers):
    for x in numbers: 
        print(x) 
cacl([1,2,3]) # list 对象

cacl((4,5,6)) # tuple 对象

# cacl(1,2,3) # 报错  参数个数不对

# 第二种定义方式: *args  可变参数

def cacl2(*numbers): # 加个* 代表有多个参数
    for x in numbers:
        print(x)

cacl2(7,8,9)
cacl2(*[1.0,1.1,1.2]) # 如果传入一个list 时  需将list里面的值作为参数传过去 只需在list 前面加上* 即可

函数参数之关键字参数

def person(name, age, **kw):
    print('name:', name, 'age:', age, 'other:', kw)

obj = {
    'city': 'cd',
    'gender': 'women'
}

person('dp', 20, **obj)

# 命名关键字参数

def person1(name, age, *, city, job): # 2个位置参数 name age 和 2个命名关键字参数 city job  用*隔开
    print(name, age, city, job)

person1('cpy', 24, city='cd', job='ww') # 传入时 位置参数按顺序传入值即可, 命名参数则需以key=value形式 传入

练习

写一个可接收一个或多个数并计算乘积的函数:

def product(*num):
    sum = 1
    for y in num:
        sum = sum * y
    return sum
# 测试
print('product(5) =', product(5))
print('product(5, 6) =', product(5, 6))
print('product(5, 6, 7) =', product(5, 6, 7))
print('product(5, 6, 7, 9) =', product(5, 6, 7, 9))
if product(5) != 5:
    print('测试失败!')
elif product(5, 6) != 30:
    print('测试失败!')
elif product(5, 6, 7) != 210:
    print('测试失败!')
elif product(5, 6, 7, 9) != 1890:
    print('测试失败!')
else:
    try:
        product()
        print('测试成功!')
    except TypeError:
        print('测试失败!')

小结

Python的函数具有非常灵活的参数形态,既可以实现简单的调用,又可以传入非常复杂的参数。

默认参数一定要用不可变对象,如果是可变对象,程序运行时会有逻辑错误!
要注意定义可变参数和关键字参数的语法:
*args是可变参数,args接收的是一个tuple;
**kw是关键字参数,kw接收的是一个dict。
以及调用函数时如何传入可变参数和关键字参数的语法:
可变参数既可以直接传入:func(1, 2, 3),又可以先组装list或tuple,再通过*args传入:func(*(1, 2, 3));
关键字参数既可以直接传入:func(a=1, b=2),又可以先组装dict,再通过**kw传入:func(**{'a': 1, 'b': 2})。
使用*args和**kw是Python的习惯写法,当然也可以用其他参数名,但最好使用习惯用法。
命名的关键字参数是为了限制调用者可以传入的参数名,同时可以提供默认值。
定义命名的关键字参数在没有可变参数的情况下不要忘了写分隔符*,否则定义的将是位置参数。

关注一波!喜欢一波!本人是前端菜鸟,正在做自己的个人博客邓鹏的博客,欢迎来交流学习, 使用的技术 vue + koa2 + mysql + php + nginx!

相关文章

  • Python学习之路(函数参数)

    函数参数 以及默认参数 定义一个可变参数的函数 一般是list 或者 tuple 函数参数之关键字参数 练习 写一...

  • python 函数参数类型

    本文主要学习内容: python函数参数类型 python 的函数参数类型分为4种:1.位置参数:调用函数时根据函...

  • 09:函数的参数类型

    python学习day_7: 函数的参数 1、必须参数(位置参数)调用函数时根据函数定义的参数位置来传递参数。 2...

  • python函数超级详解

    python之路——初识函数 阅读目录 为什么要用函数 函数的定义与调用 函数的返回值 函数的参数 本章小结 py...

  • Python初级教程(16): 函数的参数

    在Python中,函数参数的数目是可以变化的。在本文中,您将学习如何使用函数的参数。 在上一节Python初级教程...

  • Python函数参数传递机制(超级详细)

    Python中,函数参数由实参传递给形参的过程,是由参数传递机制来控制的。通过学习《Python函数值传递和引用传...

  • python基础-07-函数

    python基础-函数 1.函数的定义 例子: 2.python中函数的参数详解 必备参数demo: 默认参数de...

  • python:函数说明

    Python: 函数参数魔法 2016-12-01 函数参数 在 Python 中,定义函数和调用函数都很简单,但...

  • 学习python: 函数参数

    大体上python中的参数可以根据其表现形式分为以下四种: 位置参数 默认参数 关键字参数 可变参数 其中前两种是...

  • Python的参数

    Python的参数函数的参数

网友评论

      本文标题:Python学习之路(函数参数)

      本文链接:https://www.haomeiwen.com/subject/azltgxtx.html