初识函数

函数定义:给代码段命名,实现一项具体的功能
他们给代码段命名,就跟变量给字符串或数字命名一样;
他们可以接受参数,就跟你的脚本接收argv一样
可以创建脚本和命令
函数的基本结构:
def 函数名(): def定义函数关键字,函数名必须符合定义变量规则;括号中可以放参数或为空;必修以冒号分开与函数体
函数说明
函数体

函数的优点:
1.减少代码的重复率
2.增强代码的阅读性
函数最主要的目的:封装一个功能。

函数的返回值rutern
1.在函数体中遇到return则结束执行函数,在函数体return下面的内容将不执行。
2.return给函数执行者返回值

return中返回值的几种方式:
1.返回为None
1 def my_sum ():
2     a= 1
3     b =2
4     c =a+b
5     return
6 print(my_sum())       # 整体是函数的执行者。
2.返回单个元素值     原样返回
1 def my_sum ():
2     a= 1
3     b =2
4     c =a+b
5     return c
6 print(my_sum())
3.返回多个元素值     返回一个有元素组成的元祖
def my_sum ():
    a= 1
    b =2
    c =a+b
    return a,b,c
print(my_sum())
工作中,函数中尽量不要出现print
函数的传参:
实参(函数执行者括号中的参数)
位置参数 按照顺序,一一对应
关键字参数 可以不按照顺序,但是必须一一对应
混合参数 关键字参数一定要在位置参数后面
形参(函数定义中括号的参数)
位置参数 按照顺序,一一对应
默认参数

实参
位置参数 按照顺序,一一对应
1 def sum (x,y):
2     c = x+y
3     return c
4 print(sum(18,56))
关键字参数,可以不按顺序,但是必须一一对应
1 def sum (x,y):
2     sum1= x+y
3     return sum1,x,y
4 print(sum(y=88,x=12))
三元运算:只针对于简单的if else 这样的结构,才可以使用。
比较两个数的大小
1 def big (x,y):
2     return x if x>y else y
3 print(big(45,78))
混合传参: 关键字参数一定要在位置参数后面
1 def hun (a,b,c,d,e,f):
2     return a,b,c,d,e,f
3 print(hun(1,2,3,4,e=7,f=8))
4 
5 def hun (a,b,c,d,e,f):
6     return a,b,c,d,e,f
7 print(hun(e=7,f=8,1,2,3,4))     #会报错SyntaxError: positional argument follows keyword argument
形参角度
位置参数 按照顺序,一一对应
默认参数:给其传值,将原默认参数覆盖掉,不传值,不报错,使用默认值
应用场景:不经常改变的参数,但是一直在用。
位置参数
1 def func(x,y,z):
2     print(x,y,z)
3 func(1,2,3)
默认参数
1 def func(x,y=''):
2     return x,y
3 print(func('林树辉'))  #这里可以只传递一个参数,另一个使用默认参数
常见错误
在形参中默认参数若果是一个可变数据类型(list,dic)时,默认的参数会随着内容的增加而发生变化
默认参数若是可变的数据类型,他始终使用的是一个

1 def func (x= [],y=[]):
2     y.append(x)
3     return x,y
4 print(func(['a'],['b']))
5 print(func(['d'],['c']))
定义一个函数
函数的功能为录入人员信息,并将内容写入文件
 1 def input_list(name,age="18"):
 2     with open('info.txt','a',encoding='gbk') as f:
 3         f.write("{}|{}".format(name,age))
 4 while 1:
 5     name = input('输入姓名:').strip()
 6     age = input('输入年龄').strip()
 7     if name.upper() == "Q" or age=='Q':
 8         break
 9     if  not age:
10         input_list(name,age)
11     else:
12         input_list(name)
函数的功能为录入人员信息,并将内容写入文件
 1 def namelist(n1,s1=''):
 2     with open('namelist',encoding='utf-8',mode='a') as f1:
 3         f1.write('{}|{}
'.format(n1,s1))
 4 
 5 while 1:
 6     name,sex = input('请输入姓名,性别:以 ,隔开').strip().replace('',',').split(',')
 7     if name.upper() == 'Q':break
 8     if sex.strip():
 9         namelist(name,sex)
10     else:
11         namelist(name)
原文地址:https://www.cnblogs.com/qilin610/p/9514820.html