今日内容概要
  • 函数的相关性质
  • 函数返回值
  • 函数的参数
  • 使用注册登录代码变为函数
  • 常见内置函数
内置函数为程序自带的函数,使开发者提前写好可以直接使用的

函数的相关性质

# 1.定义与调用
定义函数使用关键字def
调用函数的使用方法:
        函数名+(参数名)
参数名可以有也可以没有,需要调用外界函数时时可以使用

# 2.定义阶段
函数在定义阶段只能检查代码语法,但是不检查代码可执行性

# 3.调用函数
    函数名+()才会执行函数的代码体

函数返回值

返回值的性质?
    当函数执行结束时,会返回一个值
如何获得返回值?
    变量名 = 方法/函数()

当函数没有可执行代码,函数为空
eg:
def index():
    pass
print(index())  # 输出为None

return+数据,该数据就是函数返回的类型
eg:
def index():
    return 2
print(index())  # 输出为2

return返回多个数字,会以元组形式返回
eg:
def index():
    return 2,3,4,56,7
print(index())  # 输出为(2,3,4,56,7)

函数中的代码遇到return立即结束整个函数运行
eg:
def index():
    return 2,3,4,56,7
    print('haha')    
print(index())  # 输出 (2, 3, 4, 56, 7)

函数的类型

1.无参函数
函数在定义阶段没有参数调用阶段也不需要参数
eg:
def index():
    print'hello')
index()  # 输出为hello

2.有参函数数
函数在定义阶段有参数,调用阶段需要参数
eg:
def index(a,b):
    print(a+2print(b+‘来吃饭’)
index(1,‘小敏’) # 输出3和小明来吃饭 

3.空函数
没有代码
eg:
def index():
    pass
print(index)  # 输出为None

函数的参数

由函数定义的参数且能运用到括号内书写的参数成为形式参数
    简称为形参
        
函数在调用时在括号内书写的函数为实际参数
    简称为实参

形参和实参在函数调用时绑定,运行结束后分开
def index(name):
        print(name)
index('jason'# 输出为jason

1.位置参数
按照位置把数据输入,多一少一都不行
eg:
def index(b,a)
    print(b,a)
index()  # 错误
index(1)  # 错误
index(1,2)  # 输出1 2
index(1,2,3)  # 错误

2.关键字参数
指名道姓的给形参专职  可以打破位置限制
eg:
index(a=1,b=2)  # 输出2 1
index(1,a=3)  #输出1 3
index(1,b=3)  #错误,位置被交换了
index(b=3,1)  #错误位置参数必须在前,短的必须在长的前面

3.默认参数:函数在定义阶段给形参赋的值
eg:
def register(name,age,gender='male'):
    print(name,age,gender)
register('jason',18)  # 输出jason 18 male
register('kitty',23,female)  # 输出为kitty 23 female

4.可变长参数
使用*+形参,函数就可以接受多个数据的位置参数,输出结果为元组
eg:
def index(a,*b):
    print(a+2,b)
index(1,1,23,4,5,5)  # 输出为3 (1, 23, 4, 5, 5)
index(1)  # 输出1 ()

使用**+形参,函数就可以接受多个关键字参数,输出结果为字典
def index(a,**b):
    print(a+2,b)
index(1,b=1,n=3)  #输出为 3 {'b': 1, 'n': 3}

练习
#定义一个函数,该函数无论接收多少个位置参数还是关键字参数都可以正常运行
def index(*a,**b):
    print(a,b)
index(1,234,545,a=1,b=1,n=3)  # 输出为(1, 234, 545) {'a': 1, 'b': 1, 'n': 3}

'''
在可变长函数中的形参的变量名推荐为
    *args **kwargs
def 变量名(*args,**kwargs):
    pass
'''

*与**在实参中的作用

l=[12,3123,2,43,5]
d={'use':'jj','pwd':123}
def ind(*a,**k):
    print(a,k)
'''
将列表或元组的数据,一元组性质输出
'''
ind(*l)  # 输出 (12, 3123, 2, 43, 5) {}
'''
接受键值对,将字典输出
'''
ind(**d)  # 输出() {'use': 'jj', 'pwd': 123}

封装代码的精髓

'''
将代码封装成函数数版    
    1.先写def和函数
    2.将代码缩进
    3.查看内部需要哪些数据
    4.定义形参
    5.一个函数有个功能
'''

内置函数

abs(-111)  # 取反数 111
all([1,23,0])  # 有元素布尔值为False,就输出False
any([1,0,4,5])# 有元素布尔值为True,就输出True
callable()  # 判断元素变量是否可以有实际功能,没有输出False
eg:
a='1'
def i():
    pass
callable(a)  # 输出 False
callable(i)  # 输出 True
chr(65)  # 返回ASCII码中数字对应字母
'''
65-90 对应小写字母
97-122 对应大写字母 
'''
format
print('name:{},age:{}'.format('jj',18)  # 输出name:jj,age:18
print('name:{1}{0}{1},age:{0}{1}'.format('jj',18))
'''
输出为 name:18jj18,age:jj18
'''