[Python-de] mit Bytes rechnen
Stefan
df9bi at arcor.de
Mi Mai 13 10:52:37 CEST 2015
Hallo,
ein Kollege von mir versucht ein paar Delphi Codeschnipsel in Python
umzusetzen. Da ich selber keine Ahnung von Python habe, suche ich hier
nach Tipps, die ich weitergeben kann.
Der Kollege sagte mir, das es in Python den Datentyp byte nicht gibt,
wohl aber Bytearray.
Es geht um eine Checksummenberechnung (Nullsumme).
In Delphi / Pascal sieht das folgendermaßen aus:
procedure sendestring(s:string);
// hänge an Sting s eine Checksumme an und sende das raus
var c : byte;
i : integer;
begin
// s := 'Hello World'; // Beispieltext
c := 0; // Anfangswert der Checksumme
for i := 1 to length(s) do c := c - ord(s[i]);
// die Ascii-codes nacheinander subtrahieren
s := s + char(c); // und dann an den String anhängen
sende(s); // String + Checksumme senden
end;
Die Checksumme kann dann folgendermaßen geprüft werden:
function checkechecksumm(s:string):boolean;
var c : byte;
i : integer;
begin
c := 0; // Anfangswert auf 0
for i := 1 to length(s) do c := c + s[i]; // alle Bytes addieren
result := (c = 0); // wenn Summe = 0, dann ok
end;
So wie ich das verstanden habe, kann ich in Python nicht mit Bytes
rechnen, zumindest nicht mit einzelnen Bytes. Könnte ich aber dasselbe
erreichen, wenn ich ein einzelnes Element aus einem Bytearray verwende?
also ungefähr so:
c = bytes([0]) # array mit nur einem Element
c[0] = 0
for x in range (0,4)
c[0] = c[0] - s[x]
Gruß
Stefan
Mehr Informationen über die Mailingliste python-de