赞
踩
函数就是用来实现一些特定的小程序或方法
优点:
def 函数名([参数1[,参数2…]]):
函数体
函数名([参数1[,参数2…])
遵循变量的命名规则
关键字参数
关键字就是你的形参名 在调用的时候 使用形参名=值
def demo(a,b,c):
pass
demo(c=10,b=20,a=30)
def 函数名(参数名=值…):
def func(a=10,b=10): #正确给形参默认值的操作
def func(a,b=10): #正确给形参默认值的操作
#def func(a=10,b): #错误给形参默认值的操作
pass
return 值
注意:
主体结构:
def 函数名(*args):
pass
def demo(*args):
print(args)
print(type(args))
#(1, 2, 3, 4, 5)
#<class 'tuple'>
demo(1,2,3,4,5)
demo(1)
demo()
def 函数名(**kwargs):
pass
函数名(x=1,y=2,z=3)
def demo(**kwargs):
print(kwargs)
demo(x=1,y=2)
def 函数名(**kwargs):
pass
myDict = {‘x’:1,’y’:2}
函数名(**myDict)
def func(**kwargs):
print(kwargs)
myDict = {'x': 1, 'y': 2}
func(**myDict)
主体结构:
def 函数名(*args,**kwargs):
pass
注意:
def func4(*args,**kwargs):
print(args)
print(kwargs)
func4(x=1,y=2)
可变类型:如 列表 字典 在函数内修改变量的值 外部也会发生改变 可变类型
不可变类型: 如 整数 字符串 元组 在函数内部对其进行修改的时候 其实是创建一个一个同名的局部变量
myDict = {'name':"张三",'age':18}
def updateType():
print(myDict) #myDict = {'name':"张三",'age':18}
myDict['name'] = '李四'
print(myDict) #myDict = {'name':"李四",'age':18}
updateType()
print(myDict) ##myDict = {'name':"李四",'age':18}
def demo():
myStr = 'a' #创建了一个局部变量 myStr
print(myStr) #打印局部变量
print(id(myStr)) #打印局部变量 myStr的存储地址
demo()
print(id(myStr)) #打印全局变量 myStr的存储地址
print(myStr)
全局变量: 在函数外部定义的变量 称为全局变量
局部变量: 在函数内部定义的变量 称为 局部变量
myStr = 'abcd'
def demo():
print(myStr)
demo()
def demo():
myStr = 'abcd'
print(myStr)
demo()
print(myStr) #NameError
myInt = 10
def demo():
global myInt
myInt = 20
demo()
print(myInt) #20
def func1():
global age
age = 18
print(age) #18
func1()
print(age) #18
name = '张三'
def A():
name = '李四'
def B():
nonlocal name
name = '王五'
# global name #将全局变量 name声明为函数内外使用同一个
def C():
# global name #将全局变量 name声明为函数内外使用同一个
print("我是C的函数",name)
C()
print("我是函数b",name) #张三
B()
print("我是函数A",name)
A()
关键字 lambda
变量名 = lambda [形参]:代码
func = lambda:print('我是一个lambda表达式')
func()
a = 10
func1 = lambda:a
print(func1())
func = lambda x,y:x+y
func(1,2)
func = lambda x=1,y=2:x+y
print(func(y=3,x=1))
(lambda x,y:x+y)(1,2)
from 库名 import 包名
from 库名 import 包名 as 别名
from 库名.包名 import 方法名[,方法名…]
import 包名 as 别名
__name__ :系统属性 可以在包被引入的时候 可以判断当前程序 是否 在主文件里 在主文件 值为 __main__
不要将包或者库的名字 中存在数字 起一个规范的有意义的字母的名字
概念: 在代码运行期间 动态的添加功能 称之为装饰器
def demo(arg):
def inner(age):
if age<=10:
myStr = "儿童"
elif age<=20:
myStr = "青年"
elif age<=50:
myStr = '中年'
else:
myStr = "老年人"
arg(myStr)
return inner
@demo # = mySpeak = demo(mySpeak)
def mySpeak(pserson):
print("你是一个{}年龄段的人".format(pserson))
# mySpeak = demo(mySpeak)
mySpeak(40)
概念: 提供了一种快速生成列表的方式
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。