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 图片验证码代码
Dec 07 Python
使用Python的Flask框架来搭建第一个Web应用程序
Jun 04 Python
python 实现自动远程登陆scp文件实例代码
Mar 13 Python
Python中 传递值 和 传递引用 的区别解析
Feb 22 Python
python实现按长宽比缩放图片
Jun 07 Python
Python爬虫爬取新浪微博内容示例【基于代理IP】
Aug 03 Python
wxPython实现分隔窗口
Nov 19 Python
Pycharm内置终端及远程SSH工具的使用教程图文详解
Mar 19 Python
win10安装python3.6的常见问题
Jul 01 Python
安装Anaconda3及使用Jupyter的方法
Oct 27 Python
Python 随机按键模拟2小时
Dec 30 Python
详解OpenCV曝光融合
Apr 29 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得到某段时间区间的时间戳 php定时任务
2012/04/12 PHP
PHP微信开发之文本自动回复
2016/06/23 PHP
动态加载图片路径 保持JavaScript控件的相对独立性
2010/09/06 Javascript
getJSON调用后台json数据时函数被调用两次的原因猜想
2013/09/29 Javascript
JS在IE下缺少标识符的错误
2014/07/23 Javascript
js实现按一下删除键删除整个单词附demo
2014/09/05 Javascript
jquery插件validation实现验证身份证号等
2015/06/04 Javascript
简介JavaScript中的push()方法的使用
2015/06/09 Javascript
延时加载JavaScript代码提高速度
2015/12/27 Javascript
VsCode新建VueJs项目的详细步骤
2017/09/23 Javascript
jQuery 实现左右两侧菜单添加、移除功能
2018/01/02 jQuery
vue生命周期和react生命周期对比【推荐】
2018/09/19 Javascript
js字符串倒序的实例代码
2018/11/30 Javascript
浅析Vue 防抖与节流的使用
2019/11/14 Javascript
[48:48]完美世界DOTA2联赛PWL S3 Magama vs GXR 第一场 12.19
2020/12/24 DOTA
python迭代器与生成器详解
2016/03/10 Python
Python实现视频下载功能
2017/03/14 Python
Python闭包的两个注意事项(推荐)
2017/03/20 Python
详解python之协程gevent模块
2018/06/14 Python
Python中字符串与编码示例代码
2019/05/20 Python
Python qqbot 实现qq机器人的示例代码
2019/07/11 Python
Python IDE Pycharm中的快捷键列表用法
2019/08/08 Python
解决django-xadmin列表页filter关联对象搜索问题
2019/11/15 Python
Python猴子补丁Monkey Patch用法实例解析
2020/03/23 Python
200行python代码实现贪吃蛇游戏
2020/04/24 Python
Python 用__new__方法实现单例的操作
2020/12/11 Python
python 实现图片批量压缩的示例
2020/12/18 Python
pycharm Tab键设置成4个空格的操作
2021/02/26 Python
使用phonegap操作数据库的实现方法
2017/03/31 HTML / CSS
Lookfantastic希腊官网:英国知名美妆购物网站
2018/09/15 全球购物
火箭队口号
2014/06/18 职场文书
超市创意活动方案
2014/08/15 职场文书
民主生活会剖析材料
2014/09/30 职场文书
2014年质检工作总结
2014/11/26 职场文书
寒假生活随笔
2015/08/15 职场文书
《彼得与狼》教学反思
2016/02/20 职场文书