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("谢谢进入,欢迎下次再来!")
文件目录结构,将myPythonFunction.py放到func文件夹中。userScores.txt存放用户名和相应的得分
来源:http://blog.csdn.net/u012841667/article/details/53047904


猜你喜欢
- 先看一段HTML代码,在下边这段代码中,这张图片的宽度未知,我想写在CSS中写一行限制最大宽度为50px:<div id=&
- 看着自己少得可怜的访问量,突然有一个想用爬虫刷访问量的想法,主要也是抱着尝试的心态,学习学习。其实市面上有一些软件可以代刷流量 比如 流量精
- mysql的字符集设置有多个层级,在mysql中存储中文,如果不能正确设置字符集,很容易出现数据乱码。今天就有一个用户反馈他数据库中的数据下
- 我是闲的没事干,2014过的太浮夸了,博客也没写几篇,哎~~~ 用这篇来记录即将逝去的2014python对各种数据库的各种操作满大街都是,
- 第二次修改models.py以后再次python manage.py makemigrations提示如下You are trying to
- 前言:如果使用进到的日志文件方法:logging.FileHandler,会导致日志信息全部存放在一个日志文件中,不利于后面对日志文件的使用
- 在许多场合,你将不得不编写必须处理时间的代码。你可以写一个时钟程序,或者在你的代码中测量两点之间的时间差。无论是哪种方式,知道如何在Go中处
- 近期线上出现一个bug,研发的小伙伴把测试环境的地址写死到代码中,在上线前忘记修改,导致线上发布的代码中使用了测试环境地址。开发过程中虽然有
- 乱码问题如下:导致问题产生的原因很简单,无非是命令行的编码和MySQL内部设置的编码出现了偏差。我们右键属性查看以下命令行的编码方式是GBK
- 第一种import win32clipboardimport time#速度快 容易出错class niubi(): def l
- 前言SQLite是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。它是一个零配置的数据库,这意味着与其
- 1.游标方式 代码如下:DECLARE @Data NVARCHAR(max) SET @Data='1,tanw,2,
- 影响用户访问的最大部分是前端的页面。网站的划分一般为二:前端和后台。我们可以理解成后台是用来实现网站的功能的,比如:实现用户注册,用户能够为
- 概要在调用第三方 API 的时候, 基本都有访问限速的限制条件. 第三方的 API 有多个的时候, 就不太好控制访问速度, 常常会导致 HT
- 队、栈和链表一样,在数据结构中非常基础一种数据结构,同样他们也有各种各样、五花八门的变形和实现方式。但不管他们形式上怎么变,队和栈都有其不变
- 直接update的弊端最近做一个需求,更新3w条数据,一个一个update去更新的,结果花了80分钟,这样性能上很差,也容易阻塞,所以就找了
- 上传图片: if (!empty($_FILES["img"]["name"])) { //提取文件
- 在本章中,我们将详细讨论对称和非对称密码术.对称密码术在此类型中,加密和解密进程使用相同的密钥.它也被称为秘密密钥加密.对称加密的主要特征如
- 说明Python语言中列表(List)与其他语言的数组(Array)类似,是一种有序的集合数据结构,Python List可支持各种数据类型
- 前一段时间完成了一个数据可视化项目,由后台NodeJS+Highcharts框架进行搭建。下面分享一下整个开发过程的流程,以及使用Highc