[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