文字列
文字列リテラル
https://docs.python.org/ja/3/reference/lexical_analysis.html#string-and-bytes-literals
Python 3.3 までは、内部 UTF-16と UTF-32 が混在していた。
sys.maxunicode の値が 0xffff か 0x10ffff かで判定できる。
現在は UTF-32 で取り扱われる。
code:py
import sys
print(hex(sys.maxunicode))
# 0x10ffff
ソースのエンコーディングは、先頭行でのエンコーディング宣言がない場合は UTF-8 になる。
文字列をリテラルとして書く場合、ダブルクォーテーションでもシングルクォーテーションもまったく同じ。
code:py
"abc" == 'abc'
文字列は配列のようにアクセスできる。
内部UTF-32で、その場所の文字コードの文字列が取得される。
code:py
"abc"1 == "b"
文字コードを確認する場合 ord を使う
code:py
print(ord("a"))
Unicode データベース
https://docs.python.org/ja/3/library/unicodedata.html
Python: 拡張書記素クラスターを考慮して文字数を求める
https://blog.sarabande.jp/post/85608562818
直接書くことが難しい文字はエスケープシーケンスで書く。