ekleyerek char nasıl üretilir? C dilinde 'b' almak için 'a' + 1'i kullanabilirim, bu yüzden Python'da bunu yapmanın en uygun yolu nedir?
I like it yazabilirsiniz:python: int
chr(ord('a')+1)
ama iyi yolu olup olmadığını bilmiyorum.
ekleyerek char nasıl üretilir? C dilinde 'b' almak için 'a' + 1'i kullanabilirim, bu yüzden Python'da bunu yapmanın en uygun yolu nedir?
I like it yazabilirsiniz:python: int
chr(ord('a')+1)
ama iyi yolu olup olmadığını bilmiyorum.
Evet, bu iyi yoludur Python otomatik olarak karakter ve yolu C ve C++ yapmak int arasında dönüştürmez
Python aslında C aksine, bu yüzden evet, chr (ord bunu yapmak için bir yoldur, bir karakter türüne sahip değil.
Eğer daha temiz bunu biraz yapmak istiyorsa, gibi bir şey yapabileceğini :.
def add(c, x):
return chr(ord(c)+x)
yaptığınız şey gerçekten doğru yoldur.. Python, C ve benzeri diller gibi, sayısal kod noktasıyla bir karakteri karıştırmaz. ASCII'nin ötesine geçtiğinizde, aynı integral değer kodlamaya bağlı olarak farklı karakterleri temsil edebilir. C, temeldeki donanım formatlarına doğrudan erişimi vurgular, ancak python iyi tanımlanmış semantikleri vurgular.
Python bytearray
tipi vardır - düzenli dizeleri daha yavaştır, ama çoğunlukla bir C dize gibi davranır: Bu değişebilirdir , inidividual elemanları 0 yükseltmek acessing - 255 tamsayı numaraları, uzunluğu 1 ile alt dizeleri insetead, ve elemanlara atayabilirsiniz. Yine de, bir dizi olarak ifade edilmektedir, ve Python 2'de, bir dizi bir str nesnesine döküm olmadan birçok yerde olabilir kullanılabilir:
>>> 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 içeriğini kullanmaya Python 3 kullanırken . bir metin nesnesi olarak, basitçe böyle "Latin1" veya utf-8" gibi uygun bir kodlama ile kod çözme yöntemini çağırın:?
>>> print ("other_text" + text.decode("latin1"))
o çalışacağız size 'en iyi' demek istiyorsunuz ne dizeleri uyardı – zmbq
Python'da bir kodlama ile saklanır. Python 2.x'te, varsayılan kodlama bir tamsayı eklemenin sorun olmaması gereken ASCII'dir. Python 3.x'te, dizeler varsayılan olarak UTF8 unicode'dur. Unicode karakterlere bir tamsayı eklerken, 127'nin ötesindedir. http://docs.python.org/howto/unicode.html#the-unicode-type – shimofuri
@shimofuri, python 3 dizeleri Unicode'dir. Utf-8 bir kodlamadır. – alexis