pythonの函数学习笔记(一)

函数是可以实现一些特定功能的小方法或小程序
定义函数function的方法:
def function_name(arg1,arg2[,...]):
statement
[return value]
注意事项:
1.def开头,代表定义函数,def和函数名中间要敲一个空格;
2.返回值不是必须的,如果没有renturn语句,则默认返回值None;
3.函数名必须以下划线或字母开头,可以包含任意字母、数字或下划线的组合,区分大小写且不能是保留字;

py使用名称空间的概念存储对象,这个名称空间就是对象作用的区域,不通对象存在域不同作用域。下面是不通对象的作用域规则:

1.每个模块都有自己的全局作用域;

2.函数定义的对象属局部作用域,只在函数内部有效,不会影响全局作用域中的对象。

3.赋值对象属于局部作用域,除非使用global 关键字进行声明。

LGB规则是py查找名字的规则,详情如下:

1.大多数名字引用在三个作用域中查找,先局部,再全局,最后内置。

(即在函数内部时需要使用相同名字的变量时,优先取函数内部的赋值结果,如实例中的b ,当局部变量中没有找到a,则取全局变量及其赋值,如实例中的a)

eg:b在局部作用域中找到,a在全局作用域中找到。

>>> a=2
>>> b=3
>>> def test(b):
    test=a*b
    return test

>>> print test(10)
20

2.如想在局部作用域中改变全局作用域的对象,必须使用global 关键字

#没有global时的情况(局部变量的对象只能作用于函数内,print name 打印出来的应该是全局变量的对象)

>>> name=‘testing‘
>>> def set():
    name=‘test‘    return name
>>> print set()test
>>> print name
testing

#使用global后的情况

>>> name=‘testing‘
>>> def set():
    global name
    name=‘test‘
    return name

>>> set()
‘test‘
>>> print name
test
>>> print set()
test

总结:global声明把赋值的名字映射到一个包含它的模块的作用域中,相当于全局变量使用

参数传递规则:

在一个函数中对不可变参数赋值不会影响(全局变量值)调用者

>>> a=7
>>> def test(a):
    a=a+1
    print a

>>> test(a)
8
>>> print a
7

在一个函数中对可变参数赋值会影响(全局变量值)调用者

>>> a=[1,2]
>>> b=7
>>> def test(a,b):
    a[0]=8
    b=6
    print a,b

>>> test(a,b)
[8, 2] 6
>>> print b
7
>>> print a
[8, 2]

当参数是对象指针时,无需定义传递的对象类型,eg:

>>> def test(a,b):
    return a+b

>>> test(1,2)
3
>>> test(‘a‘,‘b‘)
‘ab‘
>>> test([1],[2])
[1, 2]
>>> 

函数中的参数接收传递的值,参数可分默认参数,如:

def function(ARG=VALUE)
元组(Tuples)参数:

def function(*ARG)
字典(dictionary)参数:

def function(**ARG)
一些函数规则:

默认值必须在非默认参数之后;

在单个函数定义中,只能使用一个tuple参数(*ARG)和一个字典参数(**ARG)。

tuple参数必须在连接参数和默认参数之后。

字典参数必须在最后定义。

时间: 2024-08-02 02:51:07

pythonの函数学习笔记(一)的相关文章

2. 蛤蟆Python脚本学习笔记二基本命令畅玩

2. 蛤蟆Python脚本学习笔记二基本命令畅玩 本篇名言:"成功源于发现细节,没有细节就没有机遇,留心细节意味着创造机遇.一件司空见惯的小事或许就可能是打开机遇宝库的钥匙!" 下班回家,咱先来看下一些常用的基本命令. 欢迎转载,转载请标明出处:http://blog.csdn.net/notbaron/article/details/48092873 1.  数字和表达式 看下图1一就能说明很多问题: 加法,整除,浮点除,取模,幂乘方等.是不是很直接也很粗暴. 关于上限,蛤蟆不太清楚

Python Click 学习笔记(转)

原文链接:Python Click 学习笔记 Click 是 Flask 的团队 pallets 开发的优秀开源项目,它为命令行工具的开发封装了大量方法,使开发者只需要专注于功能实现.恰好我最近在开发的一个小工具需要在命令行环境下操作,就写个学习笔记. 国际惯例,先来一段 "Hello World" 程序(假定已经安装了 Click 包). # hello.py import click @click.command() @click.option('--count', default

[简明python教程]学习笔记之编写简单备份脚本

[[email protected] 0503]# cat backup_ver3.py #!/usr/bin/python #filename:backup_ver3.py import os import time #source source=['/root/a.sh','/root/b.sh','/root/c.sh'] #source='/root/c.sh' #backup dir target_dir='/tmp/' today=target_dir+time.strftime('

3. 蛤蟆Python脚本学习笔记三字符串

3. 蛤蟆Python脚本学习笔记三字符串 本篇名言:"平静的湖面只有呆板的倒映,奔腾的激流才有美丽的浪花!幸福不是靠别人来布施,而是要自己去赢取!生命的意义在不断挑战自己,战胜自己!" 这个本来放在昨天的,由于昨晚又太晚了,所以就搁在这里了.赶紧看看吧. 字符串两边都用双引号或者单引号包起来.否则就使用转移符号来转移一下. 输入在一起可以直接拼接. 欢迎转载,转载请标明出处:http://blog.csdn.net/notbaron/article/details/48112507

[简明python教程]学习笔记2014-05-05

今天学习了python的输入输出.异常处理和python标准库 1.文件 通过创建一个file类的对象去处理文件,方法有read.readline.write.close等 [[email protected] 0505]# cat using_file.py #!/usr/bin/python #filename:using_file.py poem='''Programing is fun when the work is done use Python! ''' f=file('poem.

[Python][MachineLeaning]Python Scikit-learn学习笔记1-Datasets&Estimators

Scikit-learn官网:http://scikit-learn.org/stable/index.html Datasets 标准的数据集格式为一组多维特征向量组成的集合.数据集的标准形状(shape)为二维数组(samples, features),其中samples表示数据集大小,features表示其中特征向量的维数. 使用时可使用shape方法查看数据集 >>> from sklearn import datasets >>> iris = dataset

1.蛤蟆Python脚本学习笔记一环境搭建

1.蛤蟆Python脚本学习笔记一环境搭建 蛤蟆一直在想在工作的时候能不能有一个牛逼的工具来让自己工作更加轻松和快乐.用过C, C++, C#, JAVA,  SHELL,TCL,汇编,BAT等,感觉这些都是需要的时候能发挥作用,不能和我想象的一样.突然有一天,感觉Python实在不错,那么就和小伙伴们一起乐呵乐呵呗.万事开头难,我们先来搭建环境吧. 欢迎转载,转载请标明出处:http://blog.csdn.net/notbaron/article/details/48058315 1. 相关

C++运算符重载为友元函数学习笔记

初探C++运算符重载学习笔记 在上面那篇博客中,写了将运算符重载为普通函数或类的成员函数这两种情况. 下面的两种情况发生,则我们需要将运算符重载为类的友元函数 <1>成员函数不能满足要求 <2>普通函数又不能访问类的私有成员时 举例说明: class Complex{ double real, imag; public: Complex(double r, double i):real(r), imag(i){ }; Complex operator+(double r); };

contiki-main.c 中的process系列函数学习笔记 &lt;contiki学习笔记之六&gt;

说明:本文依然依赖于 contiki/platform/native/contiki-main.c 文件. ------------------------------------------------------------------------------------------------------------------------------------- 根据上一个笔记里面添加的printf()语句的打印信息提示,hello world 打印是在执行了 1 autostart_