Seite 1 von 1
Dictionary_syntaxerror
Verfasst: Sonntag 22. Oktober 2017, 16:10
von alex1401
Code: Alles auswählen
import sys
def main():
w = raw_input("Zahl: ")
name = [(0,2): 2.54 , (0,3): 30.48 , (1,2): 39.37 , (1,3): 3.28084]
out = name[o]*w
print out
weiß jemand vielleicht, warum ich immer bei "name = [(0,2): 2.54 , (0,3): 30.48 , (1,2): 39.37 , (1,3): 3.28084]" beim Doppelpunkt ein "invalid syntax" bekomme? Hab ja beides definiert

Re: Dictionary_syntaxerror
Verfasst: Sonntag 22. Oktober 2017, 16:38
von Sirius3
@alex1401: Wörterbücher schreibt man mit geschweiften Klammern »{}«.
Re: Dictionary_syntaxerror
Verfasst: Sonntag 22. Oktober 2017, 16:50
von alex1401
Code: Alles auswählen
import sys
def main():
w = raw_input("Zahl: ")
name = {2,3,4}
out = name[0]*w
return out
if __name__=="__main__":
main()
wenn ich das jetzt ausführe bekomme ich den fehler "set" object does not support indexing.
ich bin am verzweifel. jedes mal wenn ich glaub einen fehler eliminiert zu haben, taucht ein neuer auf

Re: Dictionary_syntaxerror
Verfasst: Sonntag 22. Oktober 2017, 17:01
von Sirius3
@alex1401: Programme kann man nicht durch Raten schreiben. Was willst Du eigentlich erreichen?
Re: Dictionary_syntaxerror
Verfasst: Sonntag 22. Oktober 2017, 17:30
von alex1401
ich muss ein programm schreiben, welches meter bzw centimeter in inches oder foot umwandelt.
dafür hab ich ein dictionary angelegt wo ich den jeweiligen umrechnungsfaktor eingetragen hab.
jetzt muss ich abfragen:
-was willst du umwandeln
-den wert
-und in was es umgewandelt werden soll
Code: Alles auswählen
import sys
def main():
xxx = {"0,2":2.54, "0,3":30.48, "1,2":39.37, "1,3":3.28084, "2,0":2.54, "3,0":30.48, "2,1":39.37, "3,1":0.3048}
print (xxx)
#x = xxx["0,2"]*100
#print x
print "Please select input unit type:"
print "0: centimeters"
print "1: meters"
print "2: inches"
print "3: feet"
x = raw_input
if __name__=="__main__":
main()
soweit bin ich bis jetzt gekommen. das dictionary funktioniert jetzt zumindest.
Re: Dictionary_syntaxerror
Verfasst: Sonntag 22. Oktober 2017, 17:43
von __deets__
raw_input ist eine Funktion. Die musst du schon aufrufen, sonst passiert da nix. Und dein Dictionary mag zar durchgehen, aber dein Vorgehen, eine einzigen Umrechnungsfaktor zu bilden und den mit einem zusammengesetzten Schlüssel abzulegen ist milde gesagt unorthodox.
Besser ist alles zB in cm und dann in die gewünschte Zielmasseinheit umzuwandeln. Also zwei dicts, in denen jeweils nur eine Zahl auf einen Faktor abgebildet wir.
Grund dafür ist alleine schon die kombinatorische Explosion, die du hast: wenn du n Einheiten hast, brauchst du n^2 Einträge. Und bei einer dazu legst du dann n+1 mehr an. Statt nur zwei.
Re: Dictionary_syntaxerror
Verfasst: Sonntag 22. Oktober 2017, 17:46
von alex1401
ich probiers mal mit deiner Methode^^
aber kannst du mir vielleicht noch verraten warum bei
bei mir invalid syntax kommt?
hab halt " if x == 0" und x auch definiert
Re: Dictionary_syntaxerror
Verfasst: Sonntag 22. Oktober 2017, 17:54
von __deets__
Da kommt keine invalide Syntax. Du musst was drumrum gemacht haben, das nicht passt. Und damit man dem auf die Sprünge kommt poste bitte deine GESAMTEN Code, und die echte Fehlermeldung.
Re: Dictionary_syntaxerror
Verfasst: Sonntag 22. Oktober 2017, 18:07
von Sirius3
@__deets__: falls Du seinen anderen Thread schon gesehen hast, würde ich sagen, dass zwei Dicts ziemlich unorthodox sind.
Re: Dictionary_syntaxerror
Verfasst: Sonntag 22. Oktober 2017, 18:08
von alex1401
hab das hier jetzt hergezaubert und es funktioniert. bin mir übrigens im klaren, dass das dictionary in dem fall für die katz ist
Code: Alles auswählen
import sys
def main():
xxx = {"0,2":2.54, "0,3":30.48, "1,2":39.37, "1,3":3.28084, "2,0":2.54, "3,0":30.48, "2,1":39.37, "3,1":0.3048}
print "Please select input unit type:"
print "0: centimeters"
print "1: meters"
print "2: inches"
print "3: feet"
x = int(input())
print "Please specifcy the value"
v = int(input())
print "Please specificy the unit to convert to"
print "0: centimeters"
print "1: meters"
print "2: inches"
print "3: feet"
t = int(input())
if x == 0 and t == 2:
value = xxx["0,2"]*v
print value
elif x == 0 and t == 3:
value = v/xxx["0,3"]
print value
elif x == 1 and t == 2:
value = v*xxx["1,2"]
print value
elif x == 1 and t == 3:
value = v*xxx["1,3"]
print value
elif x == 2 and t == 0:
value = v/xxx["2,0"]
print value
elif x == 3 and t == 0:
value = v*xxx["3,0"]
print value
elif x == 2 and t == 1:
value = v/xxx["2,1"]
print value
elif x == 3 and t == 1:
value = v*xxx["3,1"]
print value
else:
print "wrong"
if __name__=="__main__":
main()
Re: Dictionary_syntaxerror
Verfasst: Sonntag 22. Oktober 2017, 18:23
von snafu
Also wenn ich mir deinen Code so ansehe, dann möchte ich nicht wissen, wie du ein Regal aufbauen würdest...
Was stört dich eigentlich an
diesem Ansatz?
Du weißt schon, dass du gern nachfragen kannst, wenn du bestimmte Stellen nicht verstehst? Oder geht es darum, dass es eben nicht von dir gebastelt wurde?