day3_python之函数参数
一、形参
在定义函数时,括号内的参数称为形参,特点:形参就是变量名
def foo(x, y): # x=1,y=2
print(x)
print(y)
二、实参
在调用函数时,括号内的参数成为实参,特点:实参就是变量值
在调用阶段实参(变量值)才会绑定形参(变量名),调用结束后,解除绑定
foo(1,2)
三、参数的分类
1、位置参数
按照从左到右的顺序依次定义的参数
位置形参:必须被传值,并且多一个不行,少一个也不行
位置实参:与形参按照位置一一对应
def foo(x, y):
print(x)
print(y) foo(1, 2)
2、关键字实参
指的是按照name=value的形式,指名道姓地给name传值
def xie(name, age):
print(name)
print(age)
xie(name='xiechao', age=18)
3、位置实参与关键字实参混合用要注意的问题
#####关键字实参需要注意的问题是:
def foo(name, age, sex):
print(name)
print(age)
print(sex) foo('egon', 18, 'male')
print('======>')
foo(sex='male', age=18, name='egon')
foo('egon', sex='male', age=18) ####问题一:语法规定位置实参必须在关键字实参的前面
foo('egon', sex='male', age=18) ####问题二:一定不要对同一个形参传多次值
foo('egon', sex='male', age=18, name='egon1') foo('male', age=18, name='egon1')
4、默认形参
在定义阶段,就已经为形参赋值,意味在调用阶段可以不用传值,如果传值的话,就覆盖定义阶段的值
def foo(x,y=1111111):
print(x)
print(y) foo(1,'a') def register(name,age,sex='male'):
print(name,age,sex) register('asb',73)
register('wsb',38)
register('ysb',84)
register('yaya',28,'female')
5、默认参数需要注意的问题
5.1、问题一:默认参数必须放在位置参数之后
def foo(y=1,x):#报错SyntaxError: non-default argument follows default argument
print(x,y)
5.2、问题二:默认参数只在定义阶段赋值一次,而且仅一次
x = 100 def foo(a, b=x): #=100
print(a, b) x=111111111111111111111111111111 #再赋值没有用
foo('egon')
5.3、问题三:默认参数的值应该定义成不可变类型
day3_python之函数参数的更多相关文章
- Delphi_08_Delphi_Object_Pascal_基本语法_06_函数参数
发现Delphi中关于函数参数部分的内容还是比较多的,暂时说到这篇随笔为止吧,以后再继续讨论一下函数的参数部分的内容. 一 工程文件 program DefaultParameter; {$APPTY ...
- 深入理解javascript函数参数与闭包(一)
在看此文章,希望先阅读关于函数基础内容 函数定义与函数作用域 的章节,因为这篇文章或多或少会涉及函数基础的内容,而基础内容,我放在函数定义函数作用域 章节. 本文直接赘述函数参数与闭包,若涉及相关知识 ...
- php与js中函数参数的默认值设置
php函数参数默认值设置: <?phpfunction test($val=3){ echo $val."<br/>";}test(11);test();?& ...
- JS中的函数(二):函数参数(你可能不知道的参数传递)
前言: 函数分为有参有返回值,有参无返回值,无参无返回值,无参有返回值:那么对于无参数的函数你想使用函数的调用怎么办呢?如果你想封装一个代码,实现多种功能,但是形参大于实参或者实参大于形参又该如何?本 ...
- Python函数参数学习笔记
1.Python中函数参数类型可分为五种: f(x):x为位置参数: f(x,n=2):n为默认参数,调用时可以省略参数n,如f(5); f(*args):*args表示把args这个list或tup ...
- C语言指针变量作为函数参数
0x01 指针变量作为函数参数的作用是:将一个变量的地址传送到另一个函数中. 0x02 简单的例子:虽然都能实现功能,但意义不同. 正确的写法: #include <stdio.h> vo ...
- 深入理解javascript函数系列第二篇——函数参数
× 目录 [1]arguments [2]内部属性 [3]函数重载[4]参数传递 前面的话 javascript函数的参数与大多数其他语言的函数的参数有所不同.函数不介意传递进来多少个参数,也不在乎传 ...
- Python函数参数默认值的陷阱和原理深究"
本文将介绍使用mutable对象作为Python函数参数默认值潜在的危害,以及其实现原理和设计目的 本博客已经迁移至: http://cenalulu.github.io/ 本篇博文已经迁移,阅读全文 ...
- 速战速决 (3) - PHP: 函数基础, 函数参数, 函数返回值, 可变函数, 匿名函数, 闭包函数, 回调函数
[源码下载] 速战速决 (3) - PHP: 函数基础, 函数参数, 函数返回值, 可变函数, 匿名函数, 闭包函数, 回调函数 作者:webabcd 介绍速战速决 之 PHP 函数基础 函数参数 函 ...
随机推荐
- postman发送get和post请求
一.postman发送get请求 在地址栏里输入请求url(用到拼接方式):http://127.0.0.1:8081/getuser?userid=1 选择“GET”方式, 点击“send”得到 ...
- Python之路,Day3- Python基础(转载Alex)
本节内容 1. 函数基本语法及特性 2. 参数与局部变量 3. 返回值 嵌套函数 4.递归 5.匿名函数 6.函数式编程介绍 7.高阶函数 8.内置函数 温故知新 1. 集合 主要作用: 去重 关系测 ...
- MySQL--python关联MySQL、练习题
1.python关联MySQL pymysql: 安装:pip3 install pymysql 1.0:连接到数据库中 import pymysql conn = pymysql.connect( ...
- python 常见分布的产生方式
- linux应用系统日志
在一个典型的LAMP(Linux+Apache+Mysql+Perl)应用环境里: Apache & Nginx; 查找访问和错误日志, 直接找 5xx 错误, 再看看是否有 limit_zo ...
- Vue2.0史上最全入坑教程(中)—— 脚手架代码详解
书接上文我们说道,如何利用脚手架(vue-cli)构建一个vue项目,本回书我们一起来学习分析下代码. 回顾下创建后的项目目录: 说明:在*.vue文件,template标签里写html代码,且t ...
- 模拟19 题解(waiting)
T1,千万别转化成链了!! 直接数就可以,dfs搜索每种情况,对于搜到的点,如果子树大小过大,直接return,相等说明可以,小的话向上累加, 优化是先预处理子树大小,若子树小,不用搜了直接加上就行 ...
- 第十章—DOM(一)——Document类型
DOCUMENT类型 JS通过document类型表示文档,在文档中document对象是HTMLDocument的一个实例,表示整个HTML页面.document对象是window对象的一个属性,因 ...
- 确定比赛名次 HDU - 1285 (拓扑排序)
注意点: 输入数据中可能有重复,需要进行处理! #include <stdio.h> #include <iostream> #include <cstring> ...
- 机器学习之Adaboost算法原理
转自:http://www.cnblogs.com/pinard/p/6133937.html 在集成学习原理小结中,我们讲到了集成学习按照个体学习器之间是否存在依赖关系可以分为两类,第一个是个体学习 ...