like this pseudocode:
Code: Alles auswählen
if price is float():
print "stimmt"
Code: Alles auswählen
if price is float():
print "stimmt"
Code: Alles auswählen
isinstance(x, float)
hierbei werden zahlen wir 99.00 oder 3424.34 richtig erkannt, aber wenn ich 3,999.99 eingebe nichtderdon hat geschrieben:do it like this python code:Aber denke daran, dass solche Überprüfungen zu vermeiden sind und Duck Typing in Python heilig ist.Code: Alles auswählen
isinstance(x, float)
gibt isinstance(x, float) eigentlich ein true oder false zurück? in meiner if anweisung funktioniert diese nichtPauleJS hat geschrieben:hierbei werden zahlen wir 99.00 oder 3424.34 richtig erkannt, aber wenn ich 3,999.99 eingebe nichtderdon hat geschrieben:do it like this python code:Aber denke daran, dass solche Überprüfungen zu vermeiden sind und Duck Typing in Python heilig ist.Code: Alles auswählen
isinstance(x, float)
gibt es da noch eine spezielle lösung von python für geldbeträge??
Code: Alles auswählen
>>> f = 1.10
>>> isinstance(f, float)
True
busfahrer hat geschrieben:Hallo
Gruß...busfahrerCode: Alles auswählen
>>> f = 1.10 >>> isinstance(f, float) True
Code: Alles auswählen
class price(object):
def set_price (self, value):
print value
if isinstance(value, float):
print "richtig"
else:
print 'Error'
p = price()
p.set_price('22.39')
oja, bin zwar erst python anfänger aber das hätte ich sehen müssen ^^Xynon1 hat geschrieben:klar, du gibst ja auch einen String an und keine Float Zahl.
Sind dir die Datentypen in Python bekannt ?
Arbeite einfach mit dem Datentyp. Schau dir folgenden Code an:PauleJS hat geschrieben:ich möchte in einer if anweisung überprüfen ob ein preis dem datentyp float entspricht.
Code: Alles auswählen
foo = float(1.23)
foo = float('2.34')
foo = float('abc')
könnte/sollte ich das genauso für das format datum machen? sprich einfach als string speichern und bei der ausgabe format festlegen via string format?Xynon1 hat geschrieben:Geldeinheiten, kennt Python nicht, wäre auch Blödsinn, da diese nur in Ausgaben benötigt werden.
Aber wenn du eine Ausgabe zB per print machst, musst/kannst du die Zahl in einen String umwandeln und hier erst muss es wie Geld aussehen und dafür gibt es String Formats.
Es kann auch sein, dass er als 200.000000000000013 gespeichert wird und du es nur bei der Ausgabe nicht siehst. Gleitkommazahlen sind nicht präzise.PauleJS hat geschrieben:wenn ich aber zb den betrag 200.00 eingebe wird dieser nur als 200.0 gespeichert, [...]
gibt es denn einen unterschied bei der verarbeitung zwischen dec und float? float ist mir punkt und dec mit komma oder nicht?/me hat geschrieben:Arbeite einfach mit dem Datentyp. Schau dir folgenden Code an:PauleJS hat geschrieben:ich möchte in einer if anweisung überprüfen ob ein preis dem datentyp float entspricht.Die ersten beiden Zeilen werden problemlos verarbeitet. Im dritten Fall bekommst du einen ValueError. Diesen Fehler kannst du abfangen und zwar entweder dort wo er entsteht oder auch irgendwo darüber in der Aufrufhierarchie. Schau dir mal Handling Exceptions im Tutorial an.Code: Alles auswählen
foo = float(1.23) foo = float('2.34') foo = float('abc')
Zudem solltest du dir überlegen, ob es wirklich ein float sein muss. Es könnte ja auch ein Decimal sein und deine Verarbeitung würde immer noch funktionieren.
Schau mal in mein Posting darüber. Kurz gesagt: Decimal ist präzise, float nicht.PauleJS hat geschrieben:gibt es denn einen unterschied bei der verarbeitung zwischen dec und float? float ist mir punkt und dec mit komma oder nicht?
ok verstehe!/me hat geschrieben:Schau mal in mein Posting darüber. Kurz gesagt: Decimal ist präzise, float nicht.PauleJS hat geschrieben:gibt es denn einen unterschied bei der verarbeitung zwischen dec und float? float ist mir punkt und dec mit komma oder nicht?
Code: Alles auswählen
import time
date = input('Date (m/dd/yyyy): ')
try:
valid_date = time.strptime(date, '%m/%d/%Y')
except ValueError:
print('Invalid date!')
Nur wenn du Python3 benutzt.PauleJS hat geschrieben:bei dem datum hatte ich vor folgendermaßen zu machenist das so sinnvoll?Code: Alles auswählen
import time date = input('Date (m/dd/yyyy): ') try: valid_date = time.strptime(date, '%m/%d/%Y') except ValueError: print('Invalid date!')