前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python的函数

python的函数

作者头像
热心的社会主义接班人
发布2018-05-16 15:57:14
6140
发布2018-05-16 15:57:14
举报
文章被收录于专栏:cs

function 的参数传递 python的变量是一个对象的引用,变量与变量之间的赋值是对同一个对象的引用,当变量重新赋值对象的时候,是将变量指向一个新的对象。

python实参向形参传送数据的方式是值传递。

代码语言:javascript
复制
def change(a,b):
    """
     python交换2 个值
    """
    a,b=b,a   
代码语言:javascript
复制
>>> a,b=2,3
>>> change(a,b)
>>> print("a={} b={}".format(a,b))
a=2 b=3

python可以通过,可变对象修改参数,比如list和dictionary。

代码语言:javascript
复制
def change(lt):
    """
     python交换2 个值
    """
    lt[0],lt[1]=lt[1],lt[0]
代码语言:javascript
复制
>>> lt
[3, 2]
>>> change(lt)
>>> lt
[2, 3]

可变长度的参数,程序设计中会遇到参数不固定的情况。这时候就需要使用可变长度的函数参数来实现相关功能。python中有2 中可变参数,dict和dictionary

代码语言:javascript
复制
def display_tulp(*tp):
    for elem in tp:
        print("element={}".format(elem),end=",")
代码语言:javascript
复制
>>> t1=1,2,3
>>> display_tulp(*t1)
element=1,element=2,element=3,
>>> t2=11,22,33,55,66
>>> display_tulp(t2)
element=(11, 22, 33, 55, 66),

其它类型的参数,必须在可变参数之前,如 fun(name,old=66,*sub)

字典可变长的参数 在dictionary中,关键字为参数名,值为相应的参数,其放在函数参数最后以**开头的参数。

代码语言:javascript
复制
def display_dict(**dict):
    for item in dict.keys:
        print("{}:,{}".format(item,dict[item]))

出现了一点错误

代码语言:javascript
复制
>>> a={1:'a',2:'b'}
>>> display_dict(**a)
Traceback (most recent call last):
  File "<pyshell#1>", line 1, in <module>
    display_dict(**a)
TypeError: display_dict() keywords must be strings

这个二分查找,递归下标有点小问题。

代码语言:javascript
复制
def find(lt,k,l,r):
    count=0
    count+=1
    mid=(l+r)//2
    if lt[mid]==k:
        return mid+1
    elif lt[mid]>k:
        find(lt,k,0,mid-1)
    else:
        find(lt,k,mid+1,len(lt))
    if count>len(lt)+1:
        return -1

变量的作用域。

在一个函数体内,或者语句块内定义的变量 称为局部变量。局部变量,自在定义的局部块内有效。

在函数之外定义的变量,称为全局变量,它可以被多个函数引用。

在函数体内,要为全局变量赋值,可以使用global语句,表明变量是全局的。

代码语言:javascript
复制
def display(x,y):
    global x
    x=68
    y=22
    print(" no2: x={0},y={1}".format(x,y))

x=11
y=111

匿名函数,使用lambda表达式 lambda [参数1,[参数2,参数3。。。参数n]]:表达式

:冒号前面的是参数,后面表达式,但是在表现形式上只返回一个值。

代码语言:javascript
复制
>>> f=lambda x,y:x+y
>>> f(2,6)
8

模块,可以理解为一个.py的文件。 import name ,导入模块。 导入特定的属性或者库, from 模块名 import name

大约,就是这样,python的 文件,异常,面向对象,图形。 争取5篇文章内,搞得,在水一下,爬虫,科学计算, 不在玩了,我已经 把语法糖拿下来了。 准备转入j2se,j2ee,这是我的主攻。 还有科学技术,作图,spider等,怎么学习,有人,给一个意见没有,感觉这里面函数参数,太多。手上没有好的书籍。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018.04.30 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档