学python的一天天day4

最近在忙着实习工作的事情,一切稳定下来了,又可以接着学习python了

函数的参数

python函数的定义非常灵活,除了正常定义的参数之外,还可以使用默认的参数,可变参数和关键词参数

  1. 位置参数
def power(x):
    return x*x
print(power(5))

x是一个位置参数,当我们在调用power函数的时候,把参数x的值要写入。

power(5)
25

当我们需要计算x^n 怎么办呢?尝试修改一下位置参数实现。

def pwer(x,n):
    return x**n

pwer(4,4)得到的结果是256
前面的位置参数都是通过后面传入的,但有些时候有些参数是固定的,我们可以将它直接写上。

  1. 默认参数
    假设在实际工作中我们经常用到x的平方计算,可以将代码这样进行设置
    必选参数在前,默认参数在后,当函数有多个参数时,把变化大的参数放前面,变化小的参数放后面。变化小的参数可以作为默认参数。
def power(x,n=2):
    return x**n

做两个运算

power(5) #得到的结果为25
power(5,3) #得到的结果为125

通过上面的代码我们不难看出,当你重新传入位置参数的时候,会把固定参数进行一个更新
练习:
写个一年级小学生注册的函数,需要传入name和gender两个参数:

def enroll(name,gender):
    print('name:',name)
    print('gender:',gender)
enroll('xiaoming','male')

输出的结果是:
name: xiaoming
gender: male
如果要继续传入年龄,城市信息等参数,这样子会传入的参数变多,假设年龄都是6,城市是Beijing,修改代码如下:

def enroll(name,gender,age=6,city='Beijing'):
    print('name:',name)
    print('gender:',gender)
    print('age:',age)
    print('city:',city)

继续调用函数

enroll('xiaoming','male')

得到结果是
name: xiaoming
gender: male
age: 6
city: Beijing
对绝大部分同学可以按照上述参数进行,对这四个参数来说,我们给函数传入参数时会按照定义的参数先后依次给予值,比如

enroll('xiaoming','male','Tianjin')
name: xiaoming
gender: male
age: Tianjin
city: Beijing

这种情况下在写代码时候要注意将参数名也写上,比如调用enroll('Adam', 'M', city='Tianjin'),意思是,city参数用传进去的值,其他默认参数继续使用默认值。
定义的默认参数必须指向不变对象!

def add_end(L=[]):
    L.append('END')
    return L

这里的L是可变对象,这样子会造成函数每次都记住了上次添加的“END“后的list。
所以一定要将默认参数指向不变对象(str,None,tuple)

def add_end(L=None):
    if L==None:
        L=[]
    L.append('END')
    return L
  1. 可变参数
    在python函数中,还可以定义可变参数。
    比如计算a2 + b2 + c2 + ……
def fun(*number):
    sum=0
    for i in number:
        sum+=i*i
    return sum

参数前面有了*,在函数内部,参数numbers接收到的是一个tuple,因此,函数代码完全不变。但是,调用该函数时,可以传入任意个参数,包括0个参数:

fun(1,2,3,4,5,6)
#结果是91
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值