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类继承用法实例分析
May 27 Python
十条建议帮你提高Python编程效率
Feb 16 Python
Python制作刷网页流量工具
Apr 23 Python
Python字符串处理实现单词反转
Jun 14 Python
你眼中的Python大牛 应该都有这份书单
Oct 31 Python
python筛选出两个文件中重复行的方法
May 31 Python
dataframe 按条件替换某一列中的值方法
Jan 29 Python
python操作文件的参数整理
Jun 11 Python
使用pyecharts生成Echarts网页的实例
Aug 12 Python
python对一个数向上取整的实例方法
Jun 18 Python
keras:model.compile损失函数的用法
Jul 01 Python
django中cookiecutter的使用教程
Dec 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
DedeCMS dede_channeltype表字段注释
2010/04/07 PHP
第六章 php目录与文件操作
2011/12/30 PHP
php中eval函数的危害与正确禁用方法
2014/06/30 PHP
PHP结合Jquery和ajax实现瀑布流特效
2016/01/07 PHP
php fread读取文件注意事项
2016/09/24 PHP
php 静态属性和静态方法区别详解
2017/04/09 PHP
NiftyCube——轻松实现圆角边框
2007/02/20 Javascript
关于javascript document.createDocumentFragment()
2009/04/04 Javascript
JQuery 绑定事件时传递参数的实现方法
2009/10/13 Javascript
页面加载完毕后滚动条自动滚动一定位置
2014/02/20 Javascript
JavaScript避免代码的重复执行经验技巧分享
2014/04/17 Javascript
JavaScript中的索引数组、关联数组和静态数组、动态数组讲解
2014/11/08 Javascript
javascript数组随机排序实例分析
2015/07/22 Javascript
在JavaScript中模拟类(class)及类的继承关系
2016/05/20 Javascript
seajs学习之模块的依赖加载及模块API的导出
2016/10/20 Javascript
微信小程序开发之Tabbar实例详解
2017/01/09 Javascript
老生常谈javascript的面向对象思想
2017/08/22 Javascript
Angularjs实现数组随机排序的方法
2018/10/02 Javascript
JavaScript定时器常见用法实例分析
2019/11/15 Javascript
ES11屡试不爽的新特性,你用上了几个
2020/10/21 Javascript
解决vue elementUI 使用el-select 时 change事件的触发问题
2020/11/17 Vue.js
[04:02]DOTA2上海特锦赛小组赛第二日recap精彩回顾
2016/02/28 DOTA
Python使用pymongo库操作MongoDB数据库的方法实例
2019/02/22 Python
Autopep8的使用(python自动编排工具)
2021/03/02 Python
CSS3提交意见输入框样式代码
2014/10/30 HTML / CSS
基于CSS3实现的黑色个性导航菜单效果
2015/09/14 HTML / CSS
春节晚会主持词
2014/03/24 职场文书
公司股东出资证明书
2014/11/01 职场文书
单身证明格式样本
2015/06/15 职场文书
行政处罚告知书
2015/07/01 职场文书
2015年教学副校长工作总结
2015/07/22 职场文书
青年志愿者活动感想
2015/08/07 职场文书
高二化学教学反思
2016/02/22 职场文书
浙江省杭州市平均工资标准是多少?
2019/07/09 职场文书
Python 制作自动化翻译工具
2021/04/25 Python
《杜鹃的婚约》OP主题曲「凸凹」无字幕影像公开
2022/04/08 日漫