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爬虫入门教程--快速理解HTTP协议(一)
May 25 Python
Python生成器以及应用实例解析
Feb 08 Python
Python实现Kmeans聚类算法
Jun 10 Python
python设置环境变量的原因和方法
Jun 24 Python
python 进程的几种创建方式详解
Aug 29 Python
Python3使用PySynth制作音乐的方法
Sep 09 Python
python使用正则来处理各种匹配问题
Dec 22 Python
python使用numpy实现直方图反向投影示例
Jan 17 Python
vscode写python时的代码错误提醒和自动格式化的方法
May 07 Python
Python OrderedDict字典排序方法详解
May 21 Python
MxNet预训练模型到Pytorch模型的转换方式
May 25 Python
keras 使用Lambda 快速新建层 添加多个参数操作
Jun 10 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作的文本留言本的例子(二)
2006/10/09 PHP
第4章 数据处理-php数组的处理-郑阿奇
2011/07/04 PHP
php自定义的格式化时间示例代码
2013/12/05 PHP
PHP生成指定长度随机数最简洁的方法
2014/07/14 PHP
PHP图片处理之使用imagecopy函数添加图片水印实例
2014/11/19 PHP
2款PHP无限级分类实例代码
2015/11/11 PHP
Yii2 queue的队列使用详解
2019/07/19 PHP
javascript 多种搜索引擎集成的页面实现代码
2010/01/02 Javascript
input的focus方法使用
2010/03/13 Javascript
jQuery版仿Path菜单效果
2011/12/15 Javascript
js实现支持手机滑动切换的轮播图片效果实例
2015/04/29 Javascript
JS实现带关闭功能的阿里妈妈网站顶部滑出banner工具条代码
2015/09/17 Javascript
JavaScript实现显示函数调用堆栈的方法
2016/04/21 Javascript
JavaScript禁止用户多次提交的两种方法
2016/07/24 Javascript
清除js缓存的多种方法总结
2016/12/09 Javascript
浅谈原型对象的常用开发模式
2017/07/22 Javascript
基于node.js express mvc轻量级框架实践
2017/09/14 Javascript
vue中axios实现数据交互与跨域问题
2019/05/12 Javascript
[02:43]DOTA2英雄基础教程 圣堂刺客
2013/12/09 DOTA
Python qqbot 实现qq机器人的示例代码
2019/07/11 Python
python 通过邮件控制实现远程控制电脑操作
2020/03/16 Python
eBay澳大利亚站:eBay.com.au
2018/02/02 全球购物
仓库规划计划书
2014/04/28 职场文书
企业承诺书怎么写
2014/05/24 职场文书
健康教育评估方案
2014/05/25 职场文书
文秘专业应届生求职信
2014/05/26 职场文书
应届大专生求职信
2014/06/26 职场文书
“四风”查摆问题自我剖析材料
2014/09/27 职场文书
医院领导班子整改方案
2014/10/01 职场文书
关于颐和园的导游词
2015/01/30 职场文书
教师党员个人自我评价
2015/03/04 职场文书
婚礼父母致辞
2015/07/28 职场文书
网吧管理制度范本
2015/08/05 职场文书
2016年法制宣传月活动总结
2016/04/01 职场文书
导游词之无锡华莱坞
2019/12/02 职场文书
《Estab Life》4月6日播出 正式PV、主视觉图公开
2022/03/20 日漫