print ("Hello World")
print ("{} World").format(Hello)
Je travaille sur mon premier programme "Hello World" et je peux le faire fonctionner en utilisant la fonction d'impression et juste un simple texte de chaîne mais quand j'essaie d'utiliser .format
cela me donne l'erreur:
AttributeError: 'NoneType' object has no attribute 'format'
Est-ce à dire que je dois initialiser une variable pour .format
ou ai-je raté quelque chose?
Vos crochets sont faux
print("Hello World")
print("{} World".format('Hello'))
Remarque - les erreurs
format
est un attribut de str
donc elle doit être appelée sur la chaîneHello
est une chaîne et doit être 'Hello'
Pour Py2, vous pouvez faire
print "{} World".format('Hello')
La fonction print
renvoie None
, c'est donc évidemment ce que vous obtenez dès le début de votre deuxième instruction, à savoir
print ("{} World")
Sur cette valeur de retour de None
, vous appelez ensuite .format(Hello)
- même si une variable nommée Hello
a été affectée quelque part dans votre code (et que vous ne la montrez pas à nous!), vous appelez cette méthode .format
sur None
renvoyé par votre appel print
, ce qui n'a aucun sens.
Au contraire, vous voulez appeler .format
Sur la chaîne"{} World"
- donc la parenthèse fermée juste après la chaîne et avant le point est clairement une terrible erreur! Déplacez ce )
À la fin de l'instruction, après l'appel à format
sur cette chaîne.
De plus, estHello
le nom d'une variable dont vous souhaitez formater la valeur? J'espère bien que non, sinon pourquoi ne nous avez-vous pas montré cette variable assignée?! Je soupçonne que vous voulez formater une chaîne constante et que vous avez oublié de façon distraite mettez-la entre guillemets (pour montrer que c'est une constante, pas le nom d'une variable!) - - 'Hello'
, pasHello
sans guillemets! C'est ce que vous devez transmettre à la forme appropriée de l'appel .format
...!