>-6ren">
gpt4 book ai didi

python - 有趣的 "Hello World"采访

转载 作者:太空狗 更新时间:2023-10-29 19:32:31 32 4
gpt4 key购买 nike

我们在办公室面试时会问这样一个问题。为了保持一致性,我将其上下文限制为 python。我确定还有其他答案,但我真的只对 python 答案感兴趣。

给我写一个名为 say 的函数,当这样调用时:

>>> say('Hello')('World')

它只打印(不返回):

>>> say('Hello')('World')
Hello World
>>>

今天面试后我们进行了元讨论,我说我一直希望申请人能回答以下问题。

def say(x):
print "Hello World"
return lambda a:None

我意识到有可能通过将 lambda 函数替换为某种返回 None 的内置函数来进一步缩短它,但我已经挖掘并且可以' 似乎找到一个比 lambda a:None

更短的

所以这里的总体问题是...

你能想出一种方法来缩短它,比如减少整体字符(忽略换行符)。任何导入语句都计入您的字符数。 (52 个字符)

更新

(39 个字符)

>>> def p(x):
... print "Hello",x
>>> say=lambda x:p
>>> say("Hello")("World")
Hello World
>>>

Python 3 答案(48 个字符)

>>> def say(x):
... return lambda a:print("Hello World")
>>> say("Hello")("World")
Hello World
>>>

最佳答案

Python 2.x 答案

明显的答案实际上并不重要,因为它返回字符串而不是打印它:

>>> say = lambda x: lambda y: x + " " + y
>>> say('Hello')('World')
'Hello World'

这个是 45 个字符,包括换行符:

def p(x):
print "Hello World"
say=lambda x:p

这个方法将它减少到 41 个字符,但它看起来有点奇怪,因为它使用一个参数而不是另一个:

def p(x):
print "Hello",x
say=lambda x:p

Python 3.x 答案

36 个字符:

>>> say=lambda x:lambda y:print(x+" "+y)
>>> say('Hello')('World')
Hello World

38 个字符:

>>> say=lambda x:print(x,end=' ') or print
>>> say('Hello')('World')
Hello World

关于python - 有趣的 "Hello World"采访,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7017874/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com