python实现用户答题功能
Python  /  管理员 发布于 7年前   374
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存放用户名和相应的得分
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号