网络编程
位置:首页>> 网络编程>> Python编程>> python实现用户答题功能

python实现用户答题功能

作者:qq小小布丁  发布时间:2022-01-05 21:38:02 

标签: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("谢谢进入,欢迎下次再来!")

python实现用户答题功能

文件目录结构,将myPythonFunction.py放到func文件夹中。userScores.txt存放用户名和相应的得分

python实现用户答题功能

来源:http://blog.csdn.net/u012841667/article/details/53047904

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com