Impossible de convertir de 'int' object de str implicitement
C'est un maths questionnaire composé de questions aléatoires. À la fin du quiz, un score est affiché, puis j'ai essayer de mettre le résultat et le nom de l'étudiant dans un fichier et un message d'erreur apparaît:
import random
import time
counter = 0
#I think the problem is around here?
score = int("0")
count = 0
function = ['+', 'x', '-']
# Introducing quiz
print('Welcome To The Arithmetic Quiz!')
time.sleep(2)
name = input('Please enter you name. ')
time.sleep(1)
print('Thanks', name, '. Let\'s Get Started!')
time.sleep(1)
while counter < 10:
questions.
firstnumber = random.randint(0, 12)
secondnumber = random.randint(0, 6)
operator = random.choice(function)
question = print(firstnumber, operator, secondnumber, '=')
userAnswer = input('Answer:')
if operator == '+':
count = firstnumber + secondnumber
if count == int(userAnswer):
print('Correct!')
score = score+1
else:
print('Incorrect')
elif operator== 'x':
count = firstnumber*secondnumber
if count == int (userAnswer):
print('Correct!')
score = score+1
else:
print('Incorrect')
elif operator== '-':
count = firstnumber - secondnumber
if count == int(userAnswer):
print('Correct!')
score = score + 1
else:
print('Incorrect')
counter += 1
print("Your quiz is over!")
print("You scored", score, "/10")
what_class = input("Please enter your class number: ")
classe = open("what_class.txt", "wt")
type(classe)
classe.write(name + score)
classe.close()
Alors ce message d'erreur s'affiche:
Traceback (most recent call last):
File "C:/4/gcse maths.py", line 61, in <module>
classe.write(name+score)
TypeError: Can't convert 'int' object to str implicitly
- Double Possible de TypeError: impossible de convertir de 'int' object de str implicitement
Vous devez vous connecter pour publier un commentaire.
Droit, parce que les cordes et les services de renseignements ne peut pas être concaténés, ça n'a pas de sens de le faire!
Disons que nous avons:
puis ce type est
?
Est-il un
str
, ou est-il unint
?À cause de cela, vous pouvez analyser de façon explicite la
int
à unstr
par lestr()
builtin:Mais être conscient de la réciproque de cette situation, qui serait de convertir
oneString
à unint
. Vous recevrez unValueError
. Veuillez voir ci-dessous:Le code est impossible d'ajouter la chaîne " nom "pour le nombre "score". Essayez d'utiliser la fonction str() pour convertir score pour une chaîne (vous pouvez ajouter un espace en trop). Jetez un oeil à cette question La conversion d'entier en chaîne de caractères en Python?
Lors de l'écriture dans un fichier que vous ne pouvez écrire des chaînes de caractères, pas des entiers. Pour le résoudre, l'entier doit être converti en une chaîne de caractères. Cela peut être fait à l'aide de la
str()
fonction - plus d'informations ici.\n
est pour une nouvelle ligne, sinon, chaque nom et le score sera sur la même ligne.