博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
函数定义,使用
阅读量:5093 次
发布时间:2019-06-13

本文共 2525 字,大约阅读时间需要 8 分钟。

一:函数

# *****# 函数:完成 特定 功能的代码块,作为一个整体,对其进行特定的命名,该名字就代表函数#    -- 现实中:很多问题要通过一些工具进行处理 => 可以将工具提前生产出来并命名# => 通过名字就可以找到工具 => 使用工具来解决问题 # 函数的优点:# 1. 避免代码的冗余# 2. 让程序代码结构更加清晰# 3. 让代码具有复用性,便于维护# 函数的四部分'''1. 函数名:使用该函数的依据2. 函数体:完成功能的代码块3. 返回值:功能完成的反馈结果4. 参数:完成功能需要的条件信息'''# 定义函数的语法:通过def关键字来定义def get_water(water, money):    print('收入你的%d元钱')    print('给你%s水种')    return '矿泉水'

 

二。函数的使用

# *****# 使用函数:# 1.根据需求定义函数# 2.通过函数名找到函数所在的位置(内存地址)# 3.函数名() 执行函数地址中存放的所有代码块#       -- 函数在定义时需要外界的参数,就要在调用时传入对应的参数# 4.函数执行完一定有返回结果,通过return关键字将结果返回给外界#       -- 外界需要知道执行结果,用变量接收,反之只执行函数(不需要接收)即可# 注:函数必须先定义,后使用# 函数的四部分都可以根据需求的变化而变化def get_water(water, money):    print('收入你的%d元钱' % money)    print('给你%s水种' % water)    return water# 需要使用函数,就调用一次res = get_water('矿泉水', 10)print(res)print('玩耍...')print('又口渴了...')# 又来需求,在调用一次,代码可以复用,函数只有一个,代码结构清晰且不冗余res = get_water('王老吉', 20)print(res)

 

三,函数的分类

# ***# 1.根据函数体分类# 空函数: pass来填充函数体的函数#        -- 优先明确函数名,暂不明确函数体(编程中就存在一些没有函数体的函数)def login(): pass  # 在开发初期,可以讲所有功能提前列出来,用pass占位着,后期再去填充功能体# 非空函数:有函数体的函数def fn2():    print('函数体')    # 2.根据函数参数分类def add():    print('功能体不需要外界的参数')    n1 = input('n1: ')    n2 = input('n2: ')    print(n1 + n2)# 有参函数def add_two(n1, n2):    print('功能体需要外界的参数')    print(n1 + n2)    # 3.根据函数返回值分类:所有的函数都有返回值# 不明确返回值def low_two(n1, n2):    # 外部不需要知道内部的执行结果    print(n1 - n2)# 明确返回值def jump_two(n1, n2):    # 外部需要知道内部的执行结果    return n1 * n2res = jump_two(10, 20)print(res)

 

四,函数的返回值

# *****# 重点:函数名()# 1)拿到函数地址 => 2)加()执行函数体 => 3)得到函数的执行结果# 重点: 返回值的功能# 1.结束函数;2.将函数的内部数据返回给外部# 二、应用场景# 1.不明确return关键词的函数:系统在函数最末尾自动添加了return,返回的是Nonedef fn1():    print('普通的函数执行')res = fn1()      # 一般不需要对这样的函数进行接收执行结果print(res)# 2.明确空return关键词的函数:为了结束函数而returndef print_msg():    while True:        msg = input("msg: ")        if msg == 'q':            # break            return      # 在特定的位置需要直接结束函数,但不需要告诉外界某个结果,用空return处理        print(msg)    print(msg)        # 在break下可以被执行,在return下不能被执行res = print_msg()print(res)# 3.有明确的返回值需求的函数:#       -- python中的函数本质上只能返回一个值,#               -- 值跟在return关键词后#               -- 可以通过语法上返回多个值,值之间用逗号隔开,但是本质上返回装有多个值的元组# 一个值def get_num():    num = input('num: ')    return numprint(get_num())# 多个值def get_two_num():    n1 = input('n1: ')    n2 = input('n2: ')    return n1, n2    # return (n1, n2)# print(get_two_num())num1, num2 = get_two_num()  # python的return支持多值返回的语法原因是python中有解压赋值print(num1, num2)# 总结:# 当用一个值接收函数的返回值,一定没有问题#       -- 函数返回一个接收一个;函数返回多个,接收装有多个值得元组# 当用多个值接收函数的返回值,采用的是解压赋值的机制,返回值的个数一定要与接收值得个数相同

 

转载于:https://www.cnblogs.com/HZLS/p/10765257.html

你可能感兴趣的文章
阿里云服务器CentOS6.9安装Mysql
查看>>
剑指offer系列6:数值的整数次方
查看>>
js 过滤敏感词
查看>>
poj2752 Seek the Name, Seek the Fame
查看>>
软件开发和软件测试,我该如何选择?(蜗牛学院)
查看>>
基本封装方法
查看>>
bcb ole拖拽功能的实现
查看>>
生活大爆炸之何为光速
查看>>
bzoj 2456: mode【瞎搞】
查看>>
[Typescript] Specify Exact Values with TypeScript’s Literal Types
查看>>
[GraphQL] Reuse Query Fields with GraphQL Fragments
查看>>
Illustrated C#学习笔记(一)
查看>>
理解oracle中连接和会话
查看>>
两种最常用的Sticky footer布局方式
查看>>
Scrapy实战篇(三)之爬取豆瓣电影短评
查看>>
HDU 5510 Bazinga KMP
查看>>
[13年迁移]Firefox下margin-top问题
查看>>
Zookeeper常用命令 (转)
查看>>
Enterprise Library - Data Access Application Block 6.0.1304
查看>>
重构代码 —— 函数即变量(Replace temp with Query)
查看>>