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

[python 笔记3]函数(方法?)

时间:2015-08-04 15:42:56      阅读:126      评论:0      收藏:0      [点我收藏+]

标签:python   函数   方法   

1、定义

    python函数以关键字def标识

def test(name):
	print 'hello %s'%(name)
name=raw_input('please input your name:  ')
test(name)


    技术分享

   PS:在python中代码块以缩紧的方式进行标识,所以缩进对齐的语句为一个代码块,这比像C++\java使用{}进行标识的方法方便不少,但是也对一些代码对齐不规范的同学带来一些麻烦

  

def 函数名(参数列表):
        函数体

2、参数列表

  python在函数中的参数与C++类似,没有特殊说明说明是传值参数,即改变函数内部的局部变量,函数外的变量值是不会改变的

  

def test(num):
	num+=1
	print num
num=1
test(num)
print num

技术分享

  当我们想使用参数改变外部变量是应该怎么办呢?

    1)使用函数返回值改变

   

def test(num):
	num+=1
	print num
	return num
num=1
num=test(num)
print num
技术分享

    2)给函数参数传入一个列表或字典

    

def test(num):
	num[0]=num[0]+1
	print num[0]
num=[1]
test(num)
print num[0]

技术分享

   为什么我们传入一个变量不会改变,而传入一个列表,列表的值就改变了呢?

  其实是这个样子的,我们函数中的num列表和函数外的num列表引用的是同一个列表,所以在函数内部修改时,函数外部变量所引用的列表也跟着改变(怎么这么别扭呢?)PS:这是不是和我们在c++中传引用和指针差不多呢?

3、关键字参数和默认值参数

    在上面的介绍中,函数的传参都是按照函数参数列表中的位置顺序决定的,当我们把传参的顺序改变是,函数就不会完成预期的工作。

   关键字参数在函数传参是为每一个参数指定一个名字,这样无论在参数列表中的顺序是什么样子的,都会匹配到实际的参数(还是这么别扭呢?)

def test(first,second):
	res=first-second
	return res
print test(1,2)
print test(2,1)
print test(first=1,second=2)
print test(second=2,first=1)

技术分享

   默认值参数指在函数定义中在参数列表中设置参数额度默认值,当我们在使用函数时如果传入了新的值则使用新值,如果未传入参数,则使用默认值

  

def test(first=1,second=2):
	res=first-second
	return res
print test(1,2)
print test()

技术分享

4、函数传列表、字典

   在python中可以使用*(**)传递参数,可以传递多个参数,把*后面的参数当作一个列表(字典)处理

  

def test(*list):
	print list
	print list[0]+list[4]
num1=1
num2=2
num3=3
num4=4
num5=5
test(num1,num2,num3,num4,num5)

技术分享

  


版权声明:本文为博主原创文章,未经博主允许不得转载。

[python 笔记3]函数(方法?)

标签:python   函数   方法   

原文地址:http://blog.csdn.net/er_plough/article/details/47275955

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