python3 函数的形参、实参、位置参数、默认参数、关键字参数以及函数的递归
python 版本 3.5
#Author by Andy
#_*_ coding:utf-8 _*_
def func(x,y=2):
print('我是形参%s'%x)
print('我是默认参y--->%s'%y)
func(1)
#1是实参,x为形参,y为默认参数
#若实参数目不固定
def func1(*args):
print(args)
func1([1,2.3,4,5])
#([1, 2.3, 4, 5],)
func1(*[1,2,3,4,5])
#(1, 2, 3, 4, 5)
#实参为字典 **kwargs把N个关键字参数转化为字典输出
def func2(**kwargs):
print(kwargs)
print(kwargs['name'])
print(kwargs['age'])
print(kwargs['salary'])
func2(name='Andy',age=20,salary=10000,job='doctor') def func3(name,age=20,**kwargs):
print(name)
print(age)
print(kwargs)
func3('Andy')
#Andy
#{}
#默认参数赋值方式:1、位置参数赋值 2、关键字赋值
func3('Andy',salary=10000,age=21)
func3('Andy',21,salary=10000)
#*args接受N个位置参数,转化成元组;
#**kwargs接收N个关键字参数,转为字典
#位置参数必须放在关键字参数前面 # def func4(name,age=20,*args,**kwargs):
# print(name)
# print(age)
# print(args)
# print(kwargs)
# logger('test')
# func4('Andy',21,32,salary=10000,job='doctor')
# def logger(source):
# print('from %s'%source)
#局部变量(只在函数体内作用的变量)
def changename(name):
print('before change',name)
name='John'
age=23
print('after change',name)
name='Andy'
changename(name)
print(name)
# before change Andy
# after change John
# Andy
#全局变量(整个程序都可以用的变量,定义在函数体外)若修改全局变量,需在函数体内用global 重新定义变量 ***函数体内不要修改
# 全局变量,且函数体内不要定义全局变量
def func5():
global name
name='andy'
print(name)
func5()
print(name)
#全局变量(整个程序都可以用的变量,定义在函数体外)若修改全局变量,需在函数体内用global 重新定义变量 ***函数体内不要修改
# 全局变量,且函数体内不要定义全局变量
#列表、字典、集合、类作为全局变量时,函数体内可以修改
#字符串、数字作为全局变量时,函数体内无法修改
#函数的递归
def calc(n):
print(n)
if int(n/2) >0:
return calc(int(n/2))
print(n)
calc(10)
python3 函数的形参、实参、位置参数、默认参数、关键字参数以及函数的递归的更多相关文章
- 第十一篇 Python函数之定义&形参&实参&位置参数&关键字参数&可变长参数&默认参数
函数的定义:函数是为了完成某一特定功能的,函数是逻辑结构化和过程化的一种编程方法 函数的定义格式,函数一般都是有返回值的 #语法 #函数名要能反映其意义 def 函数名(参数1,参数2,参数3,... ...
- day11函数(形参实参)
形参与实参 def fn(形参们): pass # 形参:定义函数,在括号内声明的变量名,用来结束外界传来的值# 实参:调用函数,在括号内传入的实际值,值可以为常量.变量.表达式或三者的组合 # 注: ...
- Python星号*与**用法分析 What does ** (double star/asterisk) and * (star/asterisk) do for parameters? 必选参数 默认参数 可变参数 关键字参数
python中*号**的区别 - CSDN博客 https://blog.csdn.net/qq_26815677/article/details/78091452 定义可变参数和定义 list 或 ...
- python学习道路(day4note)(函数,形参实参位置参数匿名参数,匿名函数,高阶函数,镶嵌函数)
1.函数 2种编程方法 关键词面向对象:华山派 --->> 类----->class面向过程:少林派 -->> 过程--->def 函数式编程:逍遥派 --> ...
- Python虚拟机函数机制之扩展位置参数和扩展键参数(六)
扩展位置参数和扩展键参数 在Python虚拟机函数机制之参数类别(三)的例3和例4中,我们看到了使用扩展位置参数和扩展键参数时指示参数个数的变量的值.在那里,我们发现在函数内部没有使用局部变量时,co ...
- python学习第三十天函数的形参,实参及函数文档
python函数的形参是定义函数def 函数名 小括号里面的变量,实参是调用函数时候的值,函数文档是提供函数功能的开发文档,下面 详细说明系列方法 1,函数的形参 def chan(name): pr ...
- Day5 - 05 函数的参数-关键字参数
可变参数可以传入任意个参数,并在函数调用时自动组为一个tuple,而关键字参数允许传入任意个携带参数名的参数,这些关键字参数在函数内部自动组为一个dict. >>> ...
- python学习笔记 可变参数关键字参数**kw相关学习
在Python中可以定义可变参数,顾名思义,可变参数就是传入参数是可变的.可以是任意个,以一个简单的数学编程为例,计算 sum = a * a + b * b + .....z * z 函数定义可以如 ...
- python函数—形参、实参、位置参数、关键字参数
1.通过def function_name([parameter]): 定义,函数一遇到return即结束运行.如果函数没有定义返回值,则返回None,如果定义了一个返回值,则返回该对象,如果一个re ...
随机推荐
- C# 如何获取当前应用程序的上一级路径
Server.MapPath 的使用方法 用法: 1.Server.MapPath ("/") 应用程序根目录所在的位置 如 C:\Inetpub\wwwroot\ 2.Serve ...
- WAV文件头相关资料
http://stackoverflow.com/questions/6284651/avaudiorecorder-doesnt-write-out-proper-wav-file-header h ...
- JavaScript检测文件上传的类型与大小
$(function(){ $("#files").change(function(){ // 添加允许上传的文件类型 var exts = new Array(); exts[0 ...
- Autumn is a second spring when every leaf is a flower.
Autumn is a second spring when every leaf is a flower. 秋天即是第二个春天,每片叶子都是花朵.——阿尔贝·加缪
- Linux的常用命令
1.cd命令 这是一个非常基本,也是大家经常需要使用的命令,它用于切换当前目录,它的参数是要切换到的目录的路径,可以是绝对路径,也可以是相对路径.如: cd /root/Docements # 切 ...
- vue 导航钩子
导航钩子 (译者:『导航』表示路由正在发生改变.) 正如其名,vue-router 提供的导航钩子主要用来拦截导航,让它完成跳转或取消.有多种方式可以在路由导航发生时执行钩子:全局的, 单个路由独享的 ...
- mybatis框架下解决数据库中表的列的字段名和实体类属性不相同的问题
导包.... 实体类中的属性,getter,setter,tostring,构造等方法就不写了 private int id; private String orderNo; private floa ...
- Nodejs基础中间件
Nodejs基础中间件Connect http://www.tuicool.com/articles/emeuie 关于作者 张丹(Conan), 程序员Java,R,PHP,Javascript ...
- [Linux] vimdiff 快速比较和合并少量文件
纯文本文件比较和合并工具一直是软件开发过程中比较重要的组成部分,vimdiff 能够在比较出来的多处差异之间快速定位,很容易的进行文件合并操作.在需要快速比较和合并少量文件的时候,vimdiff是很好 ...
- 初识NodeJS,一个基于GoogleV8引擎的Javascript运行环境
思考 首先我们来思考一个问题:我们都知道几乎所有现代主流浏览器都全面支持了ECMAScript 5.1版标准,而JavaScript的标准是ECMAScript.那么我们就容易认为JavaScript ...