python基础之Day10
一、函数的返回值
1、什么是返回值
返回值是一个函数的处理结果,
2、为什么要有返回值
如果我们需要在程序中拿到函数的处理结果做进一步的处理,则需要函数必须有返回值
3、函数的返回值的应用
函数的返回值用return去定义
格式为:
return 值
注意:
1、return是一个函数结束的标志,函数内可以有多个return,
但只要执行一次,整个函数就会结束运行
2、return 的返回值无类型限制,即可以是任意数据类型
3、return 的返回值无个数限制,即可以用逗号分隔开多个任意类型的值
0个:返回None,ps:不写return默认会在函数的最后一行添加return None
1个:返回的值就是该值本身
多个:返回值是元组
二、函数调用
1 什么是调用函数
函数名(...)即调用函数,会执行函数体代码,直到碰到return结束或者一直运行完毕所有代码
2 为何要调用函数
用函数的功能
3、函数调用分为三种形式
max2(1,2)
res=max2(3000,2000) * 12
res=max2(max2(1000,2000),3000)
三、函数参数分类
总的分类:
1、形参:在函数定义阶段括号内定义的参数,称之为形式参数,简称形参,本质就是变量名
def foo(x,y): #x=1,y=2
print(x)
print(y)
2、实参:在函数调用阶段括号内传入的值,称之为实际参数,简称实参,本质就是变量的值
foo(1,2)
详细的分类:
#一、位置参数:
位置形参:在函数定义阶段,按照从左到右的顺序依次定义的形参,称之为位置形参
特点:但凡是按照位置定义的形参,都必须被传值,多一个不行,少一个也不行
def foo(x,y):
print('x:',x)
print('y:',y)
位置实参:在函数调用阶段,按照从左到右的顺序依次定义的实参,称之为位置实参
特点:按照位置为对应的形参依次传值
foo(1,2)
foo(2,1)
二、关键字实参:在调用函数时,按照key=value的形式为指定的参数传值,称为关键字实参
特点:可以打破位置的限制,但仍能为指定的形参赋值
foo(y=2,x=1)
注意:
1、可以混用位置实参与关键字实参,但位置实参必须放在关键字实参的前面
foo(1,y=2)
foo(y=2,1) #SyntaxError: positional argument follows keyword argument
2、可以混用,但不能对一个形参重复赋值
foo(1,y=2,x=10)
三:默认参数:在函数定义阶段,就已经为形参赋值,该形参称为默认形参
#特点:在定义阶段就已经被赋值,意味着在调用可以不用为其赋值
# 注意:
#1、位置形参必须放到默认形参的前面,否则报语法错误
#2、默认参数的值只在定义阶段赋值一次,即默认参数的值在函数定义阶段就已经固定死了
#3、默认参数的值通常应该定义不可变类型
#总结:
#实参的应用:取决于个人习惯,
#形参的应用:
#1、位置形参:大多数情况下的调用值都不一样,就应该将该参数定义成位置形参
#2、默认形参:大多数情况下的调用值都一样,就应该将该参数定义成默认形参
四:可变长参数:指的是在调用函数时,传入的参数个数可以不固定
#而调用函数时,传值的方式无非两种,一种位置实参,另一种时关键字实参
#所以对应着,形参也必须有两种解决方案,来分别接收溢出的位置实参(*)与关键字实参(**)
#1、形参中某个参数带*
#形参中的*会将溢出的位置实参全部接收,然后存储元组的形式,然后把元组赋值给*后的变量名
# 2、实参中的参数也可以带*
# 实参中带*,*会将该参数的值循环取出,打散成位置实参
#ps:以后但凡碰到实参中带*的,它就是位置实参,应该立马打散成位置实参去看
#注意:约定俗成形参中的*变量名的写法都是:*args
#1、形参中某个参数带**
#形参中的**会将溢出的关键字实参全部接收,然后存储字典的形式,然后把字典赋值给**后的变量名
2、实参中的参数也可以带**,该参数必须是字典
# 实参中带**,**会将该参数的值循环取出,打散成关键字实参
#ps:以后但凡碰到实参中带**的,它就是关键字实参,应该立马打散成关键字实参去看
#注意:约定俗成形参中的**变量名的写法都是:**kwargs
#五 命名关键字形参:在函数定义阶段,*后面的参数都是命名关键字参数(**)
# 特点:在传值时,必须按照key=value的传,并且key必须命名关键字参数指定的参数名
python基础之Day10的更多相关文章
- python基础学习Day10 函数形参的动态参数、*args **kwargs 命名空间 global 与 nonlocal
一.函数形参的动态参数 原因:为了拓展,对于实参数量不固定,故需要万能参数,即动态参数, *args **kwargs # def sum1(*args): # 在函数定义时,在*位置参数,聚合. ...
- python 基础知识-day10(面向对象)
1.面向对象的概念 拥有共同属性的一类进行归类的过程叫做面向对象. 2.注意事项 class定义类的时候,类名的首字母必须大写 3.面向对象案例 1 class Person(object): 2 d ...
- python基础一 day10(2)
复习: # 三元运算符# 接收结果的变量 = 条件为真的结果 if 条件 else 条件为假的结果# 接收结果的变量 = “真结果” if 条件 else “假结果”## 命名空间 和 作用域# 三种 ...
- python基础一 day10(1)
要背的:
- python之最强王者(2)——python基础语法
背景介绍:由于本人一直做java开发,也是从txt开始写hello,world,使用javac命令编译,一直到使用myeclipse,其中的道理和辛酸都懂(请容许我擦干眼角的泪水),所以对于pytho ...
- Python开发【第二篇】:Python基础知识
Python基础知识 一.初识基本数据类型 类型: int(整型) 在32位机器上,整数的位数为32位,取值范围为-2**31-2**31-1,即-2147483648-2147483647 在64位 ...
- Python小白的发展之路之Python基础(一)
Python基础部分1: 1.Python简介 2.Python 2 or 3,两者的主要区别 3.Python解释器 4.安装Python 5.第一个Python程序 Hello World 6.P ...
- Python之路3【第一篇】Python基础
本节内容 Python简介 Python安装 第一个Python程序 编程语言的分类 Python简介 1.Python的由来 python的创始人为吉多·范罗苏姆(Guido van Rossum) ...
- 进击的Python【第三章】:Python基础(三)
Python基础(三) 本章内容 集合的概念与操作 文件的操作 函数的特点与用法 参数与局部变量 return返回值的概念 递归的基本含义 函数式编程介绍 高阶函数的概念 一.集合的概念与操作 集合( ...
随机推荐
- sso cas4.0改造历程--spring-webflow篇
https://blog.csdn.net/sinat_20689109/article/details/54910642
- 斐讯自动下单抢购V1.3.4【自动验证码识别】
20180530 更新 V1.3.41.增加有货下单:替代定时下单 20180519 更新 V1.3.31.增加订单满减优惠:支付宝每单立减5元2.修改商城域名及下单速度 功能介绍1.斐讯商城抢购专用 ...
- x86 asm调用框架(vs2015)
EXTERN_C void _stdcall Asm_1();//在cpp文件下 要使用EXTERN_C . .MODEL FLAT,C,stdcall .DATA .CODE Asm_1 PROC ...
- 一个简单的gridlayout栗子
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- !!学习笔记:CSS3动画
一句话就有css3动画: 2016-6-29 <style type="text/css"> h1{background:#999;} h1:hover{border- ...
- BBS(第一天)项目之 注册功能实现通过forms验证与 前端ajax请求触发查询数据库判断用户是否存在的功能实现
1.BBS项目之注册功能通过forms验证 from django import forms from blog.models import User from django.contrib.auth ...
- Elasticsearch 整合spring(不是sprig boot)
公司做统计任务,有使用Es做聚合操作,使用的是自己封装的版本,这边整合下原生spring,做下学习记录,随便看一下,发现差不多都是spring boot的案例...我该怎么办,...发现整合的过程其实 ...
- 【FZSZ2017暑假提高组Day1】华容道游戏
[问题描述] 华容道是一种有趣的滑块游戏,大概是下面这个样子的. 游戏局面由一个2*2的曹操滑块,五个2*1的蜀将滑块(横竖是不定的).四个1*1的小兵滑块以及两个空的位置构成,玩家需要利用空的位子移 ...
- sendmail报错Relaying denied
配置好sendmail后,使用php的mail()发送邮件,出现 SMTP server response: 550 5.7.1 Relaying denied. IP name lookup fai ...
- K8s之Etcd
Etcd是一个开源的.高可用的.分布式的键值对数据存储系统,提供共享配置.服务的注册和发现.etcd与zookeeper相比算是轻量级系统,两者的一致性协议也一样,etcd的raft比zookeepe ...