首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kaggle教程说明

Kaggle教程说明
EN

Stack Overflow用户
提问于 2022-04-01 03:27:16
回答 1查看 49关注 0票数 -1
代码语言:javascript
复制
def mult_by_five(x):
return 5 \* x

def call(fn, arg):
"""Call fn on arg"""
return fn(arg)

def squared_call(fn, arg):
"""Call fn on the result of calling fn on arg"""
return fn(fn(arg))

print(
call(mult_by_five, 1),
squared_call(mult_by_five, 1),
sep='\\n', # '\\n' is the newline character - it starts a new line
)

这是来自于Kaggle的python教程。我不明白这是怎么回事。这个解释甚至更复杂。而且,当我在这里复制这些黑色的线条时,它们也出现了。知道我怎么把它移走吗?

我一直试图把它分解成一步一步地工作,但却被卡住了。

EN

回答 1

Stack Overflow用户

发布于 2022-04-01 07:02:03

我不知道这是否有帮助,但您可以使用print()来显示所有变量和结果,并查看代码如何工作。

代码语言:javascript
复制
def mult_by_five(x):
    print('\n--- start: mult_by_five ---')
    print('[mult_by_five] x:', x)
    result = 5 * x
    print('[mult_by_five] 5 * x:', result)
    print('--- end: mult_by_five ---\n')
    return result

def call(fn, arg):
    """Call fn on arg"""
    print('\n--- start: call ---')
    print('[call] fn:', fn)
    print('[call] arg:', arg)
    result = fn(arg)
    print('[call] fn(arg):', result)
    print('--- end: call ---\n')
    return result

def squared_call(fn, arg):
    """Call fn on the result of calling fn on arg"""
    print('\n--- start: squared_call ---')
    print('[squared_call] fn:', fn)
    print('[squared_call] arg:', arg)
    result1 = fn(arg)
    print('[squared_call] fn(arg):', result1)
    result2 = fn(result1)
    print('[squared_call] fn(fn(arg)):', result2)
    print('--- end: squared_call ---\n')
    return result2

# --- main ---

print('--- start: main ---')
print('[main] mult_by_five:', mult_by_five)
result1 = call(mult_by_five, 1)
print('[main] call(mult_by_five, 1):', result1)
result2 = squared_call(mult_by_five, 1)
print('[main] squared_call(mult_by_five, 1):', result2)
print('--- results ---')

print(result1, result2, sep='\n') # '\n' is the newline character - it starts a new line
print('--- end: main ---')

结果:

代码语言:javascript
复制
--- start: main ---
[main] mult_by_five: <function mult_by_five at 0x7f28f6c368b0>

--- start: call ---
[call] fn: <function mult_by_five at 0x7f28f6c368b0>
[call] arg: 1

--- start: mult_by_five ---
[mult_by_five] x: 1
[mult_by_five] 5 * x: 5
--- end: mult_by_five ---

[call] fn(arg): 5
--- end: call ---

[main] call(mult_by_five, 1): 5

--- start: squared_call ---
[squared_call] fn: <function mult_by_five at 0x7f28f6c368b0>
[squared_call] arg: 1

--- start: mult_by_five ---
[mult_by_five] x: 1
[mult_by_five] 5 * x: 5
--- end: mult_by_five ---

[squared_call] fn(arg): 5

--- start: mult_by_five ---
[mult_by_five] x: 5
[mult_by_five] 5 * x: 25
--- end: mult_by_five ---

[squared_call] fn(fn(arg)): 25
--- end: squared_call ---

[main] squared_call(mult_by_five, 1): 25
--- results ---
5
25
--- end: main ---

最终,您可以将原始代码放在https://pythontutor.com/中,并逐行运行它,它还将显示变量中的内容。所以它就像真正的调试器。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71701448

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档