Josh Shirtliff
Josh Shirtliff

Reputation: 63

How to write to file with Python?

How would I write the scores to a file?

import random
score=0
question=0
for i in range(10):
       num1= random.randint(1,10)
       num2= random.randint(1,10)
       ops = ['+', '-', '*']
       operation = random.choice(ops)
       Q = int(input(str(num1)+operation+str(num2)))

       if operation =='+':
              answer=num1+num2
              if Q == answer:
                     print ("correct")
                     score=score+1

              else:
                     print('You Fail')

       elif operation =='-':
              answer=num1-num2
              if Q == answer:
                     print ("correct")
                     score=score+1
              else:
                     print("you fail")

       else:
              answer=num1*num2
              if Q == answer:
                     print ("correct")
                     score=score+1
              else:
                     print("you fail")
print("thank you for playing your score is",score)

Upvotes: 6

Views: 2536

Answers (3)

SirParselot
SirParselot

Reputation: 2700

You can manually open and close a file but it is better to use with since it handles closing the file for you.

with open("score_file.txt",'a') as f:
    f.write(score)

'a' means append to file which does not overwrite the previous contents - this is what you are probably looking for. From what I can tell you are going to want to add this after the print statement or right before. If you don't understand reading and writing to files, then you should check out this link.

Upvotes: 4

tornesi
tornesi

Reputation: 269

Here is an example of your code with opening and writing to a file.

import random

score = 0
question = 0
output = open('my_score', 'a')
for i in range(10):
   num1 = random.randint(1, 10)
   num2 = random.randint(1, 10)
   ops = ['+', '-', '*']
   operation = random.choice(ops)
   Q = int(input(str(num1) + operation + str(num2)))

   if operation == '+':
       answer = num1 + num2
       if Q == answer:
           print("correct")
           score += 1

       else:
           print('You Fail')

   elif operation == '-':
       answer = num1 - num2
       if Q == answer:
           print("correct")
           score += 1
       else:
           print("you fail")
   else:
       answer = num1 * num2
       if Q == answer:
           print("correct")
           score += 1
       else:
           print("you fail")

print("thank you for playing your score is", score)
output.write(score)
output.close()

Upvotes: 0

tombam95
tombam95

Reputation: 343

This is how you open and write to a file :

# Open a file
fo = open("foo.txt", "w") # Creates a file object 'fo'
fo.write("Output text goes here")

# Close opened file (good practice)
fo.close()

Upvotes: 1

Related Questions