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

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)

  


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值