Advertisement
Guest User

mathprogram

a guest
Jan 13th, 2016
142
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.71 KB | None | 0 0
  1. from random import randint
  2. from random import choice
  3.  
  4. def main():
  5.     #Get user class
  6.     vClass = raw_input("Enter your class: ")
  7.     vClass = vClass.lower()
  8.  
  9.     #Get file data
  10.     fileName = "%s %s" %(vClass, ".txt")
  11.     fileName = fileName.lower().replace(" ", "")
  12.     f = open(fileName, "a+")
  13.    
  14.     #Count amount of lines in file
  15.     i = 0
  16.     for i, l in enumerate(f, 1):
  17.         pass
  18.  
  19.     #Get users name
  20.     while True:
  21.         vName = raw_input("Enter your name: ")
  22.         if vName.isalpha() == True:                        #Check if entered name is alphanumeric
  23.             vName = vName.title()
  24.             break
  25.         else:
  26.             print("Please enter a valid name!\n")
  27.  
  28.     #Check for user
  29.     count = 0
  30.     for find in range(i):
  31.         data = f.readline()
  32.         if vName in data:
  33.             count+=1
  34.         else:
  35.             found = False
  36.     f.close()
  37.    
  38.     #Has played more than 3 times?
  39.     if count >=3:
  40.         print("You have already played 3 times!")
  41.         return 0
  42.     else:
  43.         score = quiz()
  44.         toWrite = "%s %d" %(vName, score)
  45.         f = open(fileName, "a+")
  46.         f.write(toWrite)
  47.         f.close()
  48.         f = open(fileName, "r")
  49.         i = 0
  50.         for i, l in enumerate(f, 1):
  51.             pass
  52.         f.close()
  53.     sort(fileName, i, toWrite)
  54.  
  55. def quiz():
  56.     score = 0
  57.     opList = ["-","*","+"]
  58.  
  59.     #Test loop
  60.     for test in range(10):
  61.         #Create question
  62.         int1 = randint(1,20)
  63.         int2 = randint(1,20)
  64.         op = choice(opList)
  65.         question = "%d %s %d" %(int1,op,int2)
  66.         answer = int(eval(question))
  67.  
  68.         print"What is: ",question,"?"
  69.         while True:
  70.             try:
  71.                 uAnswer = input(" ")
  72.                 if uAnswer == answer:
  73.                     print("Correct!\n")
  74.                     score+=1
  75.                     break
  76.                 else:
  77.                     print("Incorrect!\n")
  78.                     break
  79.  
  80.             except(ValueError,SyntaxError,NameError):
  81.                 print("Only enter integers!\n")
  82.     return(score)
  83.  
  84. def sort(fileName, i, toWrite):
  85.     print("How do you want to sort the data?\n")
  86.     print("1) Alphabetically")
  87.     print("2) By score")
  88.     while True:
  89.         try:
  90.             sortDirection = input(" ")
  91.             if sortDirection == 1:
  92.                 sortAlpha(fileName, i, toWrite)
  93.                 break
  94.             elif sortDirection == 2:
  95.                 sortNumeric(fileName, i, toWrite)
  96.                 break
  97.             else:
  98.                 print("Please enter a valid option!")
  99.         except(NameError):
  100.             print("Please enter a valid option")
  101.        
  102. def sortAlpha(fileName, i, toWrite):
  103.     pairs = [l.strip().split(" ") for l in open(fileName, "r")]
  104.     pairs.sort(key = lambda name_score: str(name_score[0]))
  105.     "\n".join(name_score[0] + " " + name_score[1] + "\n" for name_score in pairs)
  106.     pairs = str(pairs)
  107.     pairs = pairs.replace("[[","\n").replace("]]","]").replace("]","")
  108.     pairs = pairs.replace(", ","").replace("[", "\n").replace("''", " ").replace("'","")
  109.     f = open(fileName, "a+")
  110.     f.truncate(0)
  111.     f.write(str(pairs))
  112.     f.close()
  113.  
  114. def sortNumeric(fileName, i, toWrite):
  115.     pairs = [l.strip().split(" ") for l in open(fileName, "r")]
  116.     pairs.sort(key = lambda name_score: int(name_score[1]))
  117.     "\n".join(name_score[0] + " " + name_score[1] for name_score in pairs)
  118.     pairs = str(pairs)
  119.     pairs = pairs.replace("[[","").replace("]]","").replace("]","")
  120.     pairs = pairs.replace(", ","").replace("[", "").replace("''", " ").replace("'","")
  121.     f = open(fileName, "a+")
  122.     f.truncate(0)
  123.     f.write(str(pairs)+"\r\n")
  124.     f.close()
  125.    
  126.        
  127. main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement