阅读目录:

    函数

    函数的使用

    函数的分类

    函数的返回值

  ##函数  

##函数的定义-----what?----什么是函数:
# 函数:完成 特定 功能的代码块,作为一个整体,对其进行特定的命名,该名字就代表函数
# -- 现实中:很多问题要通过一些工具进行处理 => 可以将工具提前生产出来并命名
# => 通过名字就可以找到工具 => 使用工具来解决问题
## 函数的优点-----why?------为什么要用函数:
# 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 * n2
res = jump_two(10, 20)
print(res)

  ##函数的返回值

# 重点:函数名()
# 1)拿到函数地址 => 2)加()执行函数体 => 3)得到函数的执行结果 # 重点: 返回值的功能
1.结束函数;
2.将函数的内部数据返回给外部 # 二、应用场景
# 1.不明确return关键词的函数:系统在函数最末尾自动添加了return,返回的是None
def fn1():
print('普通的函数执行') res = fn1() # 一般不需要对这样的函数进行接收执行结果
print(res) # 2.明确空return关键词的函数:为了结束函数而return
def 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 num
print(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)

Python Day 10的更多相关文章

  1. 十. Python基础(10)--装饰器

    十. Python基础(10)--装饰器 1 ● 装饰器 A decorator is a function that take a function as an argument and retur ...

  2. 快速入门:十分钟学会PythonTutorial - Learn Python in 10 minutes

    This tutorial is available as a short ebook. The e-book features extra content from follow-up posts ...

  3. 『Python基础-10』字典

    # 『Python基础-10』字典 目录: 1.字典基本概念 2.字典键(key)的特性 3.字典的创建 4-7.字典的增删改查 8.遍历字典 1. 字典的基本概念 字典一种key - value 的 ...

  4. python进阶10 MySQL补充 编码、别名、视图、数据库修改

    python进阶10 MySQL补充    编码.别名.视图.数据库修改 一.编码问题 #MySQL级别编码 #修改位置: /etc/mysql/mysql.conf.d/mysqld.cnf def ...

  5. python学习10—迭代器、三元表达式与生成器

    python学习10—迭代器.三元表达式与生成器 1. 迭代器协议 定义:对象必须提供一个next方法,执行该方法或者返回迭代中的下一项,或者返回一个StopIteration异常,以终止迭代(只能往 ...

  6. Python 3.10 版本采纳了首个 PEP,中文翻译即将推出

    现在距离 Python 3.9.0 的最终版本还有 3 个月,官方公布的时间线是: 3.9.0 beta 4: Monday, 2020-06-29 3.9.0 beta 5: Monday, 202 ...

  7. Python 3.10 的首个 PEP 诞生,内置类型 zip() 迎来新特性

    译者前言:相信凡是用过 zip() 内置函数的人,都会赞同它很有用,但是,它的最大问题是可能会产生出非预期的结果.PEP-618 提出给它增加一个参数,可以有效地解决大家的痛点. 这是 Python ...

  8. Python 3.10 明年发布,看看都有哪些新特性?

    我们目前生活在Python 3.8的稳定时代,上周发布了Python的最新稳定版本3.8.4.Python 3.9已经处于其开发的beta阶段,并且2020年7月3日预发布了beta版本(3.9.0b ...

  9. Python 3.10 中新的功能和变化

    随着最后一个alpha版发布,Python 3.10 的功能更改全面敲定! 现在,正是体验Python 3.10 新功能的理想时间!正如标题所言,本文将给大家分享Python 3.10中所有重要的功能 ...

  10. Python 3.10 is coming!

    看看Python 官网的文档 whatsnew,Python 3.10 已然距离我们越来越近了,然我们看看 Python 3.10 相较于 Python 3.9 有哪些改变吧 新特性 通过括号来组织多 ...

随机推荐

  1. ---Ubuntu 16.04 server 不能关机问题解决

    https://serverfault.com/questions/712928/systemctl-commands-timeout-when-ran-as-root Failed to start ...

  2. Linux su命令

    本人以前一直习惯直接使用root,很少使用su,前几天才发现su与su -命令是有着本质区别的! 大部分Linux发行版的默认账户是普通用户,而更改系统文件或者执行某些命令,需要root身份才能进行, ...

  3. CentOS 7设置yum仅仅下载rpm不安装总结

    前言 参考文章:https://linux.cn/article-7937-1.html 在参考文章的基础上进行总结. 使用download-only插件实现 首先我们可以使用downloadonly ...

  4. ToroiseSVN和VisualSVN-server的配置使用, 外网访问SVN 版本库

    https://www.cnblogs.com/Leo_wl/p/3475167.html

  5. (ZT)算法杂货铺——k均值聚类(K-means)

    https://www.cnblogs.com/leoo2sk/category/273456.html 4.1.摘要 在前面的文章中,介绍了三种常见的分类算法.分类作为一种监督学习方法,要求必须事先 ...

  6. SQL Select 语句小数位数影响计算的准确率的问题

    在财务数据计算中,特别是分摊过程中,0.0001% 和0.00012%看似极小的差异,但是会造成最后求和很大的差异,因此,我们在计算中需要尽可能多的保留占比的小数位数 可以在SELECT CONVER ...

  7. SQL 在OPENQUERY中使用参数,并作为表查询对象/不允许使用远程表值函数调用。

    SQL 在OPENQUERY中使用参数 DECLARE @tmptable AS TABLE(ccode nvarchar(20),str1 NVARCHAR(50),str15 NVARCHAR(2 ...

  8. C#分割字符串并统计重复出现的次数

    static void Main(string[] args) { string ss = "12345678904682qwertyuioplkjhgfdsazxcvbnmmlpokuhy ...

  9. 使用WebClient调用第三方接口

    需要调用一个第三方接口,传参返回数据 本来是很简单的一个需求,搞了一天没整好 首先在POSTMAN中测试没有问题,但是使用jquery ajax在前台就会涉及到跨域 虽然设置了 无论怎么写都会报错 C ...

  10. Shiro 整合 SpringBoot

    https://blog.csdn.net/weixin_38132621/article/details/80216056