Python函数和类

1.自定义函数

1.1 无参或者必备参数

Python函数定义可以传参数也可以不传,下面的nothing函数就是无参函数,其他均是有参函数,这里说的必备参数是指在调用函数时,函数有几个参数就要传入几个参数,比如下面的add(x,y)函数,如果调用时使用add(2),则程序无法运行。

def nothing(): 
    print('do nothing')
def add(x,y):
    print(x+y)
    return x+y
def minus(x,y):
    print(x-y)
    return x-y
def operate(x,y): #可以在一个函数里调用其他函数
    print('两个数相加相减分别为:',add(x,y),minus(x,y))
nothing()
#输出 do nothing

add(3,2)
#输出5

minus(9,8)
#输出1

operate(100,900)
#输出 1000
#     -800
#     两个数相加相减分别为: 1000 -800

1.2 默认参数

使用默认参数和普通参数的区别在于和当使用默认参数时,可以不用每个参数都输入。

def add(x,y=2):
    print(x+y)
    return x+y
def minus(x,y=4):
    print(x-y)
    return x-y
add(3)
# 输出5

add(4,5)
# 输出9

minus(9)
# 输出5

minus(8,3)
# 输出5

2.Lambda使用

其实对于一些简单的函数,使用lambda可以达到和定义函数一样的效果。

sum1 = lambda a,b:a+b
print(sum1(2,3))
# 输出5
sum2 = lambda a,b:a-b
print(sum2(2,3))
# 输出-1

Lambda的作用就像是定义了一个匿名函数,a和b是传入的参数,a+b和a-b是函数体,两个lambda的作用和上面自定义函数中的add(x,y)和minus(x,y)效果是相同的。
Lambda适合用于函数体较简单的函数的简写,如果函数体中包含循环或者复杂条件判断则不适合用lambda。

3.导入模块

3.1 导入已有的包

Python中有许多函数是已经写好的,安装Python时就会自带,我们可以直接引入来使用。
time是指time.py文件,localtime()则是time.py里的一个函数。

import time
print(time.localtime())
# 输出 time.struct_time(tm_year=2020,
# tm_mon=3,
# tm_mday=17,
# tm_hour=17,
# tm_min=25, 
# tm_sec=38, 
# tm_wday=1, 
# tm_yday=77, 
# tm_isdst=0)

如果引用的名太长,可以在导入时用as给导入的文件添加简短的名称。

import time as t
print(t.localtime())
# 输出 time.struct_time(tm_year=2020,
# tm_mon=3,
# tm_mday=17,
# tm_hour=17,
# tm_min=25, 
# tm_sec=38, 
# tm_wday=1, 
# tm_yday=77, 
# tm_isdst=0)

不需要使用导入文件的所有函数,可以单独导入某个函数

from time import localtime
print(localtime())
# 输出 time.struct_time(tm_year=2020,
# tm_mon=3,
# tm_mday=17,
# tm_hour=17,
# tm_min=25, 
# tm_sec=38, 
# tm_wday=1, 
# tm_yday=77, 
# tm_isdst=0)

3.2 导入自己写的函数

其实方法和导入系统的模块方法是一样的,只是要注意路径,如果你当前编辑的文件和你要导入的模块是在同一路径下的,那么:

#test.py

import myself

myself.Myfunction()
# myself.py
def Myfunction():
    print('myself.Myfunction')

如果是不同文件夹,那么

# test.py
import Python_test.myself

myself.Myfunction()
# myself.py
def Myfunction():
    print('myself.Myfunction')

Python_test是一个文件夹,里面有文件myself.py,Python_test和test.py在同一路径下。

4.Python类

以一个玩具店对象来说明类的使用

class Toys:
    def __init__(self,name,stock,price):#初始化三个属性
        self.name = name
        self.price = price
        self.stock = stock
    def buy(self,stock):#进货函数
        self.stock=self.stock+stock
    def sell(self,stock):#卖出函数
        self.stock=self.stock-stock
    def sale(self):#打折函数
        self.price = self.price*0.8
        
toy1 = Toys('Cars',18,90)
print('------------最开始-------------')
print('name:',toy1.name,'stock:',toy1.stock,'price:',toy1.price)
print('------------------------------')
toy1.buy(10)
print('-----------进货10--------------')
print('name:',toy1.name,'stock:',toy1.stock,'price:',toy1.price)
print('-------------------------------')
toy1.sell(5)
print('----------卖出5----------------')
print('name:',toy1.name,'stock:',toy1.stock,'price:',toy1.price)
print('-------------------------------')
toy1.sale()
print('----------打八折----------------')
print('name:',toy1.name,'stock:',toy1.stock,'price:',toy1.price)
print('-------------------------------')

输出:

------------最开始-------------
name: Cars stock: 18 price: 90
------------------------------
-----------进货10--------------
name: Cars stock: 28 price: 90
-------------------------------
----------卖出5----------------
name: Cars stock: 23 price: 90
-------------------------------
----------打八折----------------
name: Cars stock: 23 price: 72.0
-------------------------------
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值