web-dev-qa-db-fra.com

Python 3.3 TypeError: type (s) d'opérande non pris en charge pour +: 'NoneType' et 'str'

Nouveau dans la programmation et je ne sais pas pourquoi j'obtiens cette erreur

count=int(input ("How many donuts do you have?"))
if count <= 10:
    print ("number of donuts: " ) +str(count)
else:
    print ("Number of donuts: many")
11
user2101517

En python3, print est une fonction qui renvoie None. Donc, la ligne:

print ("number of donuts: " ) +str(count)

vous avez None + str(count).

Ce que vous voulez probablement, c'est utiliser la mise en forme des chaînes:

print ("Number of donuts: {}".format(count))
17
mgilson

Votre parenthèse est au mauvais endroit:

print ("number of donuts: " ) +str(count)
                            ^

Déplacez-le ici:

print ("number of donuts: " + str(count))
                                        ^

Ou utilisez simplement une virgule:

print("number of donuts:", count)
6
Blender

In Python 3 print n'est plus une déclaration. Vous voulez faire,

print( "number of donuts: " + str(count) ) 

au lieu d'ajouter à print () la valeur de retour (qui est None)

1
Arcturus