python编程从零基础到项目实践第六章学习---自定义函数第二步

1、参数位置相关内容

def test(name,age):
print("姓名:%s,年龄:%d"%(name,age))

test("hah",11) 姓名:hah,年龄:11
test(name="cscs",age=50) 姓名:cscs,年龄:50 关键值传参


def test1(name="",age=20):
print("姓名%s,年龄%d"%(name,age))
test1() 姓名,年龄20 传默认值
test1("hh") 姓名hh,年龄20 填一个的话默认给name
test1("111",13) 姓名111,年龄13 都填的话按照填写的来


2、不定长参数 格式:函数名([param1,param2,pamar3...,]*paramX) 带*的paramX可以接受任何数值,但是一个自定义函数只能有一个带*的参数,而且只能放在最右边的参数中国。
*可代表传多个参数
def fruit(name,*weidao):
print(name)
print(type(weidao))
print(weidao)

fruit("ggg",111,222,333)

ggg
<class 'tuple'>
(111, 222, 333)

 

3、传递任意数量的键值对   函数名([param1,param2,pamar3...,]**paramX)   传递的是键值对

def fruit2(name,**weidao):
print(name)
print(type(weidao))
print(weidao)

fruit2("xigua",aa="aaaa",bb="bbbb")

xigua
<class 'dict'>
{'aa': 'aaaa', 'bb': 'bbbb'}

 

全局变量和局部变量

j=5
def sum1(i):
i=i+j
return i
i=8
print(sum1(6))
print(j)
print(i)

11 5 8
j为全局变量 函数里的i为局部变量 函数外的i为全局变量
global全局变量
j = 5
k = 3
def sum1(k):
global j
j=j+5
k=4
return k

print(j) 5 全局变量 j=5的值不变
print(k) 3 全局变量k=3的值不变
print(sum1(10)) 4 函数里的k=4局部变量会变

闭包
j=5
def sum1():
k=2
def sum2():
i=k+j
return i
return sum2()
print(sum1())

7

全局变量的范围关系:全局变量>闭包变量>局部变量

 

posted on 2020-08-10 22:08  刘阿童木  阅读(207)  评论(0编辑  收藏  举报

导航