1 #---------------------------------------------------------------------
2 #函数定义方法,()括号内可以不加形参
3 def FunName():
4 #函数体随便写
5 #函数体随便写,要写多长都可以....建议别太长,不然要骂娘.....
6 pass
7
8 #这里就不属于函数内部了
9 #---------------------------------------------------------------------
10
11 #---------------------------基础部分----------------------------------
12 #实例:编写power(x,y),函数返回x的y次幂
13 def power(x,y):
14 return x ** y
15
16 print(power(2,3))
17
18
19 #实例:编写MyGcd(x,y),函数返回x和y的最大公约数
20 def MyGcd(x,y):
21 if x < y:
22 a = x
23 x,y = y,a
24 while y:
25 x, y = y, x % y
26 return x
27
28 print(MyGcd(15,25))
29
30
31 #实例将一个十进制数转化为二进制
32 def Dec2Bin(dec):
33 str_bin = ""
34 while dec:
35 dec, temp = (dec // 2), (dec % 2)
36 str_bin = str(temp) + str_bin
37 return str_bin
38
39 print(Dec2Bin(2))
40
41 #--------------------------参数部分-----------------------------------
42 #如何传入一个列表或者元组
43 from collections import Iterable
44 print("\n\n#传入列表、元组、字符串、单独的数测试")
45 def MyFirstFun(arr):
46 if not isinstance(arr, (tuple,list,str,Iterable)):
47 print(arr)
48 return None
49 for i in arr:
50 print(i, end=" ")
51 print()
52
53 MyFirstFun((1,2,3,4,5,6))
54 MyFirstFun(["你","我","他","她"])
55 MyFirstFun("I'm a girl!")
56 MyFirstFun(1234)
57
58 #关键字参数的使用
59 def MySecondFun(name,discourse):
60 print(name + ":" + discourse)
61 MySecondFun(discourse="好吧!这是一个例子!",name="欧晨曦")
62
63 #默认参数的使用,牢记,定义默认参数时,默认参数必须指向不可变对象
64 def MyThirdFun(name="欧晨曦",discourse="默认参数的函数使用"):
65 print(name + ":" + discourse)
66 MyThirdFun(name="方源")
67
68 #可变参数的使用
69 def MyFourthFun(*arr):
70 for i in arr:
71 print(i,end=",")
72 print("\n")
73
74 MyFourthFun(1,2,3,4,5,6)
75
76 #在使用可变参数是,后面最好是默认参数,防止意外发生
77 def MyFifthFun(*arr,name="欧晨曦"):
78 for i in arr:
79 print(i,end=",")
80 print(name)
81
82 MyFifthFun(1,2,3,4,5,6) #普通方法
83 list1 = [2,3,4,5,6,7] #假如已有列表或者元组
84 MyFifthFun(*list1) #在变量名称前面加上*号
85
86 #命名关键字参数,其实它们传入的是字典啊!字典
87 def MySixthFun(**keyAndValue):
88 if "Alpha" in keyAndValue:
89 print("Alpha: ", keyAndValue["Alpha"])
90 if "Beta" in keyAndValue:
91 print("Beta:", keyAndValue["Beta"])
92
93 MySixthFun(Alpha=1,Beta=2) #普通方式
94 dir_one = {"Alpha":66,"Beta":88}
95 MySixthFun(**dir_one)
96
97 #Python中,如果程序员没有给函数没有返回一个值,那么实际上是返回None
98 #Python中,与C/C++差不多,在函数内部定义的变量为局部变量,如果在函数内部使用一个
99 #与全局变量名字相同的变量,则Python自动定义一个同名的局部变量
100 abc = 1
101 def MySeventhFun():
102 abc = 2
103 MySeventhFun()
104 print(abc)
105
106 #那么如何使用全局变量,在函数内部更改全局变量的值呢?使用global关键字
107 def MyEighthFun():
108 global abc
109 abc = 8888
110 MyEighthFun()
111 print(abc)