Python 印刷';左';或';右';基于随机整数和lambda表达式?
我读了一篇(有点)幽默的故事,讲述了TSA向开发者支付140万美元购买一款只输出随机“左”或“右”箭头的应用程序。我决定自己用Python试试 我想知道是否可以使用Lambda表达式或列表理解之类的东西来缩短if-else语句。。。有条件地打印字符串的语法速记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
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。