我是python(psychoPy)的新手,我有这个脚本,我希望它重复三次:
i = 0
while i < 4:
import random
win.setMouseVisible(False)
this_target = random.choice(first)
if this_target == 1:
k = 0
location = []
tloc = random.randint(0, 7)
tloc = str(tloc)
location.append(tloc)
gap.setPos(left_gap[tloc, : ])
squarer.setPos(ranpos[tloc, : ])
squarer.draw()
gap.draw()
while k < 4:
loc = random.randint(0, 7)
loc = str(loc)
if loc not in location: location.append(loc)
else:
continue
squareg.setPos(ranpos[loc, : ])
squareg.draw()
dist_side = random.randint(1, 2)
if dist_side == 1:
gap.setPos(left_gap[loc, : ])
gap.draw()
elif dist_side==2:
gap.setPos(right_gap[loc, : ])
gap.draw()
k+=1
elif this_target == 2:
k = 0
location = []
tloc = random.randint(0, 7)
tloc = str(tloc)
location.append(tloc)
gap.setPos(right_gap[tloc, : ])
squareg.setPos(ranpos[tloc, : ])
squareg.draw()
gap.draw()
while k < 4:
loc = random.randint(0, 7)
loc = str(loc)
if loc not in location: location.append(loc)
else:
continue
squarer.setPos(ranpos[loc, : ])
squarer.draw()
dist_side = random.randint(1, 2)
if dist_side == 1:
gap.setPos(left_gap[loc, : ])
gap.draw()
elif dist_side==2:
gap.setPos(right_gap[loc, : ])
gap.draw()
k+=1
win.flip()
resp = event.waitKeys(keyList = ['z', 'm', 'q'])
fix.draw()
win.flip()
core.wait(2) #accio
this_target = random.choice(first)
if this_target == 1:
k = 0
location = []
tloc = random.randint(0, 7)
tloc = str(tloc)
location.append(tloc)
gap.setPos(left_gap[tloc, : ])
squarer.setPos(ranpos[tloc, : ])
squarer.draw()
gap.draw()
while k < 4:
loc = random.randint(0, 7)
loc = str(loc)
if loc not in location: location.append(loc)
else:
continue
squareg.setPos(ranpos[loc, : ])
squareg.draw()
dist_side = random.randint(1, 2)
if dist_side == 1:
gap.setPos(left_gap[loc, : ])
gap.draw()
elif dist_side==2:
gap.setPos(right_gap[loc, : ])
gap.draw()
k+=1
elif this_target == 2:
k = 0
location = []
tloc = random.randint(0, 7)
tloc = str(tloc)
location.append(tloc)
gap.setPos(right_gap[tloc, : ])
squareg.setPos(ranpos[tloc, : ])
squareg.draw()
gap.draw()
while k < 4:
loc = random.randint(0, 7)
loc = str(loc)
if loc not in location: location.append(loc)
else:
continue
squarer.setPos(ranpos[loc, : ])
squarer.draw()
dist_side = random.randint(1, 2)
if dist_side == 1:
gap.setPos(left_gap[loc, : ])
gap.draw()
elif dist_side==2:
gap.setPos(right_gap[loc, : ])
gap.draw()
k+=1
win.flip()
resp = event.waitKeys(keyList = ['z', 'm', 'q'])
i+=1
next_trial.draw()
win.flip()
event.waitKeys(keyList = ['space'])
if resp == ['q']:
core.quit()
win.close()
begin.draw()
win.flip()
event.waitKeys(keyList = ['space'])
是否有一个脚本我可以添加到开头以使其重复?任何帮助将不胜感激。
答案 0 :(得分:2)
为什么你不能把它全部包含在for循环中? - 可能想要改变导入的位置......
import random
def cool_function_bro():
i = 0
while i < 4:
win.setMouseVisible(False)
this_target = random.choice(first)
if this_target == 1:
k = 0
location = []
tloc = random.randint(0, 7)
tloc = str(tloc)
location.append(tloc)
gap.setPos(left_gap[tloc, : ])
squarer.setPos(ranpos[tloc, : ])
squarer.draw()
gap.draw()
while k < 4:
loc = random.randint(0, 7)
loc = str(loc)
if loc not in location: location.append(loc)
else:
continue
squareg.setPos(ranpos[loc, : ])
squareg.draw()
dist_side = random.randint(1, 2)
if dist_side == 1:
gap.setPos(left_gap[loc, : ])
gap.draw()
elif dist_side==2:
gap.setPos(right_gap[loc, : ])
gap.draw()
for i in range(3):
cool_function_bro()
答案 1 :(得分:0)
你可以使用:
从shell运行1次运行脚本如果您使用的是Linux,则可以运行:
for i in {1..3}; do python script.py; done
2 - 将代码放入函数中并运行3次:
def test_func():
# put your code here
for i in range(3):
test_func()
3-将您的代码置于循环
之下for i in range(3):
# put your code here