python函数

踮着脚就能够到的不叫目标。

函数的定义:

def func(x , n = 2): //n = 2 是说默认的情况下求的是一个数的平方,注意冒号不能省略

    s =  1 //s 就是最终返回的结果

    while n > 0: // 循环的条件,注意冒号不能省略

          s = s * x//这是函数的主体部分

          n = n - 1//来控制循环次数

    return s//将计算的结果返回出来

注意在设置默认参数的时候,1、必选参数在前,默认参数在后。当默认参数设置在前边的话,python会报语法错误SyntaxError: non-default argument follows default argument..我觉得原因是说,你既然设置了默认的参数在前边,然后当你在调用这个函数的时候,想想逻辑上也过不去啊。2、如何设置函数的参数:当函数有多个参数的时候,将变化大的参数放在前面,变化小的参数放在后面,变化小的参数就可以作为默认参数。

疑问:对于有默认参数的函数来说,调用函数的时候,函数的参数是根据顺序一一对应的,而不是参数的类型?

是可以不按照参数的顺序来进行调用的,但是你需要把参数名写上。

函数的调用:

func(5)  结果是25 ,,默认n = 2 ,求的是平方

func(5,3) 就是5 * 5 * 5 = 125


                                                分割线------可变参数


可变参数:函数传进去的参数的个数是可变的

例:给定一组数字a,b,c,,,,,,,计算a*a + b*b + c*c +.....。定义这个函数,我们必须确定输入的参数。由于参数的个数不确定,我们首先想到的是将a,b,c...作为一个list或tuple传进来,这样函数可以如下定义:

def calc(numbers):

    sum = 0

    for n in numbers:

        sum = sum + n * n

    reutrn sum

但是在调用的时候,需要先组装出一个list或tuple

clac([1,2,3])---14

clac((1,3,5,7))---84

将函数的参数改为可变参数:

def calc(*numbers):

    sum = 0

    for n in numbers:

        sum = sum + n * n

    return sum

定义可变参数和定义一个list或者tuple参数相比,仅仅在参数前面加了一个*号。在函数内部,参数numbers接收到的是一个tuple,因此函数代码完全不变,但是,调用函数的时候,可以传入任意个参数,包括0个参数:

calc(1,2)---5

calc()-----0

对于已经存在的list活着tuple,要调用一个可变参数,Python允许你在list或者tuple前面加一个*号,把list或tuple的元素变成可变参数传进去:

nums = [1,2,3,5]

calc(*nums)

#       *nums 表示把nums这个list的所有元素作为可变参数传进去。这种写法很重要。



                                               关键字参数


def person(name,age,**kw)

    print('name:',name,'age:',age,'other:',kw)

extra = {'city':'beijing','job':'Engineer'}

person('mudy',30,**extra)



                                              命名关键字参数


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,324评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,303评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,192评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,555评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,569评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,566评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,927评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,583评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,827评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,590评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,669评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,365评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,941评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,928评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,159评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,880评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,399评论 2 342

推荐阅读更多精彩内容

  • 函数名其实就是指向一个函数对象的引用,完全可以把函数名赋给一个变量,相当于给这个函数起了一个“别名”:a = ab...
    bjchenli阅读 605评论 0 0
  • python函数的参数是目前见过最复杂的参数了。 C语言里用的最多的可变参数函数就是scanf和printf了,j...
    米耳阅读 349评论 0 0
  • https://my.oschina.net/leejun2005/blog/503562 深入浅出 Python...
    点点渔火阅读 989评论 0 1
  • Python: 函数参数魔法 2016-12-01 函数参数 在 Python 中,定义函数和调用函数都很简单,但...
    ZhouLang阅读 529评论 0 0
  • Python 是一种相当高级的语言,通过 Python 解释器把符合语法的程序代码转换成 CPU 能够执行的机器码...
    Python程序媛阅读 1,889评论 0 3