Posts: 11
Threads: 1
Joined: Oct 2020
so... i applied your code and now i have another error:
import sys
print("**********************")
print("*welcome to QuizWorld*")
print("**********************")
print(" v.1.0.0 ")
print("rules: Do not cheat each answer will give you 5 points, if you get more then 15 points you win if you get less you loose, after you win or lose go check out your answers and final points on lista risultati or punteggio finale")
def yes():
a = input("do you want to play? ")
if a == "yes":
del a
print("ok, so first question")
print("whats the capital of italy?")
a = input("answer: ")
if a == "rome":
print("correct")
a1 = 5
with open("lista risultati.txt", 'w') as f:
f.write(str(a1) + '\n')
else:
a1 = 0
print("wrong")
with open("lista risultati.txt", 'w') as f:
f.write(str(a1) + '\n')
f.close
print("second question")
print("1*2*3*4*5*6*7*8*9*0*1*1*0*1")
b = input("answer: ")
if b == 0:
print("correct")
b1 = 5
with open("lista risultati.txt", 'a') as f:
f.append(str(b1) + '\n')
else:
b1 = 0
print("wrong")
with open("lista risultati.txt", 'a') as f:
f.append(str(b1) + '\n')
f.close
print("third question")
print("does it weight more 1 pound of steel or 1 pound of feathers")
c = input("answer: ")
if c == "they weight the same":
print("correct")
c1 = 5
with open("lista risultati.txt", 'a') as f:
f.append(str(c1) + '\n')
else:
c1 = 0
print("wrong")
with open("lista risultati.txt", 'a') as f:
f.append(str(c1) + '\n')
f.close
print("FINAL question")
print("is this program good?")
d = input("answer: ")
if d == "yes":
print("correct")
d1 = 5
with open("lista risultati.txt", 'a') as f:
f.append(str(d1) + '\n')
else:
d1 = 0
print("wrong")
with open("lista risultati.txt", 'a') as f:
f.append(str(d1) + '\n')
f.close
e = a1 + b1 + c1 + d1
with open("risultato finale.txt", 'w') as n:
f1.write(str(e)
n.close
r = open("risultato finale.txt", "r")
if r >= 15:
print("testing results...")
print("BRAVO, you have winned the game")
else:
print("testing results...")
print("you have lost the game")
elif a == "no":
sys.exit("you said to do it")
else:
print("!!ERROR: you need to enter yes or no. !!")
yes()
yes() Error: File "C:\Users\Shishi\Desktop\QuizWorld\risultati\game.py", line 74 n.close
invalid syntax
Posts: 151
Threads: 3
Joined: Apr 2020
Oct-15-2020, 02:05 PM
(This post was last modified: Oct-15-2020, 02:05 PM by GOTO10.)
(Oct-15-2020, 01:17 PM)Shishi Wrote: ok, so with line 30 i need to do something like this if b == "0" ?
Correct. Just don't forget to end with a colon after the final quotation mark.
(Oct-15-2020, 01:47 PM)Shishi Wrote: so... i applied your code and now i have another error:
That's one of those missing parentheses I warned you about. You need an additional closing parenthesis on line 73.
One other thing I just noticed... When you are appending to a file, you still need to use f.write(), not f.append() (as in line 34 for example). The data you write is automatically appended because you have opened the file in append mode using 'a' in the open() call.
Posts: 11
Threads: 1
Joined: Oct 2020
ok, so the program is running only that when i get to the last part it says:
Error: Traceback (most recent call last):
File "C:\Users\Erminia\Desktop\QuizWorld\risultati\game.py", line 93, in <modu
le>
yes()
File "C:\Users\Erminia\Desktop\QuizWorld\risultati\game.py", line 73, in yes
f1.write(str(e))
NameError: name 'f1' is not defined
the code is: import sys
print("**********************")
print("*welcome to QuizWorld*")
print("**********************")
print(" v.1.0.0 ")
print("rules: Do not cheat each answer will give you 5 points, if you get more then 15 points you win if you get less you loose, after you win or lose go check out your answers and final points on lista risultati or punteggio finale")
def yes():
a = input("do you want to play? ")
if a == "yes":
del a
print("ok, so first question")
print("whats the capital of italy?")
a = input("answer: ")
if a == "rome":
print("correct")
a1 = 5
with open("lista risultati.txt", 'w') as f:
f.write(str(a1) + '\n')
else:
a1 = 0
print("wrong")
with open("lista risultati.txt", 'w') as f:
f.write(str(a1) + '\n')
f.close
print("second question")
print("1*2*3*4*5*6*7*8*9*0*1*1*0*1")
b = input("answer: ")
if b == "0":
print("correct")
b1 = 5
with open("lista risultati.txt", 'a') as f:
f.write(str(b1) + '\n')
else:
b1 = 0
print("wrong")
with open("lista risultati.txt", 'a') as f:
f.write(str(b1) + '\n')
f.close
print("third question")
print("does it weight more 1 pound of steel or 1 pound of feathers")
c = input("answer: ")
if c == "they weight the same":
print("correct")
c1 = 5
with open("lista risultati.txt", 'a') as f:
f.write(str(c1) + '\n')
else:
c1 = 0
print("wrong")
with open("lista risultati.txt", 'a') as f:
f.write(str(c1) + '\n')
f.close
print("FINAL question")
print("is this program good?")
d = input("answer: ")
if d == "yes":
print("correct")
d1 = 5
with open("lista risultati.txt", 'a') as f:
f.write(str(d1) + '\n')
else:
d1 = 0
print("wrong")
with open("lista risultati.txt", 'a') as f:
f.write(str(d1) + '\n')
f.close
e = a1 + b1 + c1 + d1
with open("risultato finale.txt", 'w') as n:
f1.write(str(e))
n.close
r = open("risultato finale.txt", "r")
if r >= 15:
print("testing results...")
print("BRAVO, you have winned the game")
else:
print("testing results...")
print("you have lost the game")
elif a == "no":
sys.exit("you said to do it")
else:
print("!!ERROR: you need to enter yes or no. !!")
yes()
yes()
Posts: 151
Threads: 3
Joined: Apr 2020
Look at lines 72 through 74. You open the file as n , then do f1.write() . It should be apparent why that doesn't work.
Posts: 11
Threads: 1
Joined: Oct 2020
right sorry, ok thats now fixed but now it gives me this message
Error: Traceback (most recent call last):
File "C:\Users\Erminia\Desktop\QuizWorld\risultati\game.py", line 93, in <modu
le>
yes()
File "C:\Users\Erminia\Desktop\QuizWorld\risultati\game.py", line 78, in yes
if r >= "15":
TypeError: '>=' not supported between instances of '_io.TextIOWrapper' and 'str'
the code is the same but i will repost it just in case
import sys
print("**********************")
print("*welcome to QuizWorld*")
print("**********************")
print(" v.1.0.0 ")
print("rules: Do not cheat each answer will give you 5 points, if you get more then 15 points you win if you get less you loose, after you win or lose go check out your answers and final points on lista risultati or punteggio finale")
def yes():
a = input("do you want to play? ")
if a == "yes":
del a
print("ok, so first question")
print("whats the capital of italy?")
a = input("answer: ")
if a == "rome":
print("correct")
a1 = 5
with open("lista risultati.txt", 'w') as f:
f.write(str(a1) + '\n')
else:
a1 = 0
print("wrong")
with open("lista risultati.txt", 'w') as f:
f.write(str(a1) + '\n')
f.close
print("second question")
print("1*2*3*4*5*6*7*8*9*0*1*1*0*1")
b = input("answer: ")
if b == "0":
print("correct")
b1 = 5
with open("lista risultati.txt", 'a') as f:
f.write(str(b1) + '\n')
else:
b1 = 0
print("wrong")
with open("lista risultati.txt", 'a') as f:
f.write(str(b1) + '\n')
f.close
print("third question")
print("does it weight more 1 pound of steel or 1 pound of feathers")
c = input("answer: ")
if c == "they weight the same":
print("correct")
c1 = 5
with open("lista risultati.txt", 'a') as f:
f.write(str(c1) + '\n')
else:
c1 = 0
print("wrong")
with open("lista risultati.txt", 'a') as f:
f.write(str(c1) + '\n')
f.close
print("FINAL question")
print("is this program good?")
d = input("answer: ")
if d == "yes":
print("correct")
d1 = 5
with open("lista risultati.txt", 'a') as f:
f.write(str(d1) + '\n')
else:
d1 = 0
print("wrong")
with open("lista risultati.txt", 'a') as f:
f.write(str(d1) + '\n')
f.close
e = a1 + b1 + c1 + d1
with open("risultato finale.txt", 'w') as f1:
f1.write(str(e))
f1.close
r = open("risultato finale.txt", "r")
if r >= "15":
print("testing results...")
print("BRAVO, you have winned the game")
else:
print("testing results...")
print("you have lost the game")
elif a == "no":
sys.exit("you said to do it")
else:
print("!!ERROR: you need to enter yes or no. !!")
yes()
yes()
Posts: 6,347
Threads: 17
Joined: Feb 2020
Maybe you should try fixing your own syntax errors. What does the error message say? Out of r and "15" which one do you think is the str? Which one is the text wrapper? If you cannot use ">=" to compare a str and a text wrapper what do you think you need to do? Do you need a different comparison operator or do you need compatible types? If you need compatible types, which do you change, r to be like a str or "15" to make it like a text wrapper? Maybe you should read up on what a text wrapper is.
ndc85430, GOTO10, buran like this post
Posts: 11
Threads: 1
Joined: Oct 2020
Oct-15-2020, 04:17 PM
(This post was last modified: Oct-15-2020, 04:18 PM by Shishi.)
i tryied but when i do that like if r == "15": print("win") elif r == "20": print("win") else: print("lose") i will always lose even if i have 15 or 20
Posts: 151
Threads: 3
Joined: Apr 2020
Don't forget that you can just add a simple print statement print(r) to see what the value of r is at any given point. Printing your variables to see what they contain is a common debugging technique. If you think you have a string value of '15' or '20' in r, but your program still displays "lose", then you can be pretty certain that r doesn't contain what you think it does. Printing r on the line preceding your if/else clauses will help you find the problem.
Posts: 11
Threads: 1
Joined: Oct 2020
it says this: <built-in method read of _io.TextIOWrapper object at 0x0170B5B0>
it dosn't says the number
Posts: 151
Threads: 3
Joined: Apr 2020
(Oct-15-2020, 05:38 PM)Shishi Wrote: it says this: <built-in method read of _io.TextIOWrapper object at 0x0170B5B0>
it dosn't says the number
Right, that is exactly the problem. I suggest you review some of the python documentation for working with files, but in short your problem is that you haven't read anything from the file you opened. The variable r is assigned to the TextIOWrapper object you created by opening the file. If you want to read something from the file, you need to use file.read() similar to the way you've used file.write() to write to files. Assign what you read to a variable, and *that* is what you want to compare to "15" or "20".
|