Python 印刷';左';或';右';基于随机整数和lambda表达式?

Python 印刷';左';或';右';基于随机整数和lambda表达式?,python,lambda,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

我读了一篇(有点)幽默的故事,讲述了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()

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

import random
print(random.choice(('Left', 'Right')))
您还可以使用以下技巧:

('Left', 'Right')[random.randint(0, 1)]
它将随机索引到元组中。尽管如此,还是选择
choice

查看文档以了解更多信息


此外,TSA应用程序的津贴为36万美元。有关潜在成本的详细分类,请参阅。

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

import random
print(random.choice(('Left', 'Right')))
您还可以使用以下技巧:

('Left', 'Right')[random.randint(0, 1)]
它将随机索引到元组中。尽管如此,还是选择
choice

查看文档以了解更多信息


此外,TSA应用程序的津贴为36万美元。有关潜在成本的详细分析,请参见。

如果i==1,则打印“左”行。如何处理。请注意,尽管这些要求听起来微不足道,但取决于对分布的真实随机性的要求,它可能比人们天真地认为的要困难得多。@MattCoubrough这正是我的想法。我知道我以前见过它。谢谢。如果i==1,那么打印“左”怎么办?否则打印“右”。请注意,尽管这些要求听起来微不足道,但取决于对分布的真实随机性的要求,它可能比人们天真地认为的要困难得多。@MattCoubrough这正是我的想法。我知道我以前见过它。谢谢。你为什么说分布不均匀?这正是我所期望的,所以如果有什么建议,我会非常感兴趣。@TomDalton,我会删除那个部分,因为我不确定它不是。文档实际上没有说明选择函数。次要说明:如果经常这样做,请使用
元组
文本,而不是
列表
文本。
元组将在加载时构造并重用;
列表
将在每次调用时在运行时构建,这只会增加不必要的开销。谢谢,我应该有RTFM'd。你为什么说分布不一致?这正是我所期望的,所以如果有什么建议,我会非常感兴趣。@TomDalton,我会删除那个部分,因为我不确定它不是。文档实际上没有说明选择函数。次要说明:如果经常这样做,请使用
元组
文本,而不是
列表
文本。
元组将在加载时构造并重用;
列表
将在每次调用时在运行时构建,这只会增加不必要的开销。谢谢,我应该使用RTFM。