2016-09-08 1 views
0

Donc, je suis un peu novice en programmation et j'ai essayé Python. Je fais un programme très simple qui convertit les USD en euroes.Python n'imprimera pas l'expression

Ceci est le texte du problème que je suis en train de résoudre

Vous allez voyager en France. Vous devrez convertir des dollars en euros (la devise de l'Union européenne). Il y a deux cabines d'échange de devises. Chacun a un affichage qui montre CR: leur taux de conversion en euros par dollar et leurs frais en pourcentage . Les frais sont prélevés avant que votre argent soit converti. Quel stand donnera vous le plus d'euros pour vos dollars, combien d'euros, et combien est la différence. Exemple 1: 200 dollars: CR1: 0,78 Fee: 1 (quantité 152,88 euros) CR2: 0,80 Fee: 3 (quantité 155,2 euros) Réponse: 2 est la meilleure; la différence est de 2,32 euros; 155,2 euros

Et voici mon code

from __future__ import division 

usd = int(input("How much in USD? ")) 
cr1 = int(input("What is the convertion rate of the first one? ")) 
fee1 = int(input("What is the fee of the first one? ")) 

cr2 = int(input("What is the convertion rate of the second one? ")) 
fee2 = int(input("What is the fee of the second one? ")) 

def convertion (usd, cr, fee): 
    usdwfee = usd - fee 
    convert = usdwfee * cr 
    return convert 

first = convertion(usd, cr1, fee1) 
second = convertion(usd, cr2, fee2) 

fs = first - second 
sf = second - first 

def ifstatements (first,second,fs,sf): 
    if first < second: 
     print "1 is the best; difference is ",fs," euroes. 2 converts to ",first," euroes." 
    elif first > second: 
     print "2 is the best; difference is",sf," euroes. 2 converts to", second," euroes." 

ifstatements(first, second, fs, sf) 

Le problème est que quand je lance le programme, il ne sera pas imprimé. Il prend juste mon entrée et ne produit rien.

+3

Assurez-vous que 'first! = Second'. Cela semble fonctionner correctement pour moi. – Karin

+0

Vous devez déboguer votre code a) en utilisant un débogueur - définissez un point d'arrêt quelque part au début et exécutez ligne par ligne pour voir ce qui se passe; ou b) ajoutez simplement des impressions sur tout le code pour voir ce qui est exécuté et quelles sont les valeurs des variables. – zvone

+0

Puis, si cela ne fonctionne toujours pas et vous ne pouvez pas comprendre pourquoi, vous pouvez google votre problème exact et poser une question spécifique ici lorsque cela échoue;) – zvone

Répondre

1

Vérifiez votre logique plus.

cr1 = int(input("What is the convertion rate of the first one? "))

Votre taux de conversion est en int. Comme dans Integer, ce qui signifie qu'il ne peut pas avoir de point flottant (un décimal "CR1: 0.78" de votre exemple). Votre cr1 deviendra 0 si vous le lancez dans un int. Aussi changer votre dollar et les frais d'accepter flotte aussi, car je suppose que vous voulez traiter cents trop

changer donc:

usd = float(input("How much in USD? ")) 
cr1 = float(input("What is the convertion rate of the first one? ")) 
fee1 = float(input("What is the fee of the first one? ")) 

cr2 = float(input("What is the convertion rate of the second one? ")) 
fee2 = float(input("What is the fee of the second one? ")) 

Et cela devrait fonctionner.