python中的函数包括_Python中的函数

Python中,函数返回值通过return语句,但是返回类型不像C++那样需要定义其类型;同样输入形参只需要写名字就行了,不需要定义类型。在Python中,函数内为参数赋值不会改变外部任何变量(按值传递)。在Python里面的作用域概念,包括局部作用域和全局作用域。

(1)要改变值有两种方式:一是通过返回值;二是将要改变的值封装到列表中。

#方法1

foo = 10

def inc(x):return x + 1;#作为返回值返回

foo1 = inc(foo)

print(foo)

11

#方法2

def inc(x):x[0]+=1

foo=[10] #将值放到列表中

inc(foo)

print (foo)

[11]

#可以改变列表里面的内容,且能被保存下来

def initDict(storage):

storage.append("seu")

storage.append('njust')

return

nameDict = []

initDict(nameDict)

print (nameDict)

['seu', 'njust']

#但是如果改变列表变量本身不行

def initDict(storage):

storage = [] #该句话改变了storage,所以导致最后的输出结果为[]

storage.append("seu")

storage.append('njust')

return

nameDict = []

initDict(nameDict)

print (nameDict)

[]

(2)关键字参数和默认值

使用参数名提供的参数叫做关键字参数,主要作用是明确每个参数的作用,使调用者更清楚。下面#2,#3用了关键字参数

def hello(greet,name):

print ('%s,%s!' %(greet,name))

return

hello('Hello','World')#1 这三个条语句完全一样

hello(greet='Hello',name='World') #2 关键字参数,结果和上一样

hello(name='World',greet='Hello')#3 关键字参数,结果和上一样

同样,还可以给参数赋默认值,与关键字参数结合使用。

#给函数默认参数

def hello_2(name='world',greet='Hello'):

print ('%s,%s!' %(greet,name))

return

hello_2()

hello_2('world')

hello_2('wrold','Hello')

hello_2(greet='Hello')#这样也可以

(3)收集参数

参数前加一个星号表示搜集其余的位置参数。如果不提供任何供搜集的元素,搜集参数将为空元组。

def print_para(title,*para):

print (title+':')

print (para)

return

print_para('params',2,3,4) #后面的几个参数被para所搜集

params:

(2, 3, 4)

“**”表示处理关键字参数的“搜集”操作,搜集成字典。

#范例1

def print_para(**paras):

print (paras)

return

print_para(x='dfs',y=2,z=3)

{'y': 2, 'x': 'dfs', 'z': 3}

#范例2

def print_para(x,y,z,*pos,**paras):

print (x,y,z)

print (pos)

print (paras)

return

print_para(1,2,3,4,6,7,foo=1,bar='lsj')

1 2 3

(4, 6, 7)

{'foo': 1, 'bar': 'lsj'}

(4)反转过程

不是搜集参数,而是分配它们在“另一端”。使用*运算符。

#元组反转过程

def add(x,y):return x+y

para = (1,2)

print (add(*para))#反转过程

3

#字典的反转过程

def Hello(name,greet):

print (name+',',greet)

return

params = {'name': 'lsj','greet':'Hello'}

Hello(**params) #反转过程

lsj, Hello

(5)递归问题

函数自身调用自身。

def calSum(i):

if(i==0):

return 0

else:

return i + calSum(i-1)

for i in range(1,20):

print (calSum(i))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值