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中apply函数的用法实例教程
Jul 31 Python
python数据结构之图的实现方法
Jul 08 Python
Python中列表和元组的使用方法和区别详解
Dec 30 Python
python实现实时监控文件的方法
Aug 26 Python
Tensorflow使用tfrecord输入数据格式
Jun 19 Python
python3爬取数据至mysql的方法
Jun 26 Python
解决python中使用plot画图,图不显示的问题
Jul 04 Python
python中使用ctypes调用so传参设置遇到的问题及解决方法
Jun 19 Python
利用python-pypcap抓取带VLAN标签的数据包方法
Jul 23 Python
Python Selenium实现无可视化界面过程解析
Aug 25 Python
利用django创建一个简易的博客网站的示例
Sep 29 Python
python numpy中multiply与*及matul 的区别说明
May 26 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基础知识:类与对象(1)
2006/12/13 PHP
thinkphp模板输出技巧汇总
2014/11/24 PHP
PHP中SimpleXML函数用法分析
2014/11/26 PHP
基于ThinkPHP实现批量删除
2015/12/18 PHP
理清PHP在Linxu下执行时的文件权限方法
2017/06/07 PHP
PHP attributes()函数讲解
2019/02/03 PHP
Laravel 已登陆用户再次查看登陆页面的自动跳转设置方法
2019/09/30 PHP
javascript正则表达式定义(语法)总结
2016/01/08 Javascript
jQuery点击其他地方时菜单消失的实现方法
2016/04/22 Javascript
基于JS实现类似支付宝支付密码输入框
2016/09/02 Javascript
Bootstrap框架实现广告轮播效果
2016/11/28 Javascript
Vue.js实现网格列表布局转换方法
2017/08/25 Javascript
详解Vue中数组和对象更改后视图不刷新的问题
2018/09/21 Javascript
详解mpvue scroll-view自动回弹bug解决方案
2018/10/01 Javascript
Vue.js子组件向父组件通信的方法实例代码详解
2018/12/10 Javascript
Promise扫盲贴
2019/06/24 Javascript
jQuery实现input[type=file]多图预览上传删除等功能
2019/08/02 jQuery
JQuery使用属性addClass、removeClass和toggleClass实现增加和删除类操作示例
2019/11/18 jQuery
python操作文件的参数整理
2019/06/11 Python
浅谈Python3 numpy.ptp()最大值与最小值的差
2019/08/24 Python
Pandas数据离散化原理及实例解析
2019/11/16 Python
JAVA及PYTHON质数计算代码对比解析
2020/06/10 Python
python 6种方法实现单例模式
2020/12/15 Python
详解css3自定义滚动条样式写法
2017/12/25 HTML / CSS
CSS3与动画有关的属性transition、animation、transform对比(史上最全版)
2017/08/18 HTML / CSS
Wiggle澳大利亚:自行车、跑步、游泳商店
2020/11/07 全球购物
平面设计岗位职责
2013/12/14 职场文书
英文简历中的自荐信范文
2013/12/14 职场文书
上班上网检讨书
2014/01/29 职场文书
爱心捐书活动总结
2014/07/05 职场文书
2014年车间主任工作总结
2014/12/10 职场文书
人间正道是沧桑观后感
2015/06/15 职场文书
一封真诚的自荐信帮你赢得机会
2019/05/07 职场文书
jQuery ajax - getScript() 方法和getJSON方法
2021/05/14 jQuery
MySQL中utf8mb4排序规则示例
2021/08/02 MySQL
对讲机的最大通讯距离是多少
2022/02/18 无线电