python tkinter库四则运算_python tkinter 编写心理学试验程序干扰任务之四则运算 psychopy...

在训练任务与回忆任务之间,要求被试做4分钟的四则运算,包括20以内的加法、减法和乘法,被试需要输入运算结果。无论被试是否计算正确,皆进入下一题。4分钟的时间到后,结束干扰任务。

考虑到要求被试输入,用psychopy显得繁琐,使用了tkinter来做显示界面。

tkinter是python的自带模块,安装psychopy的计算机可以直接import tkinter来使用它。

# -*- coding: utf-8 -*-

"""

Created on Sun Aug 28 13:51:46 2016

@author: zbg

4分钟的四则运算

被试输入运算结果

无论是否正确,则进入下一题

"""

from Tkinter import * #引入模块

import random

from time import time as gettime

#实验阶段

phase = "pre"

timestart = 0

timelimit = 240

s = ''

ans = ''

def generate():

a = random.randint(1, 20)

b = random.randint(1, 20)

op = ['+', '-', '*'][random.randint(0, 2)]

s = `a` + op + `b`

ans = `eval(s)`

if ans < 0:

s = `b` + op + `a`

ans = `eval(s)`

return (s + '=?', ans)

def submit():

global timestart, s, ans, phase, timelimit

#print gettime() - timestart

if u.get() == '':

return

if phase == "pre":

button.config(text = u"提交")

s, ans = generate()

label.config(text = s)

u.set('')

timestart = gettime()

phase = "run"

elif phase =="run":

if gettime() - timestart > timelimit:

top.destroy()

return

s, ans = generate()

label.config(text = s)

u.set('')

top = Tk()

top.update_idletasks()

top.geometry("800x600")

label=Label(top,text= u'请完成接下来出现的计算题', font='Helvetica -46 bold')

label.pack(fill=X, expand=1)

u = StringVar()

u.set(u"input answer here")

ent = Entry(top, textvariable=u, font='Helvetica -46 bold')

ent.pack()

button = Button(top, text=u"开始", command=submit, default='active', font='Helvetica -46 bold')

button.pack(expand=1)

#top.protocol("WM_DELETE_WINDOW", submit)

top.mainloop()

#实验结束阶段

top2 = Tk()

top2.geometry("600x400")

label=Label(top2,text= u'运算部分实验结束了', font=u'微软雅黑 -46 bold')

label.pack(fill=X, expand=1)

top2.mainloop()

psychopy 定做实验程序 https://item.taobao.com/item.htm?spm=a230r.1.14.6.Q6E2OW&id=530690095131&ns=1&abbucket=15#detail

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值