找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 5477|回复: 3

if _name_=='_main' 求问

3

主题

8

帖子

47

积分

贫民

积分
47
orange160 发表于 2013-6-26 12:27:11 | 显示全部楼层 |阅读模式
from operator import add,sub
from random import randint,choice


ops={'+':add,'-':sub}
mt=2


def doprob():
    op=choice('+-')
    nums=[randint(1,10) for i in range(2)]
    nums.sort(reverse=True)
    ans=op[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==mt:
                print 'answer\n %s %d'%(pr,ans)
            else:
                print 'incorrect...try again'
                oops+=1
        except(KeyboardInterrupt,EOFError,ValueError):
            print 'invalid input...try again'
            


def mian():
    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()




请问上边代码最后两行就是  if __name__=='__main__':   ,但是我不知道是哪出错了。这是书上的原例题,经常看到这行代码,就是不明白问题出在哪了。编译的 时候,输出窗口没有反应。
求大神解疑,谢谢先
回复

使用道具 举报

50

主题

1057

帖子

1108

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1108

活跃会员热心会员最佳导师默默耕耘突出贡献优秀版主荣誉管理论坛元老

blueelwang 发表于 2013-7-2 09:36:23 | 显示全部楼层
查一下python版本,如果书上的实例出错,可能有以下原因:1.你把例子写错了,检查一下,2python版本的问题
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

积分

贫民

积分
0
苍穹123456 发表于 2013-9-14 21:00:46 | 显示全部楼层
#coding=utf-8
\'\'\'
Created on 2013年9月9日

@author: dell-pc
\'\'\'
from operator import  add,sub,mul,div
from random import randint,choice
ops={\'+\':add,\'-\':sub,\'*\':mul,\'/\':div}
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]/Quit?[n]\').lower()
            if opt ==\'y\':
                continue
            elif opt==\'n\':
                break
        except(KeyboardInterrupt,EOFError):
            break
if __name__==\'__main__\':
    main()
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

积分

贫民

积分
0
苍穹123456 发表于 2013-9-14 21:08:54 | 显示全部楼层
你的main函数错了,应该是main  而不是mian  仔细看看哦
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表