鱼C论坛

 找回密码
 立即注册
12
返回列表 发新帖
楼主: Boibot

[已解决]分别把lambda函数变为普通函数,把make_repeat(n)函数变为lambda函数

[复制链接]
 楼主| 发表于 2021-9-5 23:32:10 | 显示全部楼层
suchocolate 发表于 2021-9-5 23:15
那请把你报错的代码贴出来,别贴草稿好吗?

这里
def make_repeat(n):
    return s * n
n = 2
print(make_repeat(n)(8))
print(make_repeat(n)('FishC')) error

def make_repeat(n)(s):    
    return s * n
n = 2
print(make_repeat(n)(8))
print(make_repeat(n)('FishC')) error


def make_repeat(n,s):    
    return s * n
n = 2
print(make_repeat(n,8))
print(make_repeat(n,'FishC'))  right


def make_repeat(n=2,s):    
    return s * n
print(make_repeat(n,8))
print(make_repeat(n,'FishC'))  error


def make_repeat(s):    
    return s * 2
print(make_repeat(8))
print(make_repeat('FishC'))    right
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-9-5 23:43:33 | 显示全部楼层
我等
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-9-6 10:11:14 | 显示全部楼层

def make_repeat(n):
    return s * n  # s是函数内局部变量,也没有传入的接口,所以调用的时候报错s没有定义。


n = 2
print(make_repeat(n)(8))  # 普通函数不是这么多调用的,make_repeat返回的是普通值,不是函数的入口。
print(make_repeat(n)('FishC'))  # error


# 修改如下:
def make_repeat(s, n=2):
    return s * n


print(make_repeat(2))
print(make_repeat('FishC'))


# ===================================================================================


def make_repeat(n)(s):  # 没有这种函数定义方式,定义参考上面的


return s * n
n = 2
print(make_repeat(n)(8))
print(make_repeat(n)('FishC'))  # error


# ===================================================================================
#
def make_repeat(n, s):  # 没有问题
    return s * n


n = 2
print(make_repeat(n, 8))
print(make_repeat(n, 'FishC'))  # right


# ===================================================================================
#
def make_repeat(n=2, s):  # 函数定义一般关键字放后面,非关键字放前面,使用的时候要制定关键字,参考第一个
    return s * n

print(make_repeat(n, 8))
print(make_repeat(n, 'FishC'))  # error

# ===================================================================================

def make_repeat(s):  # 没有问题
    return s * 2
print(make_repeat(8))
print(make_repeat('FishC'))    #right
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-6 10:12:34 | 显示全部楼层
还是仔细看看函数章节吧,在这不断尝试,不如咨询看看教程。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-9-6 23:26:52 | 显示全部楼层
suchocolate 发表于 2021-9-6 10:12
还是仔细看看函数章节吧,在这不断尝试,不如咨询看看教程。

今天看了你发的菜鸟函数章节找到好多没弄懂的地方,之前都没注意到,我的知识体系都是漏洞
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-9-7 08:13:46 | 显示全部楼层
s是函数内局部变量,也没有传入的接口,所以调用的时候报错s没有定义。
普通函数不是这么多调用的,make_repeat返回的是普通值,不是函数的入口。
函数定义一般关键字放后面,非关键字放前面,使用的时候要制定关键字,参考第一个。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-13 10:05

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表