Python: ne peut pas affecter à littérale
Ma tâche est d'écrire un programme qui demande à l'utilisateur d'entrer les 5 noms qu'il stocke dans une liste. Ensuite, il choisit un de ces noms au hasard et déclare que personne que le gagnant. Le seul problème est que lorsque j'essaie de le lancer, il dit can't assign to literal
.
C'est mon code:
import random
1=input("Please enter name 1:")
2=int(input('Please enter name 2:'))
3=int(input('Please enter name 3:'))
4=int(input('Please enter name 4:'))
5=int(input('Please enter name 5:'))
name=random.randint(1,6)
print('Well done '+str(name)+'. You are the winner!')
Je dois être en mesure de générer un nom aléatoire.
Vous devez vous connecter pour publier un commentaire.
Le côté gauche de la
=
opérateur doit être une variable. Ce que vous faites ici est de dire à python: "Vous connaissez le numéro un? La placer à l'entrée de la chaîne.".1
est un nombre littéral, pas une variable.1
est toujours1
, vous ne pouvez pas "ensemble" à quelque chose.Une variable, c'est comme une boîte dans laquelle vous pouvez stocker une valeur.
1
est une valeur qui peut être stockée dans la variable. Leinput
appel renvoie une chaîne de caractères, une autre valeur peut être stockée dans une variable.Au lieu de cela, utiliser listes:
À l'aide d'une boucle for, vous pouvez couper encore plus bas:
Juste en ajoutant 1 de plus le scénario qui peut donner le même message d'erreur:
Si vous essayez d'assigner des valeurs à des variables multiples, alors vous aussi, vous allez recevoir la même erreur. Par exemple
En C (et beaucoup d'autres langues), c'est possible:
En Python:
donnera "ne peut pas affecter à littérale" erreur
Que vous essayez d'assigner à littérale des valeurs entières.
1
,2
, etc. ne sont pas des noms valides; ils ne sont valables entiers:Vous voudrez probablement utiliser une liste ou un dictionnaire au lieu de cela:
À l'aide d'une liste, il est beaucoup plus facile de choisir une valeur aléatoire trop:
1
est un littéral.name = value
est une affectation.1 = value
agit d'une affectation à un littéral, qui n'a aucun sens. Pourquoi voudriez-vous1
pour signifier quelque chose d'autre que1
?1, 2, 3 ,... ne sont pas valides identificateurs en python parce que d'abord, ils sont des entiers d'objets et d'autre part en python un nom de variable ne peut pas commencer par un chiffre.
Valide identificateur de définition:
Ceci est pris à partir du Python docs:
Qu'il faut expliquer comment nommer vos variables.
J'ai eu le même message d'erreur: SyntaxError: ne peut pas affecter à littérale quand j'ai essayé d'attribuer plusieurs variables en une seule ligne.
J'ai été affectation de valeurs comme indiqué ci-dessous:
Quand je suis passée à une autre ligne, il a résolu:
Je ne sais pas pourquoi python ne permet pas de multiples affectations à la même ligne, mais c'est comment il est fait.
Il y a un moyen de plus pour asisgn en ligne unique ie. Les séparer par un point-virgule à la place de la virgule. Vérifiez le code ci-dessous:
Vous devez utiliser des variables pour stocker les noms.
Nombres ne peuvent pas stocker des chaînes.