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中的异常处理
Apr 28 Python
python中的字典使用分享
Jul 31 Python
基于python中theano库的线性回归
Aug 31 Python
Pandas 重塑(stack)和轴向旋转(pivot)的实现
Jul 22 Python
Python3 批量扫描端口的例子
Jul 25 Python
Python爬取破解无线网络wifi密码过程解析
Sep 17 Python
Django实现文件上传下载功能
Oct 06 Python
PyQt5中多线程模块QThread使用方法的实现
Jan 31 Python
python 实现围棋游戏(纯tkinter gui)
Nov 13 Python
解决numpy和torch数据类型转化的问题
May 23 Python
Python实现Hash算法
Mar 18 Python
Elasticsearch 基本查询和组合查询
Apr 19 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获取指定日期所在月的开始日期与结束日期
2013/08/01 PHP
WordPress迁移时一些常见问题的解决方法整理
2015/11/24 PHP
调用WordPress函数统计文章访问量及PHP原生计数器的实现
2016/03/21 PHP
基于thinkPHP类的插入数据库操作功能示例
2017/01/06 PHP
ThinkPHP框架实现数据增删改
2017/05/07 PHP
Laravel如何使用数据库事务及捕获事务失败后的异常详解
2017/10/23 PHP
PHP实现二维数组中的查找算法小结
2018/06/09 PHP
[IE&FireFox兼容]JS对select操作
2007/01/07 Javascript
Javascript 面向对象 命名空间
2010/05/13 Javascript
推荐20家国外的脚本下载网站
2011/04/28 Javascript
JS实现控制表格单元格垂直对齐的方法
2015/03/30 Javascript
JS组件Bootstrap dropdown组件扩展hover事件
2016/04/17 Javascript
js生成随机数(指定范围)的实例代码
2016/07/10 Javascript
node.js实现登录注册页面
2017/04/08 Javascript
vue2.0中click点击当前li实现动态切换class
2017/06/21 Javascript
AngularJS中下拉框的高级用法示例
2017/10/11 Javascript
使用pm2部署node生产环境的方法步骤
2019/03/09 Javascript
微信小程序select下拉框实现效果
2019/05/15 Javascript
nodejs文件夹深层复制功能
2019/09/03 NodeJs
layui使用form表单实现post请求页面跳转的方法
2019/09/14 Javascript
python 正则表达式 概述及常用字符
2009/05/04 Python
python通过apply使用元祖和列表调用函数实例
2015/05/26 Python
Python使用itchat模块实现群聊转发,自动回复功能示例
2019/08/26 Python
解决python虚拟环境切换无效的问题
2020/04/30 Python
python中常用的数据结构介绍
2021/01/12 Python
Python实现京东抢秒杀功能
2021/01/25 Python
Python使用pyenv实现多环境管理
2021/02/05 Python
python爬虫用request库处理cookie的实例讲解
2021/02/20 Python
台湾网购生鲜第一品牌:i3Fresh爱上新鲜
2017/10/26 全球购物
The North Face北面英国官网:美国著名户外品牌
2017/12/13 全球购物
星空联盟C# .net笔试题
2014/12/05 面试题
vue实现倒计时功能
2021/03/24 Vue.js
服务生自我鉴定
2014/01/22 职场文书
初级党校心得体会
2014/09/11 职场文书
党的群众路线教育实践活动制度建设计划方案
2014/10/31 职场文书
python基于tkinter制作无损音乐下载工具
2021/03/29 Python