函数基础
函数的作用
函数定义
定义与示例
- def:函数定义关键词
- function_name:函数名称
- ():参数列表放置的位置,可以为空
- parameter_list:可选,指定向函数中传递的参数
- comments:可选,为函数指定注释
- function_body:可选,指定函数体
def func_demo(a, b, c):
'''
这是一个携带参数和注释的函数
:param a:
:param b:
:param c:
:return:
'''
# 函数体
print(f"This is a 打印参数: a={a},b={b},c={c}")
return True
# 打印函数的comments
print(func_demo.__doc__)
# help(func_demo) 效果一样
'''
#结果是:
这是一个携带参数和注释的函数
:param a:
:param b:
:param c:
:return:
'''
# 打印传入参数
print(func_demo('s','dd',3))
'''
# 结果是:
This is a 打印参数: a=s,b=dd,c=3
True
'''
# 定义空函数
def demo(ss):
pass
def demo1(dd):
'''
'''
定义函数的注意事项
- 缩进:python是通过严格的缩进来判断代码块
** 函数体和注释相对于def关键字必须保持一定的缩进,一般都是4个空格或一个tab
** pycharm自动格式化快捷键“ctrl + alt + L”
- 定义空函数
** 使用 pass 语句占位
** 写函数注释comments
函数调用
- function_name:函数名称
- parameter_value:可选,指定各个参数的值
def demo1():
print("这是一个函数")
def demo2(a,b,c):
print(f"这是一个参数函数:a={a},b={b},c={c}")
def deme3(s):
''''''
demo1() # 结果是:这是一个函数
demo2('xxx', 5.333, 999) # 结果是:这是一个参数函数:a=xxx,b=5.333,c=999
参数传递
- 形式参数:定义函数时,函数名称后面括号中的参数
- 实际参数:调用函数时,函数名称后边括号中的参数
- 位置参数:
** 数量必须与定义时一致
** 位置必须和定义时一致
- 关键字参数
** 使用形式参数的名字确定输入的参数值
** 不需要与形式参数的位置完全一致
def demo2(a,b,c):
print(f"这是一个参数函数:a={a},b={b},c={c}")
demo2(c='ddd',a=163.0504,b=['ddd',333,3])
# 结果是:这是一个参数函数:a=163.0504,b=['ddd', 333, 3],c=ddd
- 为参数设置默认值
** 定义函数时可以指定形式参数的默认值
** 指定默认值的形式参数必须放在所有参数的最后,否则会参数语法错误
** param=default_value:可选,指定参数并且为该参数设置默认值default_value
** 默认值不要为列表、元组等组合,默认值一定是常量不可变
函数返回值
- – value:可选,指定要返回的值
- 当没有设置返回值时,调用函数后,返回值为None
示例:
def sum(a, b):
resl = a + b
# 函数返回值
return resl, a, b
r = sum(1, 3)
print(r) # 结果是:(4, 1, 3)
练习
# 练习: 自定义一个函数,并调用
def baby(level, name = "大话西游Ⅱ"):
''''''
list = ['飞鱼', '山贼', '强盗', '修罗', '白虎', '蜘蛛精', '猴精', '神兵', '神灵', '该转生了']
s = level -1
if s <9:
return list[s],name
else:
return list[-1],name
for i in range(1,12):
ss = baby(i)
print(ss)
'''打印结果为:
('飞鱼', '大话西游Ⅱ')
('山贼', '大话西游Ⅱ')
('强盗', '大话西游Ⅱ')
('修罗', '大话西游Ⅱ')
('白虎', '大话西游Ⅱ')
('蜘蛛精', '大话西游Ⅱ')
('猴精', '大话西游Ⅱ')
('神兵', '大话西游Ⅱ')
('神灵', '大话西游Ⅱ')
('该转生了', '大话西游Ⅱ')
('该转生了', '大话西游Ⅱ')
'''