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
-------------------------------