2016-09-07 18 views
0
Bit_128 = 0 
Bit_64 = 0 
Bit_32 = 0 
Bit_64 = 0 
Bit_32 = 0 
Bit_16 = 0 
Bit_8 = 0 
Bit_4 = 0 
Bit_2 = 0 
Bit_1 = 0 


Number = int(input("Enter number to be converted: ")) 

for power in range(7,0,-1): 

if (2**power) <= Number: 
place_value = 2**power 
if place_value == 128: 
    Bit_128 = 1 
elif place_value == 64: 
    Bit_64 = 1 
elif place_value == 32: 
    Bit_32 = 1 
elif place_value == 16: 
    Bit_16 = 1 
elif place_value == 8: 
    Bit_8 = 1 
elif place_value == 4: 
    Bit_4 = 1 
elif place_value == 2: 
    Bit_2 = 1 
elif place_value ==1: 
    Bit_1 = 1 
Number = Number - (place_value) 
if Number == 0: 
     print ("Binary form of"),Number,("is"),Bit_128,Bit_64,Bit_32,Bit_16,Bit_8,Bit_4,Bit_2,Bit_1 

最初のif条件に失敗したときにこのループを次の 'power'値に移動したいのですが、インタープリタで実行すると、プログラムは最初の条件が真ではないにもかかわらず実行を続けます。私は最初の条件が真であると判明した場合にのみ、次の条件に移りたいと思う。 どうすればいいですか?これはPythonの私の最初の "大きな"プログラムで、これを理解するのは苦労しています。任意のヒントをいただければ幸いです。 Btw、プログラムは1-255の任意の数をバイナリ形式に変換するためのものです。あなたはループが次の値に行きたい場合は初心者はPythonでループを止めることはできません

+6

コードを奇妙に貼り付けたため、字下げが間違っています。これにより、コードの動作が完全に変更されます。私たちがあなたを助けることができるように修正してください。 – byxor

+4

投稿したコードのインデントを修正してください。 – Matthias

+0

「プログラムの実行を継続する」とはどういう意味ですか?それは無限ループではなく、必然的に停止します。 – polku

答えて

0

、すべてを行う必要が継続使用されるキーワード:ただ条件があるときの電流ループを打破するために、文を「壊す」を使用して

... 
for power in range(7,0,-1): 
    if (2**power) <= Number: 
     place_value = 2**power 
     continue 
    ... 
0

満足。

+0

コードからはわかりませんが、ループから完全に脱出したいとは思えません。 – glibdud

+0

はい私はこの時点であなたに同意します。 –

関連する問題