0
votes

(Python) meilleur moyen d'implémenter plusieurs entrées de l'utilisateur

Je demande à mon utilisateur des informations et j'ai tendance à avoir beaucoup de champs de saisie et je le trouve vraiment répétitif pour continuer à utiliser la ligne d'entrée après la ligne.

Code actuel: P>

a= input(str("a value:  "))
b= input(str("b value:  "))
c= input(str("multiple c values:  ")).split(" ")


2 commentaires

Écrivez une fonction qui prend une liste d'invites et de noms et renvoie un dictionnaire qui mappe les noms des réponses.


Il n'y a pas besoin d'envelopper un str littéral dans un appel à str .


3 Réponses :


0
votes

Notez que si vous avez un cas spécial ( C code> ici), vous devez le traiter séparément de toute façon. Ignorer des cas spéciaux Vous pouvez utiliser un dict le long de ces lignes: xxx pré>

puis utiliser val ['a'] code> a code> dans votre code . P>

Si vous ne voulez pas utiliser de dict et que vous devez utiliser val [...] code> partout, vous pouvez utiliser cette ligne plutôt p>

globals()[key] = input(key+(" value:  "))


0 commentaires

0
votes

Vous pouvez utiliser un dictionnaire pour stocker l'entrée où les clés sont des variables et des valeurs. Ensuite, dans la boucle, remplacez les valeurs / questions avec les entrées

code d'exemple: xxx

sortie: xxx


3 commentaires

J'aime ça :) juste pour ralentir à taper la mine: D


Et si la valeur souhaitée pour a est 'aa a' ?


C'est le problème pendant que je saisi le code ci-dessus, il doit simplement manipuler la liste et utiliser .join ()



0
votes

diviser votre code dans les questions et le questionnement, comme celui-ci:

# question and whether it's a multi one
questions={"a": False,
           "b": False,
           "c": True}

answers={}
for k, v in questions.items():
    q="multiple {} values: " if v else "{} value: "
    answers[k]=input(q.format(k))

print(answers)


0 commentaires