1:形参和实参
定义:
- 形参:在定义函数数,函数名后面口号中的参数为,形参
- 实参:在调用一个函数时,函数名后面口号中的参数为实参,也就是将函数的调用者提供给函数的参数称为实参,(我的理解就是在调用函数时传的参数)
代码示例
def demo(obj): # 这里创建函数的obj属于形参
print ('原值:', obj)
obj += obj
msg = '唯有在追赶的时候你才会奔跑'
demo(msg) #这里的msg属于实参
做一个简单的比喻:形参就相当于一部电视剧的角色,而实参就相当于,饰演角色的演员。
2:位置参数
定义函数时的形参必须和调用时传的实参数量位置是相对的。
函数:fun_bmi()
def fun_bmi(name,height,weight):
print (name + '的身高: ' + str(height) + '米 \t 体重: ' + str(weight) + '千克')
bmi = weight / (height*height)
print '身体的指数为%s'%bmi
# 判断身材是否合理
if bmi < 18.5:
print '您的体重过轻 ~@_@~'
if bmi >= 18.5 and bmi <= 24.9:
print '正常范围,继续保持 (^_^) '
if bmi >= 24.9 and bmi <= 29.9:
print '您的体重有点胖了 ~@_@~'
if bmi >= 29.9:
print '肥胖,该减肥了'
这里定义了形参是三个,少传一个参数会报错
fun_bmi('meimei',1.75)
TypeError: fun_bmi() takes exactly 3 arguments (2 given)
如果传的位置不对,把身高,传在体重那一下,也是会影响数据的准确性的。
fun_bmi('meimei',68,1.75)
meimei的身高: 68米 体重: 1.75千克
身体的指数为0.000378460207612
您的体重过轻 ~@_@~
这些都是错误的。
3:关键字参数
这个主要还是讲的是实参,在传递的时候如果输入关键字,顺序不对应也没关系
还是刚才的那个函数。
def fun_bmi(name,height,weight):
print (name + '的身高: ' + str(height) + '米 \t 体重: ' + str(weight) + '千克')
bmi = weight / (height*height)
print '身体的指数为%s'%bmi
# 判断身材是否合理
if bmi < 18.5:
print '您的体重过轻 ~@_@~'
if bmi >= 18.5 and bmi <= 24.9:
print '正常范围,继续保持 (^_^) '
if bmi >= 24.9 and bmi <= 29.9:
print '您的体重有点胖了 ~@_@~'
if bmi >= 29.9:
print '肥胖,该减肥了'
fun_bmi(weight=68,name='meimei',height=1.75)
meimei的身高: 1.75米 体重: 68千克
身体的指数为22.2040816327
正常范围,继续保持 (^_^)
这里的顺序完全都是乱的,但是传实参的时候带上了关键字,所以,不收任何影响。
我是阿旺,今天就写 到这里吧,家里的灯一直在作祟,一直在爆闪,明天更新可变参数和参数的默认值。
观察走在你前面的人,看看他为何领先,学习他的优点。