Python函数

自定义函数

def    函数名(参数):

       函数体

        return  

例如:

def mul(x):
    return x*x
y=mul(5)
print(y)

输出:

25

注意:严格缩进

1、给函数编写文档

放在函数开头的字符串成为文档字符串

例如:

def mul(x):
    'Hollew World'
    return x*x
y=mul(5)
print(y)
print(mul.__doc__)

输出:
25
Hollew World

注意:

1、访问方式:函数名,__doc__

2、__doc__是函数的一个属性,双下划线表示为特殊属性

2、函数的可修改与不可修改

给出例子:


def x_change(x):
    x='Mr.G'
def y_change(y):
    y[0]='Mrs.G'
xs="Mrs.XA"
x_change(xs)
print(xs)
ys=["Mr.YA","Mrs.YS"]
y_change(ys)
print(ys)

输出:

Mrs.XA
['Mrs.G', 'Mrs.YS']

你会发现x没有被改变,y被改变了。

这是因为x_change(x)只是给局部变量x赋了一个值,改变了x的值,为改变xs的值;而y_change(y)中修改了变量关联的ys。

这是因为将一个列表付给两个变量时,两个变量都指向这个列表,修改其一就都修改了。

为了避免这种情况,应该为对序列进行切片操作,返回副本!!!

例1:

def y_change(y):
    y[0]='Mrs.G'
ys=["Mr.YA","Mrs.YS"]
ys2=ys[:]
print(ys2)
y_change(ys2)
print(ys)
print(ys2)

输出:

['Mr.YA', 'Mrs.YS']
['Mr.YA', 'Mrs.YS']
['Mrs.G', 'Mrs.YS']

例2:

def y_change(y):
    y[0]='Mrs.G'
ys=["Mr.YA","Mrs.YS"]
y_change(ys[:])
print(ys)

输出:

['Mr.YA', 'Mrs.YS'] 

你会发现ys没有改变,ys2改变了!!

这是因为ys与ys2相同,但不是同一个变量!!

如果想要修改:

1、利用返回值


def x_change(x):
    x='Mrs.G'
    return x
x="Mr.YA"
x=x_change(x)
print(x)

输出:

Mrs.G

可见修改成功!!

2、将值放到可修改的列表中

def x_change(x):
    x[0]='Mrs.G'
    return x
x=["Mr.YA"]
x=x_change(x)
print(x)

['Mrs.G']
3、关键字参数和默认值

例如:

def Hello(name,greeting="Hi",str="!"):
    print("{},{}{}".format(greeting,name,str))
Hello("Alice")

输出:

Hi,Alice!

与上面比较:

def Hello(name,greeting="Hi",str="!"):
    print("{},{}{}".format(greeting,name,str))
Hello("Alice",'Hello')

输出:
Hello,Alice!

4、收集参数

允许用户提供任意个参数!!

例如:

def name(*pname):
    print(pname)
name("Alice")
name('Alice','wang','MingYi')

输出:

('Alice',)
('Alice', 'wang', 'MingYi')

注意输出格式:元组!!

def Add(x,*y,z):
    print(x,y,z)
Add(1,4,5,6,7,8,9,z=2)

输出:

1 (4, 5, 6, 7, 8, 9) 2

注意:当*y后还有参数时一定要对*后的参数进行说明——z=2!!!

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值