基于带有lambda表达式的random int打印“Left”或“Right”?

时间:2016-04-04 23:50:33

标签: python lambda

我读了一个(有点)幽默的故事,关于TSA向开发人员支付140万美元的应用程序只是输出一个随机的“左”或“右”箭头。我决定用Python自己尝试。

我想知道我是否可以使用Lambda表达式或列表理解等缩短if-else语句...有条件地打印字符串的语法简写。

import os, datetime, random
while True:
    os.system('clear')
    print "ENTER to continue, or type 'quit'"
    print datetime.datetime.now()
    print ''
    i = random.randint(1,2)
    if i == 1:
        print 'Left'
    else:
        print 'Right'
    print ''
    prompt = raw_input("")
    if prompt == 'quit':
        quit()

1 个答案:

答案 0 :(得分:5)

您可以使用更好的随机函数:

import random
print(random.choice(('Left', 'Right')))

你也可以使用这个技巧:

('Left', 'Right')[random.randint(0, 1)]

将随机索引到元组中。尽管如此,请使用choice

查看random的文档。

此外,TSA应用程序的津贴为$ 360k。有关潜在成本的详细信息,请参阅this hackernews comment