Why isn't my decimal to binary converter working in python? -
यह मेरा कोड है:
dec = int (इनपुट ("lol")) एक = [] जबकि डीसी> 0: शेष = दशमलव% 2 यदि शेष है; gt; a.append (1) dec = dec-remainder else: a.append (0) dec = dec-remainder bn = ''।
जब मैं चलाने के लिए पूर्णांक में टाइप करता हूं और उसके बाद कुछ भी नहीं आता।
1) टाइप करें: आपकी अंतिम पंक्ति को निश्चित रूप से प्रिंट (बीएन)
होना चाहिए प्रिंट (बाइनरी)
2) लूप लटकी हुई है: आप कभी भी rightshift & gt;
/ डिवाइड-बाय-टू डीसी पर नहीं करते हैं, इसलिए < मजबूत> आपका लूप कभी समाप्त नहीं होता चूंकि आप एक बदलाव करने जा रहे हैं, आपको स्पष्ट रूप से शेष घटाना नहीं चाहिए, यह सिर्फ सही स्थानांतरित हो जाएगा (देखें नोट ए)। आप इनमें से कोई भी कर सकते हैं:
dec = dec> & gt; 1 डीसी> & gt; = 1 # भी गुप्त, चूंकि & gt; & gt; एक असामान्य ऑपरेटर
2b) बग: आपको a
या के उत्तरार्द्ध अंक जोड़ने की बजाय, प्रीपेड की आवश्यकता है बीएन
।
वैसे भी कॉम्पैक्टिटी के लिए यहां एक पूर्ण पुनर्लेखन है; हम a
सूची के साथ वितरित कर सकते हैं और मौजूदा स्ट्रिंग bn
पर सीधे हो सकते हैं, और हमें एक अन्य-दूसरे खंड की आवश्यकता नहीं है:
Dec = int (इनपुट ("lol")) bn = "" जबकि डीसी & gt; 0: बीएन = स्ट्र (डीडी% 2) + बीएन # प्रीपेड, संलग्न नहीं है! Dec = dec & gt; & gt; 1 प्रिंट (बीएन)
(यह प्रमुख-शून्य नहीं छीनता है, लेकिन यह एक तुच्छ स्ट्रिंग / रेगेक्स-नौकरी बदलता है।)
नोट: ए) जिस तरह से, शेष = घटाकर = 0 यदि शेष == 0
खंड अनावश्यक था। और वैसे भी यदि dec = dec - शेष
लाइन आम-केस कोड हो सकता था, नहीं तो अगर-अन्य के अंदर। ऐसा a.append (dec% 2)
) हो सकता है।
Comments
Post a Comment