|
|
发表于 2017-3-20 16:34:24
|
显示全部楼层
先发再看好习惯,考虑小数点和负号,用的if比较多
- import random
- fh=['+','-','*','/']
- s=[]
- for i in range(1,100):
- s.append(i)
- print('游戏开始,输入exit退出,若有小数精确到2位以上无误即为对')
- while True:
- tm=str(s[random.randint(0,98)])+fh[random.randint(0,3)]+str(s[random.randint(0,98)])
- da=eval(tm)
- sr=input(tm+'=')
- if sr=='exit':
- break
- elif '.'in sr:
- nsr=sr.replace('.','',1)
- if nsr.isdigit()==0:
- print('输入有误,请重新输入!')
- continue
- else:
- if da==int(da):
- if float(sr)==da:
- print('恭喜答对了')
- continue
- else:
- if float(sr)+0.005>da and da>float(sr)-0.005:
- print('恭喜答对了')
- continue
- else:
- print('回答错误')
- continue
- elif '-'in sr:
- nsr=sr.replace('-','',1)
- if nsr.isdigit()==0:
- print('输入有误,请重新输入!')
- continue
- else:
- if da==int(da):
- if float(sr)==da:
- print('恭喜答对了')
- continue
- else:
- if float(sr)+0.005>da and da>float(sr)-0.005:
- print('恭喜答对了')
- continue
- else:
- print('回答错误')
- continue
- elif sr.isdigit()==0:
- print('输入有误,请重新输入!')
- continue
- else:
- if da==int(da):
- if float(sr)==da:
- print('恭喜答对了')
- continue
- else:
- if float(sr)+0.005>da and da>float(sr)-0.005:
- print('恭喜答对了')
- continue
- else:
- print('回答错误')
- continue
复制代码 |
|