1 # -*- coding:utf-8 -*-
2 print(\'================python的函数使用=================\')
3 ##查看一个函数使用方式
4 print(\'查看函数的使用help(funcname)\')
5 ##函数其实是指向函数对象的引用跟JavaScript一样的,所以可以将函数名给一个name然后使用
6 cabs = abs
7 print(\'让cabs指向abs函数的引用\', cabs(-100))
8
9 print(\'函数的封装逻辑\')
10 a = set([1,2,3,4,5,6])
11 def ie(a):
12 if len(a) > 5:
13 print(\'函数大余5所以要减一\')
14 a.remove(5)
15 print(a)
16
17
18 ie(a)
19
20 print(\'建立一个空的函数是没有开发好的代码,占时让代码运行起来\')
21 def b(hh = 1):
22 pass
23
24 b(5)
25
26 def c(a, b=1, c=3):
27 return a, b, c
28
29 print(c(1))
30 print(c(2,1))
31 print(c(1,3,4))
32
33 print(\'函数内部参数检查isinstense(avgs)\')
34 ##封装一个str转int的方法
35 def castint(s):
36 if isinstance(s, str):
37 return int(s)
38 else:
39 return None
40 print(\'转换的函数值=\',castint(\'4556\'))
41 ##print(\'转换非字符串函数值=\', castint(\'ssss\')) ##报错ValuesError
42 print(\'转换其它的值=\', castint(12.45)) ##返回None值
43
44 print(\'使用tuple(元组)将多值进行返回\')
45 def mutlval():
46 return (6,7,8,8,9)
47 print(\'tuple元组返回的多值:\', mutlval())
48
49 ##计算函数jisuan(val,n)
50 def jisuan(x):
51 if isinstance(x, int):
52 return x*5/8
53 else:
54 raise ValueError(\'传入的值错误请检查\')
55 print(\'计算\', jisuan(5), \'这是x*5/8的值哦!\')
56
57 ##定义可变的参数,看样子好厉害的样子哦!其实就是将list列表tuple元组传进函数so easy,还可以用*ags定义哦
58 def mult(m = (1,2,3,4,)):
59 if isinstance(m, tuple):
60 return m
61 else:
62 raise ValueError(\'请传入元组数据\')
63 print(mult((4,5,6,7,8)))
64 ##print(mult([4,5,6,7,87]))
65
66 ##关键字参数感觉最牛逼哦!其实传入的是key=value,key1=value貌似json的数据
67 def ws(a, b, **kw):
68 print( a, b, kw) ##关键字在函数里面使用时kw不要**
69
70 print(ws(1, 2, key1=\'vals\', key2 = \'val2\')) ##key不要单引号哦!
71 print(\'关键字参数主要用在dict上,可以选择性传入多个值\')
72
73 print(\'所以问题来了,总结:参数可以传入[比选参数,默认参数,可变参数,关键字参数]\')
74 print(\'用注意的是:*ags是元组tuple,**kw是dict目录\')
75
76 ##def kebian(*(1,2,4), **{\'k1\':1,\'k2\':2}):
77 ## print(\'定义了可变参数*(1,2,4)和关键字参数**{\'k1\':1,\'k2\':2}\')
78 ##print(kebian((5,6,7,8),**{\'k3\':3,\'k4\':4}))