函数基础知识

这篇博客深入探讨了Python中的函数,包括定义、调用、形参与实参、返回值、变量作用域、可变与不可变类型以及递归和嵌套函数。还介绍了元组参数、字典参数、默认参数、全局与局部变量、非局部变量的概念,并通过实例展示了它们的用法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

def dylc():

print(‘1楼西装’)

print(‘2楼女装’)

print(‘3楼化妆品’)

floor=int(input(‘请输入楼层:’))

if floor==1:

print(‘西单大悦城1 楼欢迎您’)

dylc()

print(‘您现在1楼’)

elif floor==2:

print(‘西单大悦城2 楼欢迎您’)

dylc()

print(‘您现在2楼’)

elif floor==3:

print(‘西单大悦城3 楼欢迎您’)

dylc()

print(‘您现在3楼’)

#----------------------------------------

def jiafa(a,b):#定义一个函数,形参

c=a+b

print(’%d+%d=%c’%(a,b,c))#返回值

jiafa(5,7)#调用,实参

jiafa(3,7)

#------------------------------------

def num(a,b):#形参

c=a+b

return c#返回一个值

x=num(5,6)#把返回地值赋予X

if x>10:

print(‘金额>10奖励’)

else:

print(‘不打折’)

def jisuan(a,b):

c=a+b

d=a-b

e=a*b

f=a/b

return c,d,e,f

x=jisuan(8,5)

print(x)

a,b,c,d=jisuan(4,7)

print(a,b,c,d)

#不可变类型

def hs(a):

a+=2

return a

b=4

hs(b)

print(b)

#可变类型

def kb(a):

a.append(3)

#a=6

b=[]

kb(b)

print(b)

#关键字参数

def pt(name,age,sex):

print(‘我是’,name)

print(‘年龄’,age)

print(‘性别’,sex)

pt(name=‘张三’,sex=‘男’,age=‘18’)

#----------必须参数:实参he形参一一对应

def jisuan(a,b):

c=a+b

return c

jisuan(3,4)

#默认参数

def pt(name,age=18,sex=‘男’):

print(‘我是’,name,end=’ ')

print(‘年龄’,age,end=’ ')

print(‘性别’,sex)

pt(name=‘张三’,sex=‘男’,age=‘18’)

pt(name=‘李四’,)

pt(name=‘王五’,)

pt(name=‘赵六’,)

pt(name=‘宋七’,sex=‘女’)

#---------------------------------------

def pt(*args):#*args是元祖

print(args)

for i in args:

print(i,end=’,’)

print()

pt(1,2,3)

pt(1,2,3,4,455,64,32,2)

#-------------------------------------

def pt(**kwargs):

print(kwargs)

for k,v in kwargs.items():

print(k,v,end=’’)

print()

pt(name=‘张三’,age=18,sex=‘男’)

pt(name=‘李四’,age=24,sex=‘女’,address=‘河北’)

#=================================================原装面试题******************************

def xhs(a,b,d=[]):

d.append(‘x’)

print(d)

xhs(1,2)

xhs(10,20)

#嵌套函数-------------------python独有的特性

def waibu():

print(‘1111’)

def neibu():

print(‘2222’)

neibu()

waibu()

---------------------------------------------------

a=0

def hanshu():

a=2

print(a)

hanshu()

print(a)

#------------------------------

a=[]

def hanshu():

a.append(23)

hanshu()

print(a)

#======================================************************************

a=3

def hs():

k=a+5

hs()

print(a)#输出3

a=3

#-----------------------------

def hs():

a+=5

hs()

print(a)#输出报错

a=3

#-----------------------------

def hs(a):

a+=5

hs(a)

print(a)#输出3

=========================================

a=3

def hs():

global a

a=5

print(a)

hs()

print(a)

非全局变量

def hs():

a=30

def neibu():

a=20

def neibun():

nonlocal a

a=5

print(a)

neibun()

print(a)

neibu()

print(a)

hs()

#笔试简答+================================8******

查照变量的顺序

#LEGB法则

L-----LOCAL 局部

E-------ENCLOSE------嵌套作用域

G-------GLOBLE-------全局

B---------BUILT-IN------内置

a=100

b=2

c=10

def waibu():

b=200

c=2

def neibu():

c=300

print©#LOCAL局部变量

print(b)#ENCLOSE嵌套

print(a)#GLOBAL全局

print(max)#BUILT-IN内置

neibu()

waibu()

d递归函数:

def jiecheng(n):

if n==1:

return 1

else:

return n*jiecheng(n-1)

s=jiecheng(5)

print(s)

=======================================================

def fbnp(n):

if n=1 or n==2:

return 1

else:

return fbnp(n-1)+fbnp(n-2)

i=0

for i in range(1,13):

print(‘第%d个月的兔子数是%d’%(i,fbnp(i)))

#小型函数lambda

x=lambda x:x*2+5

print(x(10))#输出10

print(x(3))#输出11

y=lambda y:y*10+5

print(y(3))#输出35

z=lambda a,b:a*5+b

print(z(2,3))#输出13

------------------------------------

a={‘name’:‘程传纪’,‘age’:29,‘address’:‘山东’}

x=lambda b:b[‘age’]

print(x(a))

绝对值abs指是一个函数

a=[2,32,-46]

b=max(a,key=abs)#先对a里面的值换成绝对值,再取最大的,但a里面的值不变

print(b)

---------------------------------

a=[1,3,-2,-4,5,6]

a.sort(key=abs)#先对a里面的值换成绝对值,再按照绝对值大小排序,但a里面的值不变。sort指的是排序

print(a)

===============================

a=[{‘name’:‘1’,‘age’:18,‘address’:‘山东’},

{‘name’:‘2’,‘age’:38,‘address’:‘河北’},

{‘name’:‘3’,‘age’:28,‘address’:‘山东’}]

b=max(a,key=lambda x:x[‘age’])

print(b)

=========================================**********************************

i=10

def a(x):

print(x*i)

i=20

def b(x):

print(x*i)

i=30

def c(x):

print(x*i)

a(3)

b(3)

c(3)

#====================================*****************
a=[lambda x:x*i for i in range(3)]
print(a0)
print(a1)
print(a2)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值