私は 'a' + 1を使って 'b'をC言語にすることができます。そのため、Pythonでこれを行うにはどのような便利な方法がありますか?
私は好きなことを書くことができます:python:intを追加してcharを生成する方法
chr(ord('a')+1)
が、私はそれが最善の方法であるかどうかわかりません。
私は 'a' + 1を使って 'b'をC言語にすることができます。そのため、Pythonでこれを行うにはどのような便利な方法がありますか?
私は好きなことを書くことができます:python:intを追加してcharを生成する方法
chr(ord('a')+1)
が、私はそれが最善の方法であるかどうかわかりません。
Pythonは実際にCとは異なり、文字の種類を持っていないので、いや、CHR(ORDはそれを行う方法である。
あなたがもう少しきれいにそれをやってみたかった場合は、あなたのような何かを行うことができます:。
def add(c, x):
return chr(ord(c)+x)
あなたがやっていることは本当に正しい方法です。 Pythonは、Cやそれに類する言語のように、数値コードポイントと文字を組み合わせません。一度ASCIIを超えると、同じ整数値はエンコーディングに応じて異なる文字を表すことができます。 Cは基本的なハードウェアフォーマットへの直接アクセスを強調しますが、Pythonは明確なセマンティクスを強調します。 Pythonでbytearray
種類があり
- それは、通常の文字列よりも遅いですが、ほとんどC文字列のように振る舞う: - 、255整数、な長さ1とサブストリングのinsetead それは可変であるが、アクセスしてるinidividual要素は0を上げます要素に割り当てることができます。依然としてSTRオブジェクトにキャストされずに文字列をすることができ、それが文字列として表現され、とPython 2に、ほとんどの場所で使用することができる。
>>> text = bytearray("a")
>>> text
bytearray(b'a')
>>> print text
a
>>> text[0]+=1
>>> print text
b
>>> text[0]
98
>>> print "other_text" + text
other_textb
たByteArrayの内容を使用するためにはPython 3を使用する場合テキストオブジェクトとして、単に、そのような「latin1の」またはUTF-8" などの適切なエンコーディングとのdecodeメソッドを呼び出します。?
>>> print ("other_text" + text.decode("latin1"))
それがうまくいくあなたが 『最良』とはどういう意味ですかその文字列を注意して – zmbq
Python 3.xでは、デフォルトでは文字列はUTF8のUnicodeです。 Unicode文字が127を超えてオーバーフローした場合に、整数をUnicode文字に追加する際には、整数を追加する必要があります。http://docs.python.org/howto/unicode.html#the-unicode-type – shimofuri
@shimofuri、python 3文字列はUnicodeです。 Utf-8はエンコーディングです。 – alexis