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中的choice()方法使用详解
May 15 Python
Python中List.index()方法的使用教程
May 20 Python
Python编写一个闹钟功能
Jul 11 Python
Python reduce()函数的用法小结
Nov 15 Python
Python实现简单文本字符串处理的方法
Jan 22 Python
python微信公众号之关键词自动回复
Jun 15 Python
python生成1行四列全2矩阵的方法
Aug 04 Python
使用python获取电脑的磁盘信息方法
Nov 01 Python
python的等深分箱实例
Nov 22 Python
python+selenium+chrome批量文件下载并自动创建文件夹实例
Apr 27 Python
使用python爬取抖音app视频的实例代码
Dec 01 Python
Python Matplotlib绘制动画的代码详解
May 30 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
怎么样可以把 phpinfo()屏蔽掉?
2006/11/24 PHP
访问编码后的中文URL返回404错误的解决方法
2014/08/20 PHP
php缓冲输出实例分析
2015/01/05 PHP
php中this关键字用法分析
2016/12/07 PHP
jQuery select控制插件
2009/08/17 Javascript
浅析document.createDocumentFragment()与js效率
2013/07/08 Javascript
jQuery动态改变图片显示大小(修改版)的实现思路及代码
2013/12/24 Javascript
JavaScript继承基础讲解(原型链、借用构造函数、混合模式、原型式继承、寄生式继承、寄生组合式继承)
2014/08/16 Javascript
js的[defer]和[async]属性
2014/11/24 Javascript
jQuery简单几行代码实现tab切换
2015/03/10 Javascript
javascript实现拖动元素交换位置
2015/11/29 Javascript
jqGrid中文文档之选项设置
2015/12/02 Javascript
Bootstrap入门书籍之(三)栅格系统
2016/02/17 Javascript
详解react-redux插件入门
2018/04/19 Javascript
使用vue-router完成简单导航功能【推荐】
2018/06/28 Javascript
解决Vue2.0 watch对象属性变化监听不到的问题
2018/09/11 Javascript
解决IE11 vue +webpack 项目中数据更新后页面没有刷新的问题
2018/09/25 Javascript
微信小程序上传文件到阿里OSS教程
2019/05/20 Javascript
JS实现页面鼠标点击出现图片特效
2020/08/19 Javascript
[01:04]DOTA2上海特锦赛现场采访 FreeAgain遭众解说围攻
2016/03/25 DOTA
Python算法应用实战之栈详解
2017/02/04 Python
Python编程之基于概率论的分类方法:朴素贝叶斯
2017/11/11 Python
python2.7读取文件夹下所有文件名称及内容的方法
2018/02/24 Python
详解python实现识别手写MNIST数字集的程序
2018/08/03 Python
python3+PyQt5 自定义窗口部件--使用窗口部件样式表的方法
2019/06/26 Python
PyQt5实现仿QQ贴边隐藏功能的实例代码
2020/05/24 Python
如何一键升级Python所有包
2020/11/05 Python
CSS3 transform的skew属性值图文详解
2014/07/21 HTML / CSS
Html5原创俄罗斯方块(基于canvas)
2019/01/07 HTML / CSS
专业销售业务员求职信
2013/11/18 职场文书
前厅收银主管岗位职责
2014/02/04 职场文书
儿童生日会策划方案
2014/05/15 职场文书
村容村貌整治方案
2014/05/21 职场文书
意向书范本
2014/07/29 职场文书
校本课程教学计划
2015/01/19 职场文书
遗失说明具结保证书
2015/02/26 职场文书