您的位置:首页 > 编程语言 > Python开发

Python 学习之旅:参数传值方式 函数返回值 局部变量&全局变量 lambda函数

youngerlily 2020-06-29 05:04 190 查看 https://blog.csdn.net/youngerl

Lily学python

#关键词:参数传值方式 函数返回值 局部变量&全局变量 lambda函数

编程小白,不喜勿喷,圈地自萌,静待蜕变

参数传值方式

‘别再参来参去,抱歉我想参上一本奏折’

  1. #默认 位置参数,值一一对应‘,’分隔即可,实参复制它的值传给形参,实参不一定是常量
    迷惑言语——“位置实参指的是实参的顺序与形参相同”
    不明白为什么中文表述如此一团……
  2. #默认参数==可选参数,不是没有参数哦
  3. #关键字参数==键-值参数,传值的时候,明明白白写出,降低出错,可以设置默认值
    ‘’’
    men(var1=1,var2=2)
    ‘’’
  4. #可变长关键字参数,一般解读为字典‘键-值对’
    形式:‘*’参数,‘**’参数 <<——满天都是小星星,他俩怎么分得清
    *#直接传值——属于“一星参数”,键值对传过去——属于“二星参数”

位置:出现在所有位置参数后,第一个关键字参数前

函数返回值

#可有可无可单个可多个,看你的需求啦,有时候一根稻草绊倒你
#送回给函数调用模块
例题来咯

#例题8
import math
def move(x,y,step,angle=0):
nx=x+step*math.cos(angle)
ny=y-step*math.sin(angle)
return nx,ny#对应的值复制给对应的变量
x,y=move(100,100,60,math.pi/6)#tuple
print(x,y)

局部变量&全局变量

‘我们不一样’
#函数执行完之后,它所占的内存会被Python解释器回收
#全局变量,所有函数外面,不能随意调用、修改,除非——

#例题9
var=100
def change():
global var#声明全局变量,change函数里不开辟空间,引用全局变量
var+=10
return var
change()
print(var)#结果110
#例题10

'''n,f=10,100
def fac(n):
#f=1   #敢不敢试试把注释符号放到下一行
global f
for k in range(1,n+1):
f*=k
return f
print(fac(n),f)#结果362880000 362880000
#例题11
ls=['F','f']#列表,有位置顺序,元素可以有不同类型,全局变量
def func1(n):
#ls=[]#创建列表,一个空列表,局部变量
ls.append(n)#追加一个元素,一般放在背后,变成['G']
#没有出现同名创建的局部变量,看做全局变量
return#没有接返回啥,所以啥也不返回

func1('G')
print(ls)#结果['F', 'f', 'G']

lambda函数——匿名函数

形式:函数=lambda 参数,参数:表达式
一行写完不带喘
相当于
def 函数(参数):
函数体(一个表达式)
return 返回值

下面的例子是两个哦,分别敲进命令行

f=lambda x,y:x*y
f(10,2)#结果20

f=lambda :'你好'
print(f())

**#谨慎使用,使用不当造成理解有误
#排序常用

形式:
item.sort(key=lambda x:x[1],reverse=True)#降序
reduce(lambda x,y:x+y,[1,2,3,4,5])#累加

标签: