码迷,mamicode.com
首页 > 编程语言 > 详细

python函数 变量 递归 匿名函数 内置函数 文件操作

时间:2019-02-25 00:33:06      阅读:198      评论:0      收藏:0      [点我收藏+]

标签:字典   result   位置实参   glob   实参   统计   顺序   重复   全局   

1 语法

#语法
def 函数名(参数1,参数2,参数3,...):
    ‘‘‘注释‘‘‘
    函数体
    return 返回的值

#函数名要能反映其意义
返回值数=0:返回None
放回值数=1:返回object
放回值数>1:返回tuple

2.定义函数的三种形式
1、无参:应用场景仅仅只是执行一些操作,比如与用户交互,打印
2、有参:需要根据外部传进来的参数,才能执行相应的逻辑,比如统计长度,求最大值最小值 3、空函数:设计代码结构
形参即变量名,实参即变量值,函数调用时,将值绑定到变量名上,函数调用结束,解除绑定
def calc(x,y):
  result = x * y
  return result

c = calc(a,b)

x,y是形参 不占用内存空间
a,b是实参

参数
#1、位置参数:按照从左到右的顺序定义的参数
        位置形参:必选参数
        位置实参:按照位置给形参传值

#2、关键字参数:按照key=value的形式定义的实参
        无需按照位置为形参传值
        注意的问题:
                1. 关键字实参必须在位置实参右面
                2. 对同一个形参不能重复传值

#3、默认参数:形参在定义时就已经为其赋值
        可以传值也可以不传值,经常需要变得参数定义成位置形参,变化较小的参数定义成默认参数(形参)
        注意的问题:
                1. 只在定义时赋值一次
                2. 默认参数的定义应该在位置形参右面
                3. 默认参数通常应该定义成不可变类型


#4、可变长参数:
        可变长指的是实参值的个数不固定
        而实参有按位置和按关键字两种形式定义,针对这两种形式的可变长,形参对应有两种解决方案来完整地存放它们,分别是*args,**kwargs
     
     位置参数:x y b  
     默认参数 a
     args 元组 *[]
     kwargs 字典 **{}

def foo(x, y, *args, a=1, b, **kwargs):
print(x, y)
print(args)
print(a)
print(b)
print(kwargs)


foo(1, 2, 3, 4, 5, b=6, c=7, d=8)
1 2
(3, 4, 5)
1
6
{‘d‘: 8, ‘c‘: 7}


3.全局变量 局部变量
name = "全局变量"
def chang_name():
name = "局部变量"
return name
print(chang_name())

name = "全局变量"
def chang_name():
#name = "局部变量"
return name
print(chang_name())

name = "全局变量"
def chang_name():
global name
name = "局部变量"
return name
print(chang_name())
print(name)
显示:
局部变量

全局变量

局部变量
局部变量

总结:函数内部没有global关键字,局部优先级大于全局变量,可读,但对全局变量是可变对象进行内部操作
有gbloal关键字,当前局部变量就是那个全局变量,可读可改
   规范:全局变量全部大写 局部变量全部小写




 
 

python函数 变量 递归 匿名函数 内置函数 文件操作

标签:字典   result   位置实参   glob   实参   统计   顺序   重复   全局   

原文地址:https://www.cnblogs.com/icemonkey/p/10428635.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!