2016-03-19 2 views
-5

Ich muss diesen Python 2.7.0 Code in Python 3.5.0 Code konvertieren, können Sie mir bitte helfen, weil ich habe habe nie python 2.7 benutzt, also weiß ich nicht, was los ist. können Sie auch den „#“ zu erklären, verwenden, was aufWie schreibe ich diesen Code in Python 3.5.0 (auch erklären, was los ist)

money_weight = {"1 pence": 3.56, "2 pence": 7.12, "5 pence": 3.25,"10  pence": 6.50,"20 pence": 5.00, "50 pence": 8.00, "1 pound": 9.50, "2 pounds": 12.00} 
no_of_bags = input("Enter the number of bags:\n>") 
total_no_of_coins_tb_added = 0 
total_no_of_coins_tb_removed = 0 
#help 
for _ in xrange(no_of_bags): 
    weight_calculated = input("Enter the weight calculated:\n>") 
    type_of_coin = raw_input("Enter the type of coin:\n>") 
    no_of_coins = input("Enter the number of coins:\n>") 
    actual_weight_should_be = no_of_coins*money_weight[type_of_coin] 
    difference = actual_weight_should_be - weight_calculated 
    print "Difference in weight"+str(abs(difference)) 
    number_change = abs(difference)/money_weight[type_of_coin] 
    if difference<0: 
     print "The number of coins to be added: "+str(number_change) 
     total_no_of_coins_tb_added+=abs(difference) 
    elif difference>0: 
     print "The number of coins to be removed: "+str(number_change) 
     total_no_of_coins_tb_removed+=abs(difference) 
    else: 
     print "No coins to be added or removed." 
print "Total number of bags checked: "+str(no_of_bags) 
print "Total value of coins to be added:  "+str(total_no_of_coins_tb_added) 
print "Total value of coins to be removed: "+str(total_no_of_coins_tb_removed) 
+3

Ich stimme für das Schließen dieser Frage als Off-Topic ab, da SO kein Code-Übersetzungsdienst ist. – TigerhawkT3

+0

Bitte führen Sie diesen Code nur auf Python 3 aus (möglicherweise nach der Verwendung von 2to3). Wenn es nicht funktioniert, schreiben Sie die Frage neu, um das Problem und Ihr beabsichtigtes Ergebnis zu zeigen, um es zu einer guten Frage in Stack Overflow zu machen. – FelisCatus

Antwort

1

Ausführliche Informationen über die Unterschiede gehen können dort gefunden werden: https://docs.python.org/3/whatsnew/3.0.html

Hier ist es im Grunde drei wirklich, wirklich gemeinsame Fälle.

Python 3k Eingabe ist Python raw_input, es gibt eine Zeichenfolge zurück. (PEP 3011)

type_of_coin = raw_input("Enter the type of coin:\n>") # Python 2 

type_of_coin = input("Enter the type of coin:\n>")  # Python 3k 

Wenn Sie etwas anderes wollen, müssen Sie die Zeichenfolge in der richtigen Art zu explizit konvertieren.

no_of_bags = input("Enter the number of bags:\n>")  # Python 2 

no_of_bags = int(input("Enter the number of bags:\n>")) # Python 3k 

Sie oft eval sehen werden (Eingang (...)), aber ich würde Rat dagegen, wenn Sie die richtige Art kennen, verwenden Sie es!

Python 3k Bereich ist jetzt ein Iterator, so Xrange ist nutzlos, und Sie können statt dessen Bereich verwenden.

Python 3k Druck verhalten sich nun wie eine Funktion, so dass Sie Klammern müssen. PEP 3105

print "Difference in weight"+str(abs(difference)) # Python 2 

print("Difference in weight"+str(abs(difference))) # Python 3k 

Ich werde es lassen Sie die Änderungen zu tun.