首页 > 编程 > Python > 正文

python实现用户答题功能

2019-11-25 15:21:03
字体:
来源:转载
供稿:网友

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存放用户名和相应的得分

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持武林网。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表