专栏首页python3python学习(11)

python学习(11)

函数参数

位置参数 传入参数顺序 、个数必须一致 def add(a,b): return a + b

关键字参数

def add(a,b,c): ... return a+b+c ... print(add(c=1,b=2,a=3)) 6

注意:关键字参数传参只能放到后面

print(add(c=1,2,3)) File "<stdin>", line 1 SyntaxError: positional argument follows keyword argument

默认参数

def add(a,b,c=10):
    return a + b + c

print(add(3,b=2))

默认参数需要放到后面

def add(a,b=9,c):
    return a + b + c

print(add(3,b=2))

E:\python>py -3 test.py File "test.py", line 2 def add(a,b=9,c): ^ SyntaxError: non-default argument follows default argument

可变参数 可变参数-元组

def func(a,b,*args):
pass

参数*args是一个元组参数,用一个星号表示,传入的参数会当做元组传入到args中,出位置参数a,b之外其他的参数都会传入args中,可以遍历args参数

习题6:函数参数传入5个字母,声明一个可变参数的函数,拼成一个单词。

def func(a,*args):

    result = ""

    result += a
    for v in args:
        result += v
    return result

print(func("a","b","c","d","e"))

可变参数-字典 参数**kwargs是一个字典参数,用两个星号表示,传入的参数会当做字典传入到kwargs中,

def func(**kwargs):
    print(kwargs)

func(name="zhang",sex="F")

传参需要遵循key = value的形式,key不需要引号,value需要加引号

注意:如果同时存在位置参数、元组参数、字典参数的情况,需要按照位置参数、元组参数、字典参数的顺序定义;

示例:

def add(**kw):
    print(type(kw))
    for i in kw:
        print(i)

    for j in kw.values():
        print(j)

print(add(a="1",b=2,c=3))

习题7:使用必填参数、默认参数、可变元组参数、可变字典参数(value)计算一下单词的长度之和。

#coding=utf-8
def func(a,b="abc",*args,**kwargs):
    result = 0#总长度
    result += len(a)
    result += len(b)
    for v in args:
        result += len(v)
    for v in kwargs.values():
        result += len(v)
    print("a: ",a)
    print("b:",b)
    print("args:",args)
    print("kwargs: ",kwargs)
    return result
print("长度: ",func("i","am","good","boy",name="hu",sex="f"))
#print(func("i",c="am"))#b会默认取字符串"abc"

lambda匿名函数 一个参数:

lambda x:x+1 x为函数参数,x+1 为函数体,函数会返回x+1的值

lambda x:x+1 <function <lambda> at 0x0000000002980620> func = lambda x:x+1 func(1)#调用 2

多个参数:

fun = lambda x,y: x + y fun(1,3) 4 lambda x,y,z: (x+y)z <function <lambda> at 0x00000000029286A8> f = lambda x,y,z: (x+y)z f(1,2,3) 27

lambda示例:

def make_repeater(n): return lambda s: s*n

twice = make_repeater(2)# twice = lambda s:s*2

print (twice('word'))#lambda word:word2 print (twice(5))##lambda 5:52

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • python isinstance和is

    py3study
  • 【Python3】Python函数

    作用域即范围(作用域关系是在函数定义阶段就已经固定的,与函数的调用位置无关) 查看作用域:globals(),locals()

    py3study
  • 2

    晚发了好多天,因为中途发生的事情比较多,让我比较懵,甚至都想放弃学Python,但自己选择的路,在艰难也得走下去!!!

    py3study
  • python isinstance和is

    py3study
  • Python中的几种数据类型

    大体上把Python中的数据类型分为如下几类: Number(数字) 包括int,long,float,complex St...

    古时的风筝
  • python 函数编程的位置参数、默认参数、关键字参数以及函数的递归

    首先对于函数调用: !usr/bin/env python _*_ coding:utf-8 _*_ def AQA(INPUT): if INPUT...

    学到老
  • python 函数编程的位置参数、默认参数、关键字参数以及函数的递归

    ** 注意关键参数是转化为dict(key对应value),位置参数是元组形式

    学到老
  • 变量类型-Number

    教程: 一:数字类型     (1)int 没有限制大小,有以下的四种表现形式:         1:2进制:以'0b'开头---bin         2:...

    py3study
  • python小例子(一)

    参考链接:https://zhuanlan.zhihu.com/p/83998758?utm_source=qq&utm_medium=social&utm_o...

    绝命生
  • python-初识python

      解释器:写完代码后,交给计算机一行一行执行,边解释边执行 (python,javascri...)

    py3study

扫码关注云+社区

领取腾讯云代金券