2017-12-23 9 views
-2

Ich habe gerade diesen Code für die Konvertierung von Dezimal in Binär geschrieben, mit der Methode Division durch 2. Es funktioniert perfekt, aber ich habe mich nur gefragt, ob es einen Weg gibt, es effizienter und einfacher zu lesen.Gibt es eine Möglichkeit, diesen Code effizienter und kleiner zu machen?

def binary(d): 
    stop = False 
    c = [] 

    while stop == False: 
     b = d%2 
     if b == 0: 
      d = d/2 
     else: 
      d = d/2 
      b = 1 
     c.append(b) 

     if d == 1: 
      c.append(1) 
      stop = True 

    c.reverse() 
    c="".join(map(str,c)) 
    return(c) 

d = int(input("enter number:")) 
print(binary(d)) 

(Ich habe gerade erst begonnen zu lernen Python)

+2

Wenn Sie ** Arbeitscode ** haben, von dem Sie glauben, dass er verbessert werden könnte, siehe [codereview.se]. Wenn nicht, gib ein [mcve]. In beiden Fällen muss der Code in der Frage ** im SE-Netzwerk ** sein. – jonrsharpe

+0

[Warum nicht Bilder von Code auf SO hochladen, wenn Sie eine Frage stellen?] (Https://meta.stackoverflow.com/a/285557/3082296) – adiga

Antwort

0

Sie bin() oder format()

num = 42 

print bin(num) 
# 0b101010 
print "{0:#b}".format(num) 
# 0b101010 
print "{0:b}".format(num) 
# 101010 
0

verwenden sollten, können Sie diese einfache Methode verwenden.

x=10 
bin(x) 

wird es Ihnen binäre Form von Nummer 10 erhalten werden Es wird ‚0b1010‘ zurückkehrt, sehr einfach. Versuchen Sie es, wenn Sie irgendein Problem haben, antworten Sie einfach zurück. Genießen Sie :)

Wie Sie wollten, optimierte ich den Code, verwendete eine Verknüpfung, indem Sie Ihre Logik im Code intakt.

def binary(decimal): 
    temp = [] 
    while True: 
     binary_num = 0 if decimal % 2 == 0 else 1 
     decimal = int(decimal/2) 
     temp.append(binary_num) 
     if int(decimal) == 1: 
      temp.append(1) 
      break 
    return "".join(map(str, temp.reverse())) 


DECIMAL = int(input("enter number:")) 
print(binary(DECIMAL)) 
+0

Danke, das funktioniert perfekt! Da ich nur Elarnj Python bin, frage ich mich, ob es eine Möglichkeit gibt, den Code zu komprimieren, den ich geschrieben habe, damit ich sehen kann, wie es mir wirklich egal ist, was der Code macht, wie ich ihn schreibe –

Verwandte Themen