bytes型とは、0~255で表現されるものだと思っています。
なぜaを指定できるのでしょうか?
→★ASCIIの範囲まで指定できることは理解できました。
それ以降は、エスケープをつけることで可能との認識。
97は、以下のリンクからこのように解釈しました。
byteのaは、asciiコード97という理解でよろしいでしょうか?
リンク内容
このaは、16進数ですか?混乱してきました。
→★16進ではないことは理解できました。
そもそも以下のような構文は何をするためのものでしょうか?
value1 = b'a
バイナリaはasciiコードの何番かを出力するためのものでしょうか
→★バイナリのaでっせって宣言しているだけで
あとは解釈側の判断ということ?
''''''''''''''''''''
97は、97byteのオブジェクトを作るという意味でしょうか
じゃぁ b'abc'は、97,98,99バイトの計3つのオブジェクトを作るということでしょうか
→★これはその通りだと思う。
'''''''''''''''''''
value1 = b'a'
print(value1)
これを実行したら97が出力されるかと思ったら
b'a'のままでした。なにこれ。。
→いまいち用途がわからない。
~~~~~~~~~~~
頂いた情報から以下のようにまとめてみました。
アスキーのaかバイナリのaかは、見分けがつくようになりましたが
以下のように10進数も16進数も同じなので、何が便利なのでしょうか?
ASCIIとbytesで解釈が違うケースは具体的にどのようなものがありますでしょうか?
バイト数が違うケースがイメージできておりません。
|10進数|16進数
ASCII 'a' |97 |0x61
Bytes b'a' |97 |0x61
ASCII 'LF' |10 |0x0a
Bytes b'LF' |10 |0x0a
ASCII '61' |5449 |0x3631
Bytes b'61' |5449 |0x3631
^^^^^^^^^^^^^^^^^^^^^
知識人のどなたかへ
これまでの散らかった疑問点を整理して頂けないでしょうか
bの有無でasciiかbyteかを識別できる。
それをプログラムによって扱いを変えることができる。
組み方次第。この組み方次第がイメージできていないですが。。
ascii→byteに変換することでバイト数削減に繋げれると思っていましたが
これもいまいち反応が悪いようで正しいかよくわかっていません。
b'リテラル' ←0-127まで指定可能(asciiの範囲)
それ以降~255まではエスケープで表示可能・具体的にイメージできていません。
128以降は、unicode?
さらにそれ以上は、encodeを使う。例えば『あ』等
回答3件
あなたの回答
tips
プレビュー