我正在考虑提供一套或多套介绍性讲座,用Python和相关的科学工具向我所在部门的人介绍,就像我去年夏天曾做过的那样py4science @ UND。
为了使会议更有趣并引起更多关注,我通过以下方式向其中一位幸运的观众提供了两个Python学习资料:
1-)获取姓名并使用数字进行分配,然后从指定的字典中选择第一个作为获胜者。
import random
lucky = {1:'Lucky1',...}
random.choice(lucky.keys())
2-)类似于前一个但是字典中的弹出项目,因此最后一个成为最幸运的。
import random
lucky = {1:'Lucky1',...}
lucky.pop(random.choice(lucky.keys()))
现在,我至少会想到一个本质上具有随机性的想法,并展示一个有用的语言功能,帮助我在其中一个会话结束时制作更有趣的彩票时间。
答案 0 :(得分:3)
卡也是流行(和熟悉的!)机会游戏的来源。 也许你可以证明生成,随机播放和采样卡是多么容易:
#!/usr/bin/env python
import random
import itertools
numname={1:'Ace',11:'Jack',12:'Queen',13:'King'}
suits=['Clubs','Diamonds','Hearts','Spades']
numbers=range(1,14)
cards=['%s-%s'%(numname.get(number,number),suit)
for number,suit in itertools.product(numbers,suits)]
print(cards)
random.shuffle(cards)
print(cards)
hand=random.sample(cards,5)
print(hand)
答案 1 :(得分:1)
对于中等人群来说,随机数字最可爱的用途之一就是寻找周期。我将描述物理方法,然后进行一些探索。 Python代码相当简单。
从你的一群约100人开始,他们的名字放在一个碗里的纸上。每个人都在碗上下来并随意拿一张纸。每个人都会去找那个名字的人。这导致群体以各种尺寸聚集在一起。并不总是人们期望的。
例如,如果爱丽丝选择鲍勃,鲍勃选择查理,而查理选择爱丽丝,那么这三个人将最终进入他们自己的丛中。对于一些团体,让人们与他们的比赛联手,看看每个人都被这种方式和那样拉。同时了解匹配如何创建链或丛。
现在编写软件来观察丛数。比较团结,例如,“最大的丛有多少人不到一半”?例如,对于N个学生,平均1 / N将绘制自己的名字。
你需要代码吗?
答案 2 :(得分:0)
计算Pi总是很有趣;-)
import random
def approx_pi( n ):
# n random (x,y) pairs (as a generator)
data = ( (random.random(),random.random()) for _ in range(n) )
return 4.0*sum( 1 for x,y in data if x**2 + y**2 < 1 )/n
print approx_pi(100000)