知识点汇总
- 函数的参数设置:无参数函数,有参数函数,默认参数函数
- 匿名函数
- 递归函数
- 类
函数通用格式
def 函数名(参数1,参数2):
返回值=函数公式
return 返回值
1、函数的参数
#函数可以没有任何参数
def saysomething():
print("%^&%*^*&")
saysomething()#输出结果%^&%*^*&
#大多数函数还是有参数的
def formula(x,y,z):
print(x*y*z)
formula(3, 5, 10) #输出结果150
#默认参数z=100
def formula(x,y,z=100):
result=x*y*z
return result
#调用函数时,如果不给出默认参数的值,就按默认值计算
print(formula(1,2))#输出结果200
#如果给出默认参数的新值,则按新的值计算
print(formula(1,2,3))#输出结果6
二、匿名函数
#匿名函数,不需要def定义,简化写法
square=lambda x:x*x
square(2)#输出:4
三、递归函数
#递归函数指的是,函数自己调用自己
def sum(n):
if n<=0:
return 0
return n+sum(n-1)
sum(100)
#输出结果 5050
递归函数案例:计算10000块钱每天花一半能花多少天
#简便写法
def cost(money,day):
if money<=0:
return f"钱花完了,花了{day}天"
return cost(money//2,day+1)
print(cost(10000,0))
#完整写法
def cost(money,day):
if money<=0:
return f"钱花完了,花了{day}天"
else:
day=day+1
money=money//2
return cost(money,day)
print(cost(10000,0))
四、类
#self参数,由程序自动传入的参数,指调用该方法的对象。
class Phone():
def makeCall(self,who):
return f"正在打电话给{who}"#定义一个打电话的方法
def sendMsg(self,who,txt):
return f"正在发短信给{who},内容为{txt}"#定义一个发短信的方法
#创建一个对象phone_a,和一个对象phone_b
phone_a=Phone()
phone_b=Phone()
#调用对象的方法makeCall和方法sendMsg
print(phone_a.makeCall("阿花"))
print(phone_b.sendMsg('小红', "去逛街"))
class Phone():
def __init__(self, bd, clr):#定义初始化方法__init__并设定两个参数bd与clr。
self.brand=bd #属性brand
self.color=clr #属性color
myPhone = Phone("华为", "白色")#创建一个对象myPhone
print(f"我的手机是{myPhone.color}的,品牌是{myPhone.brand}")
类的应用案例
# 创建餐馆类
class Restaurant():
# 构造方法
def __init__(self,restaurantName,signatureDish):
self.restaurantName = restaurantName # 定义实例属性:餐馆名称
self.signatureDish = signatureDish # 定义实例属性:招牌菜
# 定义输出餐馆名和招牌菜的方法
def getSignatureDish(self):
print(f"餐馆的名字是{self.restaurantName}")
print(f"餐馆的招牌菜是{self.signatureDish}")
# 定义输出餐馆正在营业中的方法
def isOpen(self):
print("餐馆正在营业中")
# TODO 创建Restaurant类的实例
res=Restaurant('全聚德','烤鸭')
# TODO 调用getSignatureDish()方法
res.getSignatureDish()
#输出结果
#餐馆的名字是全聚德
#餐馆的招牌菜是烤鸭
# TODO 调用isOpen()方法
res.isOpen()
#输出结果
#餐馆正在营业中