标签:传递 form style 用两个 元组 pyc 严格 turn 分类
代码的一种组织形式,一个函数一般完成一项特定的功能
函数的使用:
函数的定义部分不会被执行
def 函数名(参数列表): 函数体
实例:
def func1(): # 定义函数,此处未传参数 print(‘这就是函数!‘) print(‘我不玩了。‘) func1() # 函数的调用
输出如下:
这就是函数!
我不玩了。
负责给函数传递一些必要的数据或者信息
实例:
# 参数的定义与使用: def func2(hello): # hello为形参,无实质作用,仅代表调用时需要填入某一数据 print(‘{},猜猜我是谁‘.format(hello)) func2(‘Hi‘) # func()函数传入实参‘Hi‘,调用时 实参(Hi) 会代替 形参中的所有(hello) # 如果写入形参,调用时未填入实参,会报错! func2()
输出结果如下:
Hi,猜猜我是谁 TypeError: func2() missing 1 required positional argument: ‘hello‘
func2()缺少一个必需的位置参数:‘hello‘
函数的执行结果
实例:
# 函数返回值,一般用于函数末尾 def func2(one,two): num = one + two if num > 10: print(num,‘> 10‘) return ‘大于10‘ else: print(num,‘< 10‘) return ‘小于10‘ print(‘你猜我会被print出来吗?‘) # 在pycharm中,该行会被底色标注 res = func2(5,8) print(res)
输出结果如下:
13 > 10 大于10 # return后面的语句不会被打印出来
# 定义函数 def 函数名(参数1, 参数2,....): 函数体 # 调用函数 函数名(value1, value2, .......) # 严格按位置赋值
# 定义函数 def 函数名(参数1, p2 = v2,....): 函数体 # 调用1 函数名(value1) # 调用2 函数名(value1, value2)
实例:
def func3(name,age = 18): # 定义函数func3(),其中age参数默认为18 print(‘My name is‘,name) print(age,‘years old‘) func3(‘落晨‘) print(‘-‘ * 33) # 分隔符 func3(‘落晨‘,25)
输出结果如下:
My name is 落晨 18 years old --------------------------------- My name is 落晨 25 years old
# 定义函数
def 函数名(p1, p2, p3, ...): 函数体
# 调用函数 函数名(p1=v1, p2=v2, p3=v3, ...) #
缺点:
优点:
实例:
def func4(name,age): print(‘My name is‘,name) print(age,‘years old‘) func4(age=18, name=‘落晨‘)
输出结果如下:
My name is 落晨 18 years old
撸代码时,可能调用时的实参比预留的形参更多,此时我们就需要用到不定长参数
# 定义函数
def 函数名(*args): 函数体
# 调用函数 函数名(v1, v2, v3, ...)
实例:
def func5(*args): print(type(args)) print(‘-‘ * 10) print(‘我要输出args:‘,args) func5(‘落晨‘,18,‘不知道写啥了‘)
输出结果如下:
<class ‘tuple‘> ---------- 我要输出args: (‘落晨‘, 18, ‘不知道写啥了‘)
把关键字参数按字典格式存入收集参数
# 定义函数 def 函数名(**kwargs): # 两个星号 函数体 # 调用函数 函数名(p1=v1, p2=v2, p3=v3, ...)
实例:
def func6(**kwargs): print(type(kwargs)) print(‘-‘ * 10) print(‘我要输kwargs:‘,kwargs) func6(name=‘落晨‘,age=18,other=‘不知道写啥了‘)
输出结果如下:
<class ‘dict‘> ---------- 我要输kwargs: {‘name‘: ‘落晨‘, ‘age‘: 18, ‘other‘: ‘不知道写啥了‘}
def func7(name, age, *args, hobby="None", **kwargs): print(‘Hi,everybody!‘) print(‘My name is {0}, {1} years old‘.format(name,age)) print(‘I like animals, such as‘,args,‘and so on‘) if hobby == None: print(‘I have no hobbies.‘) else: print(‘I love to {0}.‘.format(hobby)) print(‘And my other hobbies :‘,kwargs) func7(‘落晨‘,18,‘monkeys‘,‘cats‘,‘dogs‘,hobby=‘sleeping‘,hobby2=‘music‘,hobby3=‘laughter‘)
输出结果如下:
Hi,everybody! My name is 落晨, 18 years old I like animals, such as (‘monkeys‘, ‘cats‘, ‘dogs‘) and so on I love to sleeping. And my other hobbies : {‘hobby2‘: ‘music‘, ‘hobby3‘: ‘laughter‘}
把参数放入list或者字典中,直接把list/dict中的值放入收集参数中
def func8(*args): for i in args: print(i) l = [‘落晨‘, 18, ‘睡觉‘]
func8(l) print(‘-‘ * 10) func8(*l) # 传参时加上 * 号,可以进行解包
输出结果如下:
[‘落晨‘, 18, ‘睡觉‘] # 如果想将列表中的元素逐一打印出来,显然直接调用是行不通的 ---------- 落晨 18 睡觉
对dict类型进行解包,需要用两个星号
有无返回值
def func9(): print("我这有返回值") return 1 def func10(): print("我没有返回值") f1 = func9() print(f1) print(‘-‘ * 15) f2 = func10() print(f2)
输出如下:
我这有返回值 1 --------------- 我没有返回值 None
标签:传递 form style 用两个 元组 pyc 严格 turn 分类
原文地址:https://www.cnblogs.com/wilson-5133/p/10356758.html