【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
数字	0	1	2	3	4	5	6	7	8	9
暗语	O	I	Z	E	Y	S	G	L	B	P
两种实现方式:

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值