脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服务器之家 - 脚本之家 - Python - python实现用户答题功能

python实现用户答题功能

2021-01-05 00:47qq小小布丁 Python

这篇文章主要为大家详细介绍了python实现用户答题功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

python实战,用户答题分享给大家。

主要包含内容,文件的读取,更改,保存。不同文件夹引入模块。输入,输出操作。随机获取数据操作

随机生成算数表达式,用户输入答案,正确记录分数,错误返回0,并把用户分数记录到文本文件中,如用户名不存在着新建用户

myPythonFunction.py包含三个函数

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#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作为主函数

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# -*- 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

延伸 · 阅读

精彩推荐