Ich habe mir schon seit zwei Tagen den Kopf dagegen gedrückt. Ich bin neu in Python und Programmierung, also haben die anderen Beispiele dieser Art von Fehlern mir nicht viel geholfen. Ich lese durch die Dokumentation für Listen und Tupel, habe aber nichts gefunden, was hilft.Ein Zeiger wäre sehr geschätzt.Nicht die Suche nach der Antwort notwendig, nur mehr Ressourcen auf, wo Sie suchen.Ich benutze Python 2.7.6. dankPython-Listenindizes müssen Ganzzahlen sein, nicht Tupel "
measure = raw_input("How would you like to measure the coins? Enter 1 for grams 2 for pounds. ")
coin_args = [
["pennies", '2.5', '50.0', '.01']
["nickles", '5.0', '40.0', '.05']
["dimes", '2.268', '50.0', '.1']
["quarters", '5.67', '40.0', '.25']
]
if measure == 2:
for coin, coin_weight, rolls, worth in coin_args:
print "Enter the weight of your %s" % (coin)
weight = float(raw_input())
convert2grams = weight * 453.592
num_coin = convert2grams/(float(coin_weight))
num_roll = round(num_coin/(float(rolls)))
amount = round(num_coin * (float(worth)), 2)
print "You have %d %s, worth $ %d, and will need %d rolls." % (num_coin, coin, amount, num_roll)
else:
for coin, coin_weight, rolls, worth in coin_args:
print "Enter the weight of your %s" % (coin)
weight = float(raw_input())
num_coin = weight/(float(coin_weight))
num_roll = round(num_coin/(float(rolls)))
amount = round(num_coin * (float(worth)), 2)
print "You have %d %s, worth $ %d, and will need %d rolls." % (num_coin, coin, amount, num_roll)
Dies ist der Stack-Trace:
File ".\coin_estimator_by_weight.py", line 5, in <module>
["nickles", '5.0', '40.0', '.05']
TypeError: list indices must be integers, not tuple
Sie das Ergebnis nicht von 'raw_input' analysieren. Es wird niemals '2' sein. –
Da du mehr oder weniger den gleichen Quellcode zweimal geschrieben hast, solltest du dir überlegen, wie du das eleganter machen kannst. In der Tat müssen Sie die Gewichtseinheit unterscheiden, die Eingabe bei Bedarf konvertieren, und der Rest ist der gleiche. – OBu
OBu ein sehr guter Punkt. Ich werde daran arbeiten, meinen Code zu verfeinern. Ich gehe davon aus, dass Sie über eine Funktion sprechen. – Aaron