Python 3.4 bir bayt dizesi ilk kömürü almaya çalışıyorum ama ne zaman indeksi bunu, ben bir int
olsun: Ben almak için bekliyordum olarak,Baytları indekslediğimde neden int alırım?
>>> my_bytes = b'just a byte string'
b'just a byte string'
>>> my_bytes[0]
106
>>> type(my_bytes[0])
<class 'int'>
Bu benim için unintuitive görünüyor b'j'
.
Beklediğim değeri alabildiğimi keşfettim, ama bana bir kesmek gibi geldi.
>>> my_bytes[0:1]
b'j'
Birisi bunun neden olduğunu açıklayabilir mi?
Neden bunun için bir reddetme ve closevote hak ettiğinden emin değilim. Birisi sorunun nasıl geliştirilebileceğini açıklayabilir mi? – meshy
Oy vermedim; Birisi kendileri için açık olduğunu hissettim sanırım ve belgeler bu tür için böyle olduğunu belirtir. Yakın-oy, off-base yoludur (* Unclear *? Bu benim için tamamen açık bir sorudur). –
'my_bytes [0: 1] gibi bir aralık kullanmanın hacklemi gerçekten Python2/Python3 uyumlu kodu yazmamda bana yardımcı oldu. Bu sorunu ele alan uyumlu kod için en iyi uygulamayı içeren bir yanıt görmeyi çok isterim. Örneğin: 'ord (my_bytes [0])' Python2'de bir int verir, ancak 'my_bytes [0]' Python3'te bir int verir. Her ikisinde de çalışmak için, Python3 için gerçekten çirkin görünen ord (my_bytes [0: 1]) kullanıyorum. – proximous