2009-09-24 10 views
2

J'essaie de créer un programme de base qui va générer un nombre basé sur les variables entrées par l'utilisateur. La formule estVariables Python

a = b/(c * d) 

Ceci est une formule pour trouver la chaleur spécifique, alors que b=energy, c=mass et d= change in temperature.

Donc mon problème est que je ne fais pas ce programme pour moi-même, sinon je pouvais attribuer à chaque variable a number- comme:

b= 1200 
c= 13 
d= 2 

Et puis faire a = a = b/(c * d).

Mon but, cependant, est de créer un programme pour ceux qui ne connaissent pas déjà la formule, afin qu'ils puissent simplement entrer les nombres eux-mêmes. Exemple- Je veux b = X. X est le nombre saisi par l'utilisateur du programme. Cependant, je dois définir X en tant que variable d'abord - je veux qu'elle soit inconnue - ou en fonction de ce qu'une personne entre. Je ne veux pas que b, c ou d aient des valeurs affectées. C'est un processus de script très basique, mais je suis nouveau sur Python.

+0

+1 pas une question difficile ... mais il ne marche pas méritent downvotes pour être simple. – bastianneu

Répondre

0
b = float(raw_input("Please enter a value: ")) 
a = b/(c*d) 
print a 

raw_input() invite l'utilisateur pour l'entrée, en supposant que vous utilisez ce dans la console

float() tente de convertir le paramètre (dans ce cas, l'entrée d'utilisateur) à un flotteur. le reste devrait être assez simple.

Faites un essai. Bienvenue à Python :)

+0

Merci beaucoup, j'ai essayé cela et je sais que le script lui-même doit fonctionner. Mon problème est que lorsque j'entre b = float (raw_input ("Entrez une valeur pour l'énergie:")) Je me retrouve avec: b = float (raw_input ("Entrez une valeur pour l'énergie:")) Entrer une valeur pour l'énergie: Donc, je ne peux pas vraiment mettre quelque chose là-bas ou il va assigner B la variable de ce que je mets. J'ai le sentiment que je dois mettre quelque chose au début de mon script en le reconnaissant comme un programme ou quelque chose comme ça. Désolé pour mon ignorance, encore une fois je suis très nouveau à Python. Merci les gars pour votre aide! –

+0

@Jordan: Votre commentaire n'a aucun sens du tout. Veuillez le réécrire de manière à ce qu'il soit logique et mettez à jour votre question avec votre problème * réel *. –

4

L'approche la plus simple est de faire précéder la formule avec le fragment

b = input("Enter b:") 
c = input("Enter c:") 
d = input("Enter d:") 

Quelques choses à noter:

  • cela nécessitera la console IO, de sorte que vous meilleur départ le script d'une console
  • input() provoque l'affichage de la chaîne entrée eval(), ce qui signifie qu'elle obtient des processus comme s'il s'agissait d'une expression Python. Ceci est utile pour les nombres, mais peut avoir des effets secondaires confus; pensez à utiliser raw_input(), avec float() à la place.
+2

Il est extrêmement sage d'avertir les novices de Python que 'input()' est dangereux dans Python 2.x et plus tôt. En Python3, ils ont finalement corrigé cela, mais c'était une longue histoire dans le langage (à partir du moment où Guido en a conçu une qui était axée sur l'enseignement de la programmation). Python <3 effectue une * évaluation * des valeurs 'input()'. C'est l'équivalent de 'eval (input())' dans Python 3.x. Les étudiants devraient être avertis d'utiliser 'raw_input()' ou même de commencer leur code avec 'input = raw_input' pour les renommer avant d'être utilisés dans leur code. –

6

Je pense que vous voulez quelque chose comme ceci:

b = float(raw_input("Energy? ")) 
c = float(raw_input("Mass? ")) 
d = float(raw_input("Change in temperature? ")) 

print "Specific heat: %f" % (b/(c * d)) 
  • raw_input() invite l'utilisateur et renvoie la valeur entrée
  • float() convertit la valeur à un flotteur (si possible; sinon, cela lancera une exception et terminera le programme)
  • le "% f" dans la dernière ligne formate l'argument en tant que valeur à virgule flottante, où "l'argument" est la valeur de l'expression qui suit le% extérieur du strin g (c.-à-d.'(B/(c * d))')
+1

Bien sûr, il est encore mieux si nous emballons que dans certains belle gestion des exceptions: DEF getNum (prompt = « Entrez un numéro: »): résultat = Aucun tout résultat Aucun: essayer: résultat = flotteur (raw_input (prompt)) excepté ValueError: print "Impossible de l'analyser. Veuillez réessayer." else: break retour résultat –

+0

Gah! Impossible de formater les commentaires. Désolé pour la laideur. :( –

0

c'est une façon très simple de le faire et facile à comprendre

b= float(raw_input("Enter the energy")) 
c= float(raw_input("Enter the mass")) 
d= float(raw_input("Enter change in temperature")) 

a = b/(c * d) 
print a 
Questions connexes