主要包含内容,文件的读取,更改,保存。不同文件夹引入模块。输入,输出操作。随机获取数据操作
随机生成算数表达式,用户输入答案,正确记录分数,错误返回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