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下读取公私钥做加解密实例详解
Mar 29 Python
机器学习python实战之手写数字识别
Nov 01 Python
Android基于TCP和URL协议的网络编程示例【附demo源码下载】
Jan 23 Python
python时间日期函数与利用pandas进行时间序列处理详解
Mar 13 Python
Python实现 版本号对比功能的实例代码
Apr 18 Python
python定时按日期备份MySQL数据并压缩
Apr 19 Python
学习python分支结构
May 17 Python
python3.7 sys模块的具体使用
Jul 22 Python
Django ModelForm组件使用方法详解
Jul 23 Python
python GUI库图形界面开发之PyQt5多行文本框控件QTextEdit详细使用方法实例
Feb 28 Python
python 使用cx-freeze打包程序的实现
Mar 14 Python
Python绘图之二维图与三维图详解
Aug 04 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
我的论坛源代码(七)
2006/10/09 PHP
php数组函数序列之array_search()- 按元素值返回键名
2011/11/04 PHP
PHP的加密方式及原理
2012/06/14 PHP
PHP+jQuery 注册模块的改进(三):更新到Smarty3.1
2014/10/14 PHP
学习php设计模式 php实现工厂模式(factory)
2015/12/07 PHP
php使用Header函数,PHP_AUTH_PW和PHP_AUTH_USER做用户验证
2016/05/04 PHP
浅谈PHP值mysql操作类
2016/06/29 PHP
jQuery+jqmodal弹出窗口实现代码分明
2010/06/14 Javascript
js取值中form.all和不加all的区别介绍
2014/01/20 Javascript
用jquery实现动画跳到顶部和底部(这个比较简单)
2014/09/01 Javascript
javascript定义变量时带var与不带var的区别分析
2015/01/12 Javascript
AngularJS转换响应内容
2016/01/27 Javascript
jQuery Easyui加载表格出错时在表格中间显示自定义的提示内容
2016/12/08 Javascript
微信小程序 跳转传参数与传对象详解及实例代码
2017/03/14 Javascript
js实现延迟加载的几种方法
2017/04/24 Javascript
vue路由跳转时判断用户是否登录功能的实现
2017/10/26 Javascript
HTML5+JS+JQuery+ECharts实现异步加载问题
2017/12/16 jQuery
vue自定义键盘信息、监听数据变化的方法示例【基于vm.$watch】
2019/03/16 Javascript
JS浮点数运算结果不精确的Bug解决
2019/08/01 Javascript
js利用递归与promise 按顺序请求数据的方法
2019/08/30 Javascript
JsonServer安装及启动过程图解
2020/02/28 Javascript
[02:45]DOTA2英雄基础教程 伐木机
2013/12/23 DOTA
[01:37]PWL S2开团时刻DAY1&2——这符有毒
2020/11/20 DOTA
Tensorflow 同时载入多个模型的实例讲解
2018/07/27 Python
python3+django2开发一个简单的人员管理系统过程详解
2019/07/23 Python
tensorflow 实现自定义layer并添加到计算图中
2020/02/04 Python
python爬虫实现爬取同一个网站的多页数据的实例讲解
2021/01/18 Python
基于HTML5的WebGL经典3D虚拟机房漫游动画
2017/11/15 HTML / CSS
Amaze UI 文件选择域的示例代码
2020/08/26 HTML / CSS
Conforama瑞士:家具、厨房、电器、装饰
2020/09/06 全球购物
中专毕业生的自我鉴定
2013/12/01 职场文书
军校本科大学生自我评价
2014/01/14 职场文书
教师竞聘上岗演讲稿
2014/09/03 职场文书
2015年党务公开工作总结
2015/05/19 职场文书
旅游投诉信范文
2015/07/02 职场文书
React实现动效弹窗组件
2021/06/21 Javascript