python實戰 使用者答題

2021-07-24 09:25:08 字數 3455 閱讀 7605

主要包含內容,檔案的讀取,更改,儲存。不同資料夾引入模組。輸入,輸出操作。隨機獲取資料操作

隨機生成算數表示式,使用者輸入答案,正確記錄分數,錯誤返回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):

for j in range(4):

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:

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存放使用者名稱和相應的得分

python實現使用者答題功能

python實戰,使用者答題分享給大家。主要包含內容,檔案的讀取,更改,儲存。不同資料夾引入模組。輸入,輸出操作。隨機獲取資料操作 隨機生成算數表示式,使用者輸入答案,正確記錄分數,錯誤返回0,並把使用者分數記錄到文字檔案中,如使用者名稱不存在著新建使用者 mypythonfunction.py包含...

Python答題 LinteCode簡單題庫(一)

366.斐波納契數列 查詢斐波納契數列中第 n 個數。所謂的斐波納契數列是指 前2個數是 0 和 1 第 i 個數是第 i 1 個數和第i 2 個數的和。斐波納契數列的前10個數字是 0,1,1,2,3,5,8,13,21,34 給定 1,返回 0 給定 2,返回 1 給定 10,返回 34 參 d...

Python題庫 簡答題

1.命名空間和作用域的關係 命名空間定義了在某個作用域內變數名和繫結值之間的對應關係,命名空間是鍵值對的集合,變數名與值是一一對應關係。作用域定義了命名空間中的變數能夠在多大範圍內起作用。2.裝飾器函式的作用?寫乙個裝飾器程式 在不修改原函式及其呼叫方式的情況下對原函式功能進行擴充套件。def ou...