主要包含内容,文件的读取,更改,保存。不同文件夹引入模块。输入,输出操作。随机获取数据操作
随机生成算数表达式,用户输入答案,正确记录分数,错误返回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 ( "谢谢进入,欢迎下次再来!" )
|
文件目录结构,将myPythonFunction.py放到func文件夹中。userScores.txt存放用户名和相应的得分
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:http://blog.csdn.net/u012841667/article/details/53047904