函数基础之定义,三种形式,返回值

函数基础

函数的定义

函数是一种思想。

在程序中,函数就是具备某一功能的功能,事先讲工具准备好就是函数的定义,遇到场景拿来就用就是函数的调用。

为何用函数

我们如果过不使用函数的话,写程序时将会遇到三个问题:

1.程序冗长

2.程序的扩展性差

3.程序的可读性差

如何使用函数

定义函数

先定义函数,后调用:

  • 定义函数
def 函数名(param1,param2....):
    """
    函数功能的描述信息
    :param1 描述
    :param2 描述
    :return  返回值
    code1
    code2
    code3
    """
    
    return   返回值
  • 调用函数

    函数名(param1、param2...)
    

注册功能

def register():
    # 注册功能
    username = input('username').strip()
    pwd = input('password').strip()
    
    with open('38a.txt','a',encoding='utf8') as fa:
        fa.write(f"{username}:{pwd}\n")
        fa.flush()
        
register()
# 复用
register()
register()

登录功能

def login():
    inp_username = input('username:').strip()
    inp_pwd = input('password:').strip()
    
    with open('38.txt','rt',encoding='utf8') as fr:
        for user_info in fr:
            user_info = user_info.strip('\n')
            user_info_list = user_info.split(':')
            if inp_username == user_info_list[0] and inp_pwd == user_info_list[1]:
                print('login succesdful')
                break
        
        else:
            print('failed')

login()

函数定义阶段

def func():
	bar()    # 不属于语法错误,不会报错
	print('*'*10)

只检测语法,不执行函数体代码

函数调用阶段

def bar():
    print('from bar')

def foo():
    print('from foo')
    bar()

foo()

from foo
from bar

def foo():
	print('from foo')
    bar()
    
def bar():
    print('from bar')

foo()

from foo
from bar

定义函数的三种形式

无参函数

定义函数时参数是函数体接受外部值的一种媒介,其实就是一个变量名

在函数阶段括号内没有参数,称为无参函数。需要注意的是:定义时午餐,意味着调用时也无需传入参数。

如果函数体代码逻辑不需要依赖外部传入的值,必须得定义无参函数。

def func():
    print('hello world')

func()   # hello world

有参函数

在函数定义阶段括号内有参数,称为有参函数。需要注意的是:定义时有参,以为着调用时也必须传入参数。

如果函数体代码逻辑需要依赖外部传入的值,必须得定义有参函数。

def sum_self (x,y):
    res = x + y
    print(res)  # 3
    sum_self(1,2)

空函数

当你只知道你需要实现某个功能,但还不知道该如何用代码实现时,就可以暂时写个空函数,然后先实现其他的功能。

def func():
    pass

函数的返回值

什么是返回值

函数内部代码经过一些逻辑处理获得的结果。

def func(): 
    name = 'shiqi' 
    return name
name = func()
print(name)

shiqi

为什么要有返回值

  • return是一个函数结束的标志,函数内可以有多个return,只要执行到return,函数就会执行。

  • return的返回值可以返回任意数据类型

  • return的返回值无个数限制,即可以使用使用逗号隔开返回多个值。

    ​ 0个:返回None

    ​ 1个:返回值是该值本身

    ​ 多个:返回值是元组

    def max_self(salary_x,salary_y):
        if salary_x > salary_y:
            return salary_x
        else:
            return salary_y
    
    max_salary = max_self(20000,30000)
    print(max_salary*12)
    

    360000

    返回多个值:
    def func():
        name = 'shiqi'
        age = 17
        hobby_list = ['sing','junm','rap','basketball']
        return name,age,hobby_list
    
    name,age,hobby_list = func()
    print(f"i am {name},my age is{age},i like {hobby_list}")
    

    i am shiqi,my age is17,i like ['sing', 'junm', 'rap', 'basketball']

posted on 2019-09-12 20:26  十七zz  阅读(509)  评论(0编辑  收藏  举报