Sadece 7 gün içinde Python 3'ü öğrendim ve bayt dizgilerimi anlamamda biraz delik olduğunu hissediyorum. Python 3'te, bir bayt dizgim var b'1234'
varsayalım. Onun yineleyici tamsayılar döndürür:Python 3 bytes.index: daha iyi bir yol?
Python 3.2.3 (default, May 26 2012, 18:49:27)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> for z in b'1234':
... print(type(z))
...
<class 'int'>
<class 'int'>
<class 'int'>
<class 'int'>
ben bayt dizesinde bir tamsayı bulabilirsiniz
(in
tanımı eşitlik arar olmasıdır):
>>> 0x32 in b'1234'
True
Ancak, ben endeksi bulmak istiyoruz Bayt dizesinde verilen bir tamsayı. Ben Python daha şık olduğunu biliyoruz
>>> x = 0x32
>>> b'1234'.index(bytes([x]))
1
: Ben bulmak istiyorum değişken x
varsa, bu şimdiye kadar geldim en iyisidir, Şimdi
>>> b'1234'.index(b'2')
1
: bytes.index
bir alt gerektirir Daha. Açıkça belirgin bir şey eksik. Tek bir tam sayı dizisi oluşturmaktan başka bir şey yapmak için daha basit bir yol var mı? Yoksa bu gerçekten mi?
Ayrıca arkadaki soru da, neden bayt dizinini bulmak istiyorsunuz? – pepr
Eğer bilmeniz gerekiyorsa :) Bu, sanal makinenin bir parçası olup, bunlardan biri talimatların bir bayt dizinine ihtiyaç duymaktadır. Zork ve diğer motor maceralarını o motora dayalı olarak oynamak için kullanılan Z-makine özelliklerinin 3. versiyonunu uygular. Bunu kontrol etmek isterseniz, http://code.google.com/p/pyzmachine adresinde. Bu benim ilk çabam, bu yüzden iyileştirme noktaları takdir ediliyor. –