Python_函数的初识、函数的返回值、函数的参数

函数

函数的初识

格式

  def func_name(*args, **kwargs):  

    函数体

  完整函数格式如上,其中 def为声明,不可改变,必须这样写;def 与函数名之间使用一个空格隔开,函数名的命名规则与变量的命名规则相同;函数名后边紧接着是括号,括号里边设置一些参数,也可以不设定;括号后边紧接着是因为格式的冒号。下边一行是函数体的内容,函数体必须缩进于函数名一个tab的长度(两个或者四个空格的距离),所有的缩进的长度必须一致。

执行

  执行函数使用 函数名() 的格式,以上变的函数为例,使用func_name()进行函数的调用。

函数是以功能为导向的。

 

def login():
    pass

 

def register():
    pass

 

1 def my_len():
2     l1 = [1, 2, 3, 1, 6, 9, 10]
3     count = 0
4     for i in l1:
5         count += 1

6 my_len()

  

函数的返回值

   函数使用return将值返回出来,但是再执行return以后,函数就执行结束了,不管后边有没有代码都不再执行。

函数中遇到 return 结束函数,后面代码不执行。

def login():
    print(111)
    print(222)
    return
    print(333)

login()

 

  从上边的执行结果就可以看出,return 后一行的 print(333) 没有执行。

将函数里面的值返回给函数的执行者(调用者)

  第一种情况:

    当只有return且其后边没有跟任何内容时,则默认返回值为None。

def login():
    a = 2
    b = 3
    print(111)
    print(a, b)
    return

print(login())

 

  第二种情况:

    return None

    当return None时,其返回值也为None,与第一种情况是一样的。

  第三种情况:

    return 单个值(返回的值与单个值的类型相同)

def login():
    a = 2
    b = 3
    return a

print(login(), type(login()))

 

 

def login():
    a = 2
    b = 3
    return [1, 2]

print(login(), type(login()))

 

 

def login():
    a = 2
    b = 3
    return [1, 2]

ret = login() a, b = ret print(a, b)

 

  第四种情况:

    return 多个值(以元组的形式返回给函数的调用者)

def login():
    a = 2
    b = 3
    return 1, 'alex', [1, 2], {'name': '老男孩'}

ret = login() print(ret)

 

 

def my_len():
    l1 = [1, 2, 3, 1, 6, 9, 100]
    count = 0
    for i in l1:
        count += 1
    return count

print(my_len())

 

什么是None

  所有空集合、空列表、空字典、空字符串等等都为None。

函数的参数

实参角度

位置参数

  一一对应,形参实参数量相等

def my_len(a):  # a 形式参数,形参
    count = 0
    for i in a:
        count += 1
    return count

l1 = [1, 2, 3, 1, 6, 9, 100] print(my_len(l1)) # 实参

 

 

def my_len(a):  # a 形式参数,形参
    count = 0
    for i in a:
        count += 1
    return count

l1 = [1, 2, 3, 1, 6, 9, 100] my_len(l1) # 实际参数,实参

ret = my_len(l1)
print(ret) 
print(my_len(l1))

 

 

def my_len(a):  # a 形式参数,形参
    count = 0
    for i in a:
        count += 1
    return count

s1 = 'fhdsjfdsfsadfgsd' my_len(s1) ret = my_len(s1) print(ret) print(my_len(s1)) # 实际参数,实参

 

 

def tes(a, b, c):
    print(111)
    print(a, b, c)

tes(22, 'alex', [11, 22, 33])

 

关键字参数

  一一对应,实参形参数量相等,实参顺序可变。

def func(x, y):  # 形式参数
    print(x, y)

func(y=3333, x=4) # 关键字参数

 

混合参数

  关键字参数必须在位置参数的后边。

def func(x, y, z):
    print(x, y, z)

func(111, 222, z=555)  # 混合传参 位置参数必须在前边

 

   如果关键字参数没有在位置参数的后边时,则会报错。

def func(x, y, z):
    print(x, y, z)

func(111, z=555, 222)

 

形参角度

位置参数

  一一对应,形参实参数量相等,并且是按照位置进行传参。

def func2(y, x):  # 形式参数
    print(x, y)

func2(1, 2)

 

默认字参数

  默认参数必须在形参的位置参数后面。

  默认参数不传值则为默认值,传值则覆盖默认值。

def func2(y, x, z= 1000):
    print(x, y, z)

func2(1, 2, 3000)

 

 

def input_information(name, sex='男'):
    with open('information', encoding='utf-8', mode='a') as f1:
        f1.write('{}\t{}\n'.format(name,sex))


while True:
    msg = input('请输入用户的姓名,性别\Q或者q退出').strip()
    if msg.upper() == 'Q':
        break
    if ',' in msg:
        name1, sex1 = msg.split(',')
        input_information(name1, sex1)
    else:
        input_information(msg)

 

 

posted @ 2018-09-04 19:16  AKA绒滑服贵  阅读(205)  评论(0编辑  收藏  举报