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爬虫之urllib2中的两个重要概念:Openers和Handlers
Nov 05 Python
Python装饰器decorator用法实例
Nov 10 Python
django基础之数据库操作方法(详解)
May 24 Python
Python算法输出1-9数组形成的结果为100的所有运算式
Nov 03 Python
python字典快速保存于读取的方法
Mar 23 Python
Python一个简单的通信程序(客户端 服务器)
Mar 06 Python
python实现按关键字筛选日志文件
Dec 24 Python
python如何实现不可变字典inmutabledict
Jan 08 Python
python图形开发GUI库pyqt5的详细使用方法及各控件的属性与方法
Feb 14 Python
Pyecharts 动态地图 geo()和map()的安装与用法详解
Mar 25 Python
Python 如何定义匿名或内联函数
Aug 01 Python
4种方法python批量修改替换列表中元素
Apr 07 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数组一对一替换实现代码
2012/08/31 PHP
php实现telnet功能示例
2014/04/08 PHP
简述php环境搭建与配置
2016/12/05 PHP
Laravel5.4简单实现app接口Api Token认证方法
2019/08/29 PHP
jQuery中判断一个元素是否为另一个元素的子元素(或者其本身)
2012/03/21 Javascript
javascript简单性能问题及学习笔记
2014/02/04 Javascript
处理文本部分内容的TextRange对象应用实例
2014/07/29 Javascript
使用AngularJS处理单选框和复选框的简单方法
2015/06/19 Javascript
基于JS实现的随机数字抽签实例
2016/12/08 Javascript
Highcharts+NodeJS搭建数据可视化平台示例
2017/01/01 NodeJs
详谈js中window.location.search的用法和作用
2017/02/13 Javascript
详解nodejs微信公众号开发——1.接入微信公众号
2017/04/10 NodeJs
Angular directive递归实现目录树结构代码实例
2017/05/05 Javascript
JS实现动态给标签控件添加事件的方法示例
2017/05/13 Javascript
高性能的javascript之加载顺序与执行原理篇
2018/01/14 Javascript
JavaScript分步实现一个出生日期的正则表达式
2018/03/22 Javascript
vue源码学习之Object.defineProperty 对数组监听
2018/05/30 Javascript
在vue中解决提示警告 for循环报错的方法
2018/09/28 Javascript
解决微信小程序云开发中获取数据库的内容为空的方法
2019/05/15 Javascript
微信小程序上传图片并等比列压缩到指定大小的实例代码
2019/10/24 Javascript
手把手教您实现react异步加载高阶组件
2020/04/07 Javascript
JavaScript设计模式--简单工厂模式实例分析【XHR工厂案例】
2020/05/23 Javascript
[50:01]Ti4 冒泡赛第二天 NEWBEE vs Titan
2014/07/15 DOTA
简单介绍Ruby中的CGI编程
2015/04/10 Python
Python中用PIL库批量给图片加上序号的教程
2015/05/06 Python
快速了解Python相对导入
2018/01/12 Python
python中redis查看剩余过期时间及用正则通配符批量删除key的方法
2018/07/30 Python
python ChainMap的使用和说明详解
2019/06/11 Python
Python调用.net动态库实现过程解析
2020/06/05 Python
css3 伪元素和伪类选择器详解
2014/09/04 HTML / CSS
俄罗斯便宜的在线服装商店:GroupPrice
2020/04/10 全球购物
五年级语文教学反思
2014/01/30 职场文书
培训自我鉴定
2014/01/31 职场文书
网管求职信
2014/03/03 职场文书
企业承诺书怎么写
2014/05/24 职场文书
2019学校运动会开幕词
2019/05/13 职场文书