第6次预习课-0801

函数:

 

好处: 复用,减少重复代码的编写。

def f():

    pass

 

小练习:

写一个除法的函数,且需要处理,除数不能为0

1 def div(a,b):
2     if not isinstance(a,(int,float)):
3         return None
4     if not isinstance(b,(int,float)):
5         return None
6     if b!=0:
7         return a/b
8     else:
9         return None

 

print(div(2,3))

print(div(2,0))

print(div("a",1))

print(div(2,"b"))

 

当定义了函数,没有return返回值,返回值就是None

 

传参,少了或多了,出现的错误

 

练习:

写一个函数,统计一下一句话中的数字个数

I am a 19 years old boy!666!

 1 s="I am a 19 years old boy!666!"
 2 
 3 def count_digits(s):
 4     count = 0
 5     if not isinstance(s,str):
 6         return None
 7     for i in s:
 8         if i in "0123456789":
 9             count+=1
10     return count
11 
12 print(count_digits(s))

 

函数的缺省值(默认值)

 

不允许缺省的参数值放在非缺省的前面

 

参数传入的参数为不可变的,对外部的变量就没有影响

–按值传,传入的不是变量对应的内存地址

参数传入的参数为可变的,对外部的变量就有影响

-按引用传,传入的是变量对应的内存地址

 

 

声明全局变量,global,可以改变外部变量的值

 

可变参数,要放在固定参数之后

*arg 代表元组

 

练习:

写一个函数,使用可变参数,计算函数所有参数之和

1 def f(*arg):
2     result = 0
3     for i in arg:
4         result += i
5     return result
6 
7 print(f(1,2,3,4,5))

 

**kw 代表字典

 

*arg 表示把可变的多个非命名参数,转化为一个元组

**kw:表示把可变的多个命名参数,转化为一个字典

 

练习1:请使用**kw的方式,把可变的所有参数算一个乘积

练习2:同时使用*arg 和 **kw,算一下字母的长度之和,注意所有参数均使用字符串,字符串都是字母

1 def f(**kw):
2     chengji=1
3     for v in kw.values():
4         chengji*=v
5     return chengji
6 
7 print(f(a=2,b=3,c=4))
 1 def f(*arg,**kw):
 2     len1=0
 3     len2=0
 4     for i in arg:
 5         len1+=len(i)
 6     for j in kw.values():
 7         len2+=len(j)
 8     return len1+len2
 9 
10 print(f("aaa","bbb",m="good",n="life"))

 

posted @ 2018-08-02 16:03  feifei_tian  阅读(114)  评论(0)    收藏  举报