python实现用户答题功能


Posted in Python onJanuary 17, 2018

python实战,用户答题分享给大家。

主要包含内容,文件的读取,更改,保存。不同文件夹引入模块。输入,输出操作。随机获取数据操作

随机生成算数表达式,用户输入答案,正确记录分数,错误返回0,并把用户分数记录到文本文件中,如用户名不存在着新建用户

myPythonFunction.py包含三个函数

#coding=utf-8 
from random import randint 
from os import remove,rename 
 
#function 输入用户名字,获得用户得分,返回得分或者-1 
def getUserScore(userName): 
 try: 
  f = open("userScores.txt","r") 
  msg = f.readline() 
  score=-1; 
  while len(msg): 
   msg = msg.strip('\n') 
   msgArr = msg.split(",") 
   if(msgArr[0]==userName): 
    score = msgArr[1] 
    break 
   msg = f.readline() 
  f.close() 
  return score 
 except IOError: 
  f=open("userScores.txt","w") 
  f.close()  
  return -1 
 
#function 更新或者保存用户名字,用户得分 
def updateUserPoints(userName,score): 
 temp = getUserScore(userName) 
 if(temp==-1): 
  f = open("userScores.txt","a") 
  msg = userName+","+str(score)+"\n" 
  f.write(msg) 
  f.close() 
 else: 
  temp = open("userScores.tmp","w") 
  f = open("userScores.txt","r") 
  msg = f.readline() 
  while len(msg): 
   msg = msg.strip('\n') 
   msgArr = msg.split(",") 
   if(msgArr[0]==userName): 
    msgArr[1] = str(score) 
   temp.write(msgArr[0]+","+msgArr[1]+"\n")  
   msg = f.readline() 
  f.close() 
  temp.close() 
  remove("userScores.txt") 
  rename("userScores.tmp","userScores.txt") 
 
#function 获取随机生成的数学表达式 ,返回字符串   
def getQuestionString(): 
 operandList = [] 
 operatorList = [] 
 operatorDict=("+","-","*","**") 
 questionString = '' 
 for i in range(5): 
  operandList.append(randint(1,9)) 
 for j in range(4): 
  operatorList.append(operatorDict[randint(0,3)]) 
 for k in range(4): 
  questionString += str(operandList[k])+operatorList[k] 
 questionString +=str(operandList[4]) 
 return questionString

mathGame.py作为主函数

# -*- coding:utf-8 -*- 
import sys 
if 'H:\\python\func' not in sys.path: 
 sys.path.append('H:\\python\\func') 
import myPythonFunction as myfunc 
 
 
print("请输入你的名字:") 
use = input() 
use=use.strip("\n") 
count = 0 
if(myfunc.getUserScore(use)==-1): 
 print("你是个新用户!") 
 myfunc.updateUserPoints(use,0) 
else: 
 count = int(myfunc.getUserScore(use)) 
 print("你当前分数为:",count) 
 
while(1): 
 questionString=myfunc.getQuestionString() 
 result = eval(questionString) 
 print("问题:",questionString.replace("**","^")) 
 print("请输入你的答案:") 
 userResult = input() 
 userResult = userResult.strip("\n") 
 flag = True 
 if(userResult.startswith("-")): 
  userResult = userResult[1:] 
  flag = False 
 while((not userResult.isdigit()) and userResult!="exit"): 
  print("请输入数字,你的答案:") 
  userResult = input() 
  userResult = userResult.strip("\n") 
  if(userResult.startswith("-")): 
   userResult = userResult[1:] 
   flag = False 
 if(not flag): 
   userResult = "-"+userResult 
 if(userResult==str(result)): 
  print(1) 
  count = count+1 
 elif("exit"==userResult): 
  break  
 else: 
  print(0) 
myfunc.updateUserPoints(use,count) 
print("你当前分数为:",count) 
print("谢谢进入,欢迎下次再来!")

python实现用户答题功能

文件目录结构,将myPythonFunction.py放到func文件夹中。userScores.txt存放用户名和相应的得分

python实现用户答题功能

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python序列之list和tuple常用方法以及注意事项
Jan 09 Python
python实现基于两张图片生成圆角图标效果的方法
Mar 26 Python
基于wxpython开发的简单gui计算器实例
May 30 Python
python中list常用操作实例详解
Jun 03 Python
关于python pyqt5安装失败问题的解决方法
Aug 08 Python
Python爬虫通过替换http request header来欺骗浏览器实现登录功能
Jan 07 Python
Sanic框架Cookies操作示例
Jul 17 Python
Python通过paramiko远程下载Linux服务器上的文件实例
Dec 27 Python
python 随机生成10位数密码的实现代码
Jun 27 Python
Python学习笔记之Zip和Enumerate用法实例分析
Aug 14 Python
python进程的状态、创建及使用方法详解
Dec 06 Python
Keras - GPU ID 和显存占用设定步骤
Jun 22 Python
python编程培训 python培训靠谱吗
Jan 17 #Python
Python温度转换实例分析
Jan 17 #Python
python3.5+tesseract+adb实现西瓜视频或头脑王者辅助答题
Jan 17 #Python
python+matplotlib绘制3D条形图实例代码
Jan 17 #Python
《Python学习手册》学习总结
Jan 17 #Python
浅谈Python对内存的使用(深浅拷贝)
Jan 17 #Python
Python分支结构(switch)操作简介
Jan 17 #Python
You might like
小偷PHP+Html+缓存
2006/12/20 PHP
PHP 类型转换函数intval
2009/06/20 PHP
php实现的验证码文件类实例
2015/06/18 PHP
PHP操作FTP类 (上传、下载、移动、创建等)
2016/03/31 PHP
php运行报错Call to undefined function curl_init()的最新解决方法
2016/11/20 PHP
PHP自动生成缩略图函数的源码示例
2019/03/18 PHP
使用javascript访问XML数据的实例
2006/12/27 Javascript
IE event.srcElement和FF event.target 功能比较
2010/03/01 Javascript
IE中createElement需要注意的一个问题
2010/07/13 Javascript
使用jQuery validate 验证注册表单实例演示
2013/03/25 Javascript
js获取IP地址的方法小结
2014/07/01 Javascript
NodeJS学习笔记之Http模块
2015/01/13 NodeJs
基于JS实现的倒计时程序实例
2015/07/24 Javascript
实现一个简单的vue无限加载指令方法
2017/01/10 Javascript
jquery中绑定事件的异同
2017/02/28 Javascript
JavaScript的继承实现小结
2017/05/07 Javascript
vue.js选中动态绑定的radio的指定项
2017/06/02 Javascript
JS原生数据双向绑定实现代码
2017/08/14 Javascript
jquery动态赋值id与动态取id方法示例
2017/08/21 jQuery
AngularJS使用$http配置对象方式与服务端交互方法
2018/08/13 Javascript
JS高阶函数原理与用法实例分析
2019/01/15 Javascript
Vuex,iView UI面包屑导航使用扩展详解
2019/11/04 Javascript
vue单应用在ios系统中实现微信分享功能操作
2020/09/07 Javascript
zbar解码二维码和条形码示例
2014/02/07 Python
Django的分页器实例(paginator)
2017/12/01 Python
python爬取Ajax动态加载网页过程解析
2019/09/05 Python
python实现的按要求生成手机号功能示例
2019/10/08 Python
python操作微信自动发消息的实现(微信聊天机器人)
2020/07/14 Python
HTML5之SVG 2D入门11—用户交互性(动画)介绍及应用
2013/01/30 HTML / CSS
新加坡一家在线男士皮具品牌:Faire Leather Co.
2019/12/01 全球购物
linux面试题参考答案(8)
2016/04/19 面试题
个性与发展自我评价
2014/02/11 职场文书
英文推荐信格式范文
2014/05/09 职场文书
行政专员岗位职责范本
2014/08/26 职场文书
2015年店长工作总结范文
2015/04/08 职场文书
社会实践心得体会范文
2016/01/14 职场文书