私は、コード内のsomepointでバイナリシーケンスを操作すること(例えば1つおきに0と1をスワップする)からなるオンラインのどこかを見ましたが、0101を次のように印刷したいと思いました:Pythonでbase-8番号の識別をバイパスするにはどうすればいいですか?
seq = 0101
print seq
出力は0101ではなく65で、これは整数の始まりの0が8進数を識別するためです。これを回避するにはどうすればよいですか?
私は、コード内のsomepointでバイナリシーケンスを操作すること(例えば1つおきに0と1をスワップする)からなるオンラインのどこかを見ましたが、0101を次のように印刷したいと思いました:Pythonでbase-8番号の識別をバイパスするにはどうすればいいですか?
seq = 0101
print seq
出力は0101ではなく65で、これは整数の始まりの0が8進数を識別するためです。これを回避するにはどうすればよいですか?
あなたがすることはできませんので、あなたの例は次のようになります。 0101を置くと、自動的にoct(101)の値に変換されます。
seq = 0b101
しかし、これは先頭に0を付けないでください
seq = "0101"
swapped = ''.join(['1' if b in '0' else '0' for b in seq]) # or maketrans
print(swapped) # => 1010
print(int(swapped, 2)) # => 10
ありがとう!私は文字列として使用してみましたが、うまくいきました! – leite0407
文字列"0101"
を使用するか、バイナリ0b0101
を使用する必要があります。
文字列は0101
を出力し、バイナリはそのバイナリ番号(5
)を出力します。
Pythonにはバイナリリテラルがありますが、接頭辞として0b
を付ける必要があります。あなたはまた、バイナリバックを印刷することができ
> seq = 0b0101
> print seq
5
:
> print bin(seq)
0b101
数字の先頭に0を入力しないでください。 – kindall
Python 3を使用します(構文エラーが発生する場合は、あまり混乱しないかもしれません)。また、 'seq'は数字であるはずですか? "101"の数値は重要ですか?計算に使用されますか?そうでない場合は、 '0101'として印刷したいと仮定して文字列にしてください。 –