# 函数的定义规则
def prt(): # 定义函数 函数不调用时不执行,只有调用时再执行
print('1234124')
print(123124233)
print('asdsadsadd')
floor = int(input('shuru'))
if floor == 1:
print('你在1楼' '\t' '1lou')
prt() # 调用函数
if floor == 3:
print( '你在3楼' '\n' '3lou')
prt()
if floor == 2:
print( '你在2楼' '\d''1lou')
prt()
# 参数
def qiuhe(a,b,c): #argument 参数 定义的时候为形式参数(没有实际的值 给他什么值就是什么值)
d = a + b + c
print(d)
qiuhe(3,4,28)
qiuhe(2,6,4) # 实参(有实际的值)调用函数的时候为实参
he(1,2)
def he(a,b):
print(a + b)
def he(a,b): #函数必须先定义再调用,可以多次调用
print(a+b)
he(1,2)
def xx(a, b): # 位置参数
c = a+b
print(c)
xx(1,2)
def dj(name,age): # 关键字参数 对应实参 调用时赋值
print('姓名',name,'\n' '年龄',age)
dj(23,'zs')
dj(age=23,name='zs')
def j(a,b,c):
print(a + b + c)
j(1,2,c = 3)
j(a=1,2,4) # 关键字参数必须在位置参数后面
def dj(name,age,gender='男'): # 默认参数 对应行参 定义时赋值
print(name,age,gender)
dj('zs',46)
dj('ls',345,'男')
dj('ww',23,'涉及到南方科技')
def pig(a=3,b): # non-default argument follows default argument 默认参数必须放在最后面
print(a,b)
pig(1,2)
def kb(*a): # *加参数,使参数变成元组,构成可变参数 可以有任意个元素 a 的类型默认输出为元组
print(a, type(a))
for i in a:
print(i, type(i))
kb(1)
kb(1,23,3,4,5,6,7)
kb()
def kb(*a):
print(a, type(a))
print(a[0],a[1],a[2])
b = (1,2, 3)
kb(b) # 整个b作为元组a中的一个元素
kb(*b) # b 中的元素打散,分别作为a中的元素
a = 'asdfasf'
print(*a) # *打散序列 (列表、元组、字符串)
a = (1,2,3)
print(*a)
b = [1,2,3]
print(*b)
c = (1,2,3)
d,*e = c
print(d,e)
a ='asddfgsgds'
print(*a )
def zd(**q): # 形参前加** 构成字典参数
print(q,type(q))
zd(name='asd',age = 3)
zd(name='asdkja',age = 123,aaf='asd')
zd()
def zd(name,age):
print(name,age)
a = {'name':'zhangsan','age': 213}
zd(a)
zd(**a) # 打散成字典
zd(*a) # 打散 取key
def zd(name,age):
print(name,age)
a = {'a':1,'b':2} # zd() got an unexpected keyword argument 'a' key参数必须与行参一致
zd(**a)
def ab(*a,**b): # 一星参数在前,二**参数在后
print(a,b)
b = {'s':2,'d':4}
a = (1,2,3,4)
ab(*a,**b)
def a(a,*b,c=9,**d): # 参数的位置顺序, 位置-元组-默认-字典
print(a)
print(b)
print(c)
print(d)
a(1,2,34,5,67,5,6,7,7,)
a(1,2,3,name='zhangsan')
def a(a,b=2,*c,**d): # 不会报错 不建议使用 用以造成混乱
print(a)
print(b)
print(c)
print(d)
a(1,3,2,4)
# 函数调用
def dog():
print('jjjjdjjfgjdkfjgkdfgjfdkg')
print(id(dog))
print(dog)
print(dog())
a = dog # 调用函数的本质是调用内纯地址
a()
print(id(a))
def xx():
print(i +1)
i = 3
a = b = xx
a()
i = 7
b()
def hs1(x,y):
print(x*y)
def hs2(a,b,c):
hs1(a,b) # 函数间可以互相调用
print(c)
hs2(2,3,4)
def pd(a):
if a % 2 == 0:
print(a, '是偶数')
else:
print(a, '是奇数')
a = int(input('输入'))
pd(a)
# 递归
递归前进
递归后退
递归边界
当递归边界成立时,递归后退,递归边界不成立是递归前进
def jiecheng(n):
if n == 1: #递归边界
return 1
else:
return n*jiecheng(n-1)
print( jiecheng( 10 ) )
def tuzi(n):
if n == 1 or n == 2:
return 1
else:
return tuzi(n-1)+tuzi(n-2)
print(tuzi(12))
n = int(input('asd'))
for i in range(1,n+1):
print('第',i,'个月的兔子数是',tuzi(i))
def pn(n):
print(n)
if n == 1:
return
pn(n-1)
print('heihei') # 递归引用后面的语句在递归结束 返回值以后运行
pn(5)
def zbcz(a,start,end,k):
if start > end:
return '不在范围内'
mid=(start + end)//2
if k >a[mid]:
return zbcz(a,mid+1,end,k)
elif k < a[mid]:
return zbcz(a,start,mid-1,k)
else:
return mid
a = [1,2,3,4,5,6,7,8]
k = int(input('输入一个数'))
print(zbcz(a,0,7,k))
def zbcz(a,start,end,k):
while start <= end:
mid = (start + end)//2
if a[mid] > k:
end = mid -1
elif a[mid] < k:
start = mid +1
elif a[mid] == k:
return mid
return -1
k = int(input('输入要找的数'))
a = [1,2,3,4,5]
b = [0]
c = zbcz(a,0,4,k)
if c == -1:
print('wu')
else:
print('位置是',c)
# 用循环处理兔子数
n = int(input())
a = [1,1]
while i <= n:
if i > 1:
a.append(a[i -1]+a[i -2])
print('第',i,'个月的兔子是',a[i-1])
i += 1
i = 1
j0 = 0
j1 = 1
j2 = 0
n = int(input('输入月份'))
while i <= n:
if i == 1:
j0 = 0
else:
# j2 = j1
# j1 = j1 + j0
# j0 = j2
j1,j0=j1+j0,j1
print('第',i,'个月的兔子是',j1)
i += 1
# return 返回值
def qiuhe(a,b): # return 返回值给调用的地方
c = a + b
return c # 不加返回结果的 默认返回空值(None)
x = qiuhe(1,2) # 把c赋给x
print(x)
y = qiuhe(2,3) # 把 5赋给y 返回值得对象是替换 y的赋值 即替换 qiuhe(2,3)为5
print(y)
a = [1,2,3]
x = a.remove(3) # remove函数无返回值
print(x) # None
def zz(a,b):
c = a+b
d = a-b
e = a*b
return c,d,e #return 可以结束此方法
x = zz(2,3)
a,b,c =zz(2,4)
print(a,b,c)
print(x)
def hanshu(a,b):
# return # 后面的语句不执行
c = a + b
d = a - b
return c,d
print(*hanshu(1,2))
def hs():
i = 0
while i < 5:
if i == 2:
return # 结束
print(i)
i += 1
hs()
python--初识函数
最新推荐文章于 2025-08-05 23:20:10 发布