4

したがって、これはばかげた質問だと確信していますが、python chr() 関数をより深く理解しようとしています。また、整数の引数を常に 3 桁にすることができるのか、それともすべての ASCII 値を固定長にすることができるのか疑問に思っています。

chr(20) ## '\x14'
chr(020) ## '\x10'

なぜそれは私に異なる答えを与えているのですか? 「020」は16進数か何かだと思いますか?また、Windows で Python 2.7 を実行しています。-ありがとう!

4

2 に答える 2

1

charとは何の関係もありません。それはすべて数値リテラルに関するものです。そしてクロスランゲージです。0 は 8 進数、0x は 16 進数を示します。

print 010 # 8
print 0x10 # 16
于 2015-01-28T04:07:17.690 に答える
0

chr一緒に説明するのは理にかなってordいます。

あなたは明らかにPython2を使用しています(8進数の問題のため、Python3は0o接頭辞として必要です)が、両方について説明します。

Python2 では、chr任意の整数を取り、256その拡張 ASCII 文字だけを含む文字列を返す関数です。unichrは同じですが、 までの Unicode 文字を返します0x10FFFFordは逆関数で、(いずれかのタイプの) 1 文字の文字列を取り、整数を返します。

Python3 ではchr、1 文字の Unicode 文字列を返します。バイト文字列に相当するものはbytes([v]). ordまだ両方を行います。

于 2015-07-03T02:37:07.480 に答える