我试图生成随机数组。我的实验中有 x 轮。我想在每一轮中显示不同的图片,并且图片以随机顺序出现。 我试图在models.py中嵌入一些python代码来做到这一点,但我没有得到任何地方。
答案 0 :(得分:0)
有点天真但可行的方法是:
models.py
中的:
import random
class Constants(BaseConstants):
imgs = ['img1.jpg', 'img2.jpg', 'img3.jpg',]
class Subsession(BaseSubsession):
def creating_session(self):
if self.round_number == 1:
for p in self.session.get_participants():
imgs = Constants.imgs.copy()
random.shuffle(imgs)
p.vars['images'] = imgs
pages.py
中的:
class MyPage(Page):
def vars_for_template(self):
image = self.participant.vars['images'][self.round_number - 1]
return {'img_to_show': image}
就是这样:每个参与者都有一个单独的随机图像显示在每一轮中,以后您可以在此页面的模板上使用
PS:我称这种方法是天真的,因为稍微复杂一点的方法是访问存储图像的文件夹,并获得与游戏中轮次数相对应的子集。但有时这种直接方法更容易出错。