python实现用户答题功能
作者:qq小小布丁
这篇文章主要为大家详细介绍了python实现用户答题功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
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("谢谢进入,欢迎下次再来!")
文件目录结构,将myPythonFunction.py放到func文件夹中。userScores.txt存放用户名和相应的得分
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。