懂python的帮忙看看这个简单的程序是哪里错了呢?
答案:2 悬赏:30 手机版
解决时间 2021-12-24 13:21
- 提问者网友:动次大次蹦擦擦
- 2021-12-23 17:30
#!/usr/bin/env python from operator import add, sub from random import randint, choice ops = {'+':add,'-':sub} MAXTRIES = 2 def doprob(): op = choice('+-') nums = [randint(1,10) for i in range(2)] nums.sort(reverse = True) ans = ops[op](*nums) pr = '%d %s %d = ' % (num[0],op,nums[1]) oops = 0 while True: try: if int(raw_input(pr)) == ans: print 'correct' break if oops == MAXTRIES: print 'answer \n%s%d' %(pr,ans) else: print 'incorrect... try again' oops += 1 except (KeyboardInterrupt,EOFError,ValueError): print 'invalid input... try again' def main(): while True: doprob() try: opt = raw_input('Again? [y]').lower() if opt and opt[0] == 'n': break except (KeyboardInterrupt,EOFError): break if __name__ == '__main__': main()
最佳答案
- 五星知识达人网友:迷人又混蛋
- 2021-12-23 18:20
from operator import add, sub from random import randint, choice ops = {'+':add,'-':sub} MAXTRIES = 2 def doprob(): op = choice('+-') nums = [randint(1,10) for i in range(2)] nums.sort(reverse = True) ans = ops[op](*nums) pr = '%d %s %d = ' % ( nums[0], op,nums[1]) oops = 0 while True: try: if int(raw_input(pr)) == ans: print 'correct' break if oops == MAXTRIES: print 'answer \n%s%d' %(pr,ans) else: print 'incorrect... try again' oops += 1 except (KeyboardInterrupt,EOFError,ValueError): print 'invalid input... try again' def main(): while True: doprob() try: opt = raw_input('Again? [y]').lower() if opt and opt[0] == 'n': break except (KeyboardInterrupt,EOFError): break if __name__ == '__main__': main() ---------------------------------------------------- 第一个加粗处,变量写错了,改一下就好 第二个加粗处,你缩进错了,break要终止一个循环才合法,你缩进错了,就导致break找不到它要终止的循环。
采纳哦
采纳哦
全部回答
- 1楼网友:骨子里都是戏
- 2021-12-23 19:54
界面设计有一个基本原则,同样适用于tkinter,也就是说界面是单线程的。所以界面的所有事件,如果特别是耗时,不能几毫秒解决。就需要交给后台线程去做。后台线程做完了后就将结果放在一个变量里,再通常消息通知界面刷新。这样界面就不会卡住了。
doevents的原理是。强制停下当前线程,然后处处理一下窗口消息队列里的事件。不过有时候这个方法并不灵,也会出现界面卡死。
所以你绑定了事件,然后触发成功,也执行了。不过你执行的这段代码一直在循环运行,没有很快退出,这样界面当然就没有办法刷新了。
你可以启动一个线程去做你的那件事情。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯