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两种遍历字典(dict)的方法比较
May 29 Python
Python 实现一行输入多个值的方法
Apr 21 Python
python+pandas+时间、日期以及时间序列处理方法
Jul 10 Python
python实现小球弹跳效果
May 10 Python
python使用多线程编写tcp客户端程序
Sep 02 Python
python创建学生管理系统
Nov 22 Python
nginx搭建基于python的web环境的实现步骤
Jan 03 Python
Python实现计算长方形面积(带参数函数demo)
Jan 18 Python
使用Numpy对特征中的异常值进行替换及条件替换方式
Jun 08 Python
使用keras实现非线性回归(两种加激活函数的方式)
Jul 05 Python
python 决策树算法的实现
Oct 09 Python
使用numpy实现矩阵的翻转(flip)与旋转
Jun 03 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
Terran历史背景
2020/03/14 星际争霸
一段php加密解密的代码
2006/10/09 PHP
PHP中PDO基础教程 入门级
2011/09/04 PHP
php全排列递归算法代码
2012/10/09 PHP
ThinkPHP提交表单时默认自动转义的解决方法
2014/11/25 PHP
php微信公众号开发之微信企业付款给个人
2018/10/04 PHP
PHP使用POP3读取邮箱接收邮件的示例代码
2020/07/08 PHP
js Event对象的5种坐标
2011/09/12 Javascript
Eval and new funciton not the same thing
2012/12/27 Javascript
jQuery动画animate方法使用介绍
2013/05/06 Javascript
Jquery和JS用外部变量获取Ajax返回的参数值的方法实例(超简单)
2013/06/17 Javascript
js判断上传文件的类型和大小示例代码
2013/10/18 Javascript
js实现数组去重、判断数组以及对象中的内容是否相同
2013/11/29 Javascript
Jquery实现自定义窗口随意的拖拽
2014/03/12 Javascript
JavaScript中的正则表达式简明总结
2014/04/04 Javascript
jquery实现页面虚拟键盘特效
2015/08/08 Javascript
基于Vue.js的表格分页组件
2016/05/22 Javascript
jQuery Easyui Datagrid实现单行的上移下移及保存移动的结果
2016/08/15 Javascript
AngularJS的ng-repeat指令与scope继承关系实例详解
2017/01/21 Javascript
JavaScript轻松创建级联函数的方法示例
2017/02/10 Javascript
nodejs使用express创建一个简单web应用
2017/03/31 NodeJs
Vue.js实现按钮的动态绑定效果及实现代码
2017/08/21 Javascript
JavaScript实现离开页面前提示功能【附jQuery实现方法】
2017/09/26 jQuery
详解vue2.0+axios+mock+axios-mock+adapter实现登陆
2018/07/19 Javascript
详解Vue template 如何支持多个根结点
2020/02/10 Javascript
three.js如何实现3D动态文字效果
2021/03/03 Javascript
浅谈django url请求与数据库连接池的共享问题
2019/08/29 Python
django在保存图像的同时压缩图像示例代码详解
2020/02/11 Python
python3.7.3版本和django2.2.3版本是否可以兼容
2020/09/01 Python
HTML5安全介绍之内容安全策略(CSP)简介
2012/07/10 HTML / CSS
高中军训感言600字
2014/03/11 职场文书
员工试用期自我评价
2014/09/18 职场文书
人事行政助理岗位职责
2015/04/11 职场文书
2016大学生社会实践单位评语
2015/12/01 职场文书
市场营销计划书
2019/04/24 职场文书
教你怎么用Python实现多路径迷宫
2021/04/29 Python