binär rechner?
hallo ich wolte mit python einen binär rechner
programmieren und hab jetzt das broblem wie schaffe
ich es das ich in einer if dings das es erkennt das eine variable
.5 erkennt also eine halbe zahl
Kannst du vielleicht dein bisheriger Code zur Verfügung stellen?
nur mal ne frage wie man das ERKENNT das in einer variable
ne halbe zahl steht
Das kommt gerad darauf an,wie du es implementieren möchtest.Wenn du's mit der Binärfunktion von Python machst muss man es anders machen,als wenn man es mit Stringmanipulation macht
eingentlich will ich nur wissen wie ich erkenne wen ein . oder .5 in einer variable vorkommt
2 Antworten
Zuerst solltest du im den Datentyp von Int (Integer) auf Float ändern. In diesem Typ können auch Gleitkommazahlen gespeichert werden.
Deine Input Funktion gibt dir erstmal ein String zurück. Diese parst (umwandeln) du aktuell in ein Integer um. Falls eine 2.5 eingegeben wurde, erhälst du eine 2 zurück. Nach dem . wird alles abgeschnitten. Es wird nicht gerundet.
float_number = float(input("Eingabe: "))
Mit einer einfachen If Abfrage könntest du überprüfen, ob eine Ganze Zahl eingegeben wurde oder auch nicht.
if int(float_number) == float_number:
pass
Im ersten Abschnitt des If wollen wir bewusst den Teil hinter dem . abschneiden. Wenn der Ausdruck True ist, wurde eine ganze Zahl eingeben. 1.0 (float) entspricht in Python auch 1 (integer).
Wenn eine 1.5 eingegeben wurde, ist 1.5 und 1 nicht gleich und es wird False zurückgegeben.
Diese Abfrage würde auch 1.1 oder 1.9 abfangen.
Falls du die Dezimalstellen haben möchtest, kannst du den Modulo Operator nutzen, der bereits von Hanibal545 angesprochen wurde.
float_number = 2.5
a = float_number % 1 # ergibt 0.5
Wenn du wirklich nur auf 0.5 abfragen möchtest, könntest du jetzt den Rest mit 0.5 vergleichen.
if a == 0.5:
pass
Ich weiß zwar nicht, ob es dir hilft, aber man kann z.B. so schauen, ob ein Komma in einem String enthalten ist oder nicht.
number_1 = input("Geben sie die erste Binärzahl ein ")
number_2 = input("Geben sie die zweite Binärzahl ein ")
if "." in number_1:
pass
if "." in number_2:
pass
ergebnis = bin(int(number_1,base=2) + int(number_2,base=2))
print(ergebnis)
Ich kann es so bestimmen, aber wenn du genauere Hilfe haben möchtest, wie man das Komma in die Binärzahl einbinden kann, dann bräuchte ich dein Code um zu schauen, wie du es implementieren möchtest
LG
Weil es nur mit einem String geht. Wenn du schauen möchtest, ob wenn man durch 2 teilt eine Kommazahl rauskommt kann man es mit dem Modulus-Opperator machen.
zahl = int(input("bitte zahl eingeben:"))
if zahl % 2 == 0:
print(". ist nicht enthalten")
else:
print(". ist enthaltem")
zahl /= 2
oder mit:
zahl = int(input("bitte zahl eingeben:"))
if zahl /2 == int(zahl/2):
print(". ist nicht enthalten")
else:
print(". ist enthaltem")
zahl /= 2
oder mit:
zahl = int(input("bitte zahl eingeben:"))
zahl /= 2
temp = str(zahl).split(".")[1]
if temp != "0":
print(". ist enthalten")
else:
print(". ist nicht enthaltem")
Es gibt viele Möglichkeiten
wie funktionirt das mit den Modulus-Opperator
Der Modulus-Operator funktioniert so, dass man den Restwert von einer Division bekommt. Also wenn man 5 Modulo(%) 2 macht bekommt man 2 Rest 1 raus. Und die 1 wird dann nach der Modulo Operation ausgegeben. Wenn es kein Rest gibt (also 0), konnte man die Zahl durch die andere Zahl ohne einen Restwert dividieren.
https://i.stack.imgur.com/03s5V.png
https://stackoverflow.com/questions/17524673/understanding-the-modulus-operator
https://www.geeksforgeeks.org/what-is-a-modulo-operator-in-python/
Ich hoffe ich konnte dir helfen und wenn du noch weitere Fragen hast, dann kannst du mich einfach fragen
warum geht das nicht