0
votes

Comment utiliser la fonction d'entrée pour appeler la valeur d'une variable?

Question originale

Ceci est écrit dans Python 2 à l'aide de Jupyter Notebook. Je m'excuse à l'avance si la phrase / termes est non conventionnelle. Je suis débutant et ignoré de la plupart des conventions de codage. xxx

Je voudrais pouvoir exécuter le code, entrer "bleu" et l'avoir imprimé 24.

EDIT:

Idéalement, je voudrais ne pas avoir à construire un dictionnaire. Ceci est une simplification de mon code actuel. J'ai déjà beaucoup, de nombreuses variables définies (certaines définitions nécessitant une contribution de l'utilisateur) et il serait très gênant de devoir créer un dictionnaire à partir duquel.

Ceci est mon code (plus réaliste): xxx

J'aimerais pouvoir exécuter le code, l'entrée cyan et l'avoir imprimé numérique Valeur de la variable cyan.

Exemple: exécuter. Entrée 3. Entrée 5. Entrée cyan. Imprimés de code 15


1 commentaires

@Surajm complètement faux, en particulier compte tenu de 3 réponses différentes sur la manière de réaliser cela


4 Réponses :


0
votes

Faites-le un dictionnaire

colour_dict = {'blue': 24, 'red': 18}

colour = input('what colour...')

print('your colour: ', colour, 'is number: ', colour_dict[colour])


1 commentaires

Etant donné que OP utilise python 2.x, brut_input doit être utilisé à la place de entrée .



0
votes

Essayez ce code! Vous devez utiliser la déclaration conditionnelle (si la clause) pour vérifier que l'utilisateur saisie la valeur est bleu . Si c'est vrai, imprimez la valeur de la variable bleu =

code: xxx

Sortie: < / strong> xxx


2 commentaires

Si OP aura 10 couleurs suggérez-vous d'avoir 10 déclarations?


Nan. Dans ce cas, la meilleure solution consiste à déclarer le dictionnaire et à obtenir la valeur du dictionnaire à travers sa clé. Je donne la solution en fonction de la situation actuelle.



1
votes

Utiliser Raw_Input . Entrée remplacera la valeur existante dans le bon boîtier, et dans un cas pire soulever un NameError . Ensuite, essayez de récupérer la valeur de locaux () : xxx

note que c'est à peu près un piratage et l'utilisation de cette façon le L'utilisateur sera en mesure d'accéder à toute variable locale définie. Si vous souhaitez limiter ce que l'utilisateur peut accéder, utilisez un dictionnaire prédéfini comme certaines des autres réponses suggèrent.


1 commentaires

Cela a fonctionné, merci! Je pense que je vais créer un dictionnaire avant de libérer, mais cela aide définitivement avec l'alpha.



0
votes

J'utiliserais un dictionnaire pour ce xxx

Vous pouvez accéder à la variable littéralement avec eval ou à partir de local . Mais cela est généralement considéré comme une mauvaise idée, sauf si vous n'avez réellement aucune autre option. Je discuterais aussi que c'est plus compliqué pour aucune raison réelle.

Une explication de ce qui se passe:

Nous créons un nouveau dictionnaire appelé des options, avec "bleu" et "rouge" comme Ce sont des clés et 24 et 18 comme il s'agit de valeurs respectivement.

Maintenant, lorsque nous voulons notre réponse, nous pouvons y accéder avec Options [Réponse] qui est identique à des options [ "bleu"]] depuis que j'ai donné "bleu" comme réponse à une réponse à l'entrée.

résultat: xxx

notes:

Si vous exécutez Python 2 Utiliser Raw_Input au lieu de entrée . C'est une solution très simple et si l'utilisateur entrait autre chose que «bleu» ou «rouge», le script augmentera un KeyError . Je commencerais avec Je reçois une erreur clé à Python pour des notes sur Comment faire face à cela.


0 commentaires