四、Python-函数与类

知识点汇总

  • 函数的参数设置:无参数函数,有参数函数,默认参数函数
  • 匿名函数
  • 递归函数

函数通用格式

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()
#输出结果
#餐馆正在营业中

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值