python解题_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("谢谢进入,欢迎下次再来!")

201801171003097.png

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

201801171003098.png

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值