string

Liste zu String
list = [ „ha“, „ba“, „la“ ]
string = „“.join(list)          out: „habala “
string = “ „.join(list)          out: “ ha ba la „

2-dimensionales Array

Ziel
3 x 3 Array mit 0 initialisieren

Struktur: List of list
Liste mit 3 Elementen, die selbst Listen sind
array = [ [0, 0, 0],  [0, 0, 0], [0, 0, 0] ]

Umsetzung simple
element = [ „0“] * 3
array = element * 3

Umsetzung variabel
for i in range(3):
.              array.append( [„0“ * 3 ]

RAM

SRAM   (Statisches RAM)
Speicherzellen sind mit Transistoren realsiert. Sie behalten den Zustand auch im Ruhezustand. Bei steigender Flanke werden die Bits übertragen.

DRAM (Dynamisches RAM)
Speicherzellen sind Kondensatoren. Diese verlierten die Daten und muss zyklisch „refreshed“ werden. Dies erfolgt Zeilenweise. Jede Zeile wird in einen Zeilenbuffer geladen, dort verstärkt und zurückgeladen.
Das Auffrischen muss auch im Ruhezstand statt finden, weshalb energiesensitive Geräte auf DRAM verzichten

DDR-SRAM     (Double-Data-Rate SRAM)
Die Verdopplung der Datenübertragung erfolgt, weil auch bei der fallenden Flanke Bits übertragen werden. Ausgelesen werden 2 Bit aufs Mal, wobei eines direkt mit dem Takt verarbeitet werden kann und das zweite in den Speicher abgelegt wird und zusätzlich ausgelesen werden muss.

Es braucht daszu die doppelte Busbreite, als für SRAM

DDR_RAM

PC Bewertung

Prozessor
LenovoThinkPad Ines:               Core-i7, CPU, 620@2.0 GHz x 4
Core i7-620M,    2 x 2.6 GHz
Latop M30 Ines:                            Core-i5-4210U, 4 x 1.7 GHz

OS-Typ
LenovoThinkPad Ines:               64 Bit
Latop Ines:                                    64 Bit

Memory
LenovoThinkPad Ines:               4 GB DDR3-SRAM, @ 1 GHz
Latop Ines:                                    4 GB

Disk                                                aktuell:  keine SSD-Harddisk
Lenovo ThinkPad Ines:               320 GB ,    5400RPM
Latop M-30 Ines:                           500 GB,    5400 rpm, HDD

Graphics
LenovoThinkPad Ines:               Intel: Ironlake Mobile
Latop Ines:                                    HD Graphics 4400,   @1GHz

Anschlüsse
LenovoThinkPad Ines:               3 x USB 2.0, RJ45, VGA, Audio 2 x 3.5mm Klinke
Latop Ines:                                    3 x USB 3.0, RJ45, HDMI, Audio 1 x 3.5 Kllinke

www.notebookcheck.net

Zeilenumbruch nur für Code

return = str( var_1) + “ banana“ + str( var_2 )    \
.                 “ apricots“

return =  var_1  * 2  +  0.1 * var_2    \
+ result_a – result_b

\ auf nächsten Zeile weiterzucoden,
.  wie wenn alles in einer Zeile stünde

for

list

list = ["a", "b" ]
for i in list:              # i sind Elemente
    print i                 # output: a
                            #         b
range(2) = [ 0, 1 ]         # ist nummerierte Liste
for i in range(2):
    print i                # output        0
                                   #               1
for i in range( len(list) ):
    print list[i]          # output: a 
                                   #         b

………………………………………………………………………….
dictionary
dict = {„a“=5,
.            „b“ = 8  }
for i in dict:                     // i sind keywords
.            print i                  // output   a
.                                          //                 b
print dict(„i“)                 // output  5
.                                         //                  8

 

Datentyp

list_1 = [ 2, 7,  9]
type( list_1 )             ->    < type ‚list‘>
type(  list_1[0])       ->     < type ‚int‘ >

list_2 = [„hoi“, „ciao“ ]
type(  list_2[0])       ->     < type ’str‘ >

dict = {  „wurst“ : 5,
“ brot“    :  2   }
type( dict)                ->       <type ‚dict‘ >
type( dict[„wurst“])  ->  < type ‚int‘ >

 

Bytes einlesen

Byte-Struktur
– Formatvariablen definieren definieren Datenstruktur
– Formatvariablen stehen in einem String
– für jede Formatvariable muss eine Variable mitgegeben werden
– folgen grosse Datenpakete als, muss deren Länge
.  bekannt sein und wird vor der Stringvariable eingefügt
– “ > “ bedeutet big endian,  “ < “ littel endian

command = pack(‚ >BH‘ + str(length) + ’s ‚, typ, command, length, data)

Python_Struct_BefehlsTabelle

Vor Daten Schlüsselwörter einfügen
data = pack(‚ >BBH’+str(length)+’s ‚, testnumber, time, command, length, data)

Schlüsselwörter vor Data extrahieren
testnumber = unpack(‚>B‘, data[0:1])
time = unpack(‚>B‘, data[1:2])

Daten ohne Schlüsselwörter
data[:4]                             die ersten 4 Bytes werden weggelassen

Big Endian / Littel Endian
big endian = normal      a = (‚>B‘, 3)            output           a = 00 03
little endian                      a = (‚<B‘, 3)            output           a = 03 00

Info
In Python werden Daten als String übergeben. Sollen diese eine bestimmte Byte-Struktur haben, helfen die Funktionen pack() and unpack().
import struct *