python第五章——函数
第五章——函数
5.1函数概述
快速入门:
#定义函数
def func():
print('123')
#调用函数
func()
加小括号是调用函数,不加小括号可能是进行值的传递
(1)函数定义:实现某一项特定功能的代码块
(2)函数分类:内置VS自定义
1)内置函数:Python解释器已经写好的函数,无需对象访问,直接调用即可
2)自定义函数:
定义方式:def关键字
调用方式:就是直接写函数名()
注意:函数只有被调用的时候,才会执行里面的代码块
3)函数参数:
形参:形式上的参数,你传递的是啥,我就是啥
实参:实际传过去的参数
def func(a,b): # a,b就是形参
print(a+b)
func('hello','world') # 拼接(实参)
func(100,566) # 运算(实参)
#helloworld
#666
注意:形参和实参要一一对应
4)函数返回值:
关键字:return
说明:所有函数都有返回值,函数是去执行一项功能,执行完必然有反馈
作用:将结果返回给调用处,并结束当前代码
总结:学习一个函数,首先要知道它的功能,其次就是要知道它的参数和返回值
Structure里显示定义的函数
两种加法器实现方式:
# 加法器1
def fun1(a,b):
print(a+b)
# 加法器2
def fun2(a,b):
return a+b # 更灵活
fun1(10,20)
sum = fun2(30,40)
print(sum)
python这么写会报错:
fun() # 调用动作必须在声明函数之后
def fun():
print('hello')
从函数中返回函数:
其实并不需要在一个函数里去执行另一个函数,我们也可以将其作为输出返回出来:
def greeting(name="hello"):
def hello():
return "now you are in the hello() function"
def world():
return "now you are in the world() function"
if name == "hello":
return hello
else:
return world
a = greeting()
print(a) # <function greeting.<locals>.hello at 0x0000018EE2AD7268>
print(a()) # now you are in the hello() function
b= greeting(name="world")
print(b()) # now you are in the world() function
print(greeting()()) # now you are in the hello() function
注:加小括号是调用函数,不加小括号是进行值的传递,为了在函数中执行另一个函数,在 if/else 语句中我们返回 hello 和 world,而不是 hello() 和 world()
将函数作为参数传给另一个函数:
def world():
return "world!"
def hello(func):
print(func())
hello(world) # world!
练习题:
(1)定义一个函数,传递整数n,返回1-n之间的偶数和
(2)定义一个函数,使其能够将信息(数字密码)转成暗语输出
def fun1(n):
# 1.验证
import re
if not re.match(r'^-?\d+$',n):
return '非法输入'
# 2.求和
n = int(n) # 负数不会报错
# 3.负数(这里将负数正常处理了,实际上负数是不能这样做的)
step = 1 if n>=0 else -1
sum=0
for i in range(1,n+step,step):
if i%2==0:
sum+=i
return sum
num = input('请输入一个整数:')
print(fun1(num))
(2)定义一个函数,使其能够将信息(数字密码)转成暗语输出
暗语规则:19004546 -> IPOOYSYG
两种实现方式:
def fun2(sr):
dt = {
'0':'O','1':'I','2':'Z','3':'E','4':'Y','5':'S','6':'G','7':'L','8':'B','9':'P'}
ans = ''
for i in sr:
ans += dt[i]
return ans
print(fun2("123456789