一个程序可以按照功能的实现,分割成许多的代码块,每一个代码块可以封装成一个函数,在python中创建一个函数用def关键字。
创建函数:
def ccna():
print('cisco')
print('huawei')
print('h3c')
注意:函数名后面必须有小括号
调用函数:
>>> def ccna():
print('cisco')
print('huawei')
print('h3c')
>>> ccna()
cisco
huawei
h3c
函数的调用和运行机制:
当函数发生调用的时候,python自动往上找到def ccna()的定义过程,然后依次执行该函数包含的代码块部分,只需要一条语句,就可以实现函数内的所有功能。
函数的参数
开始的函数是没有参数的,只是这样的函数不过就是对同样的代码内容进行打包,这样跟使用循环就没有什么本质区别了。所以为了使每次调用函数可以有不同的实现,加入了参数的概念。
>>> def function(name):
print(name+'我爱你')
>>> function('python')
python我爱你
如果参数是多个,用逗号隔开即可
>>> def add(num1,num2):
print(num1+num2)
>>> add(1,2)
3
函数的返回值
只需要在函数中使用关键字return,后面跟着的就是指定的返回值
def add(num1,num2):
return (num1+num2)
add (2,5)
7
课后题
1.你有听说过DRY吗?
2.都是重复一段代码,为什么我要使用函数(而不使用简单的拷贝黏贴)呢?
3.函数可以有多个参数吗?
4.创建函数使用什么关键字,要注意什么?
5.请问这个函数有多少个参数?
def MyFun((x, y), (a, b)):
return x * y - a * b
6.调用以下这个函数会打印什么内容?
def hello():
print(‘Hello World!’)
return
print(‘Welcome To FishC.com!’)
解:
1.DRY是程序员公认的指导原则,don’t repeat youself
2.可以降低代码量,降低维护成本,使得程序更易阅读
3.python函数的参数并没有固定数量
4.def关键字,注意,函数名后面必须带上小括号,然后是冒号,缩进部分均属于函数体的内容
5.答案是 0,因为类似于这样的写法是错误的!
6.打印hello world,因为函数一旦执行到return语句时候,python语句就会到此结束,需要返回了。
动手题:
1.编写一个函数power模拟内建函数pow(),即power(x,y)为计算并返回x的y的次幂的值
>>> def power(x,y):
result = 1
for i in range(y):
result *=x
return result
>>> print(power(2,3))
8
2.编写一个函数,利用欧几里得算法(脑补链接)求最大公约数,例如 gcd(x, y) 返回值为参数 x 和参数 y 的最大公约数。
def gcd(x, y):
while y:
t = x % y
x = y
y = t
return x
print(gcd(4, 6))
3.编写一个将十进制转换为二进制的函数,要求采用“除2取余”(补脑链接)的方式,结果与调用 bin() 一样返回字符串形式。
def Dec2Bin(dec):
temp = []
result = ''
while dec:
quo = dec % 2
dec = dec // 2
temp.append(quo)
while temp:
result += str(temp.pop())
return result
print(Dec2Bin(62))
111110