Grundlagen Python

So einfach geht es !


In [1]:
x = 2**14 #es wird 2 hoch 12 berechnet d.h. 2*2*2*2*2*2*2*2*2*2*2*2 Welche Zahl ergibt das ?

Der zu berechnende Wert wurde der Variablen x zugewiesen

Geben Sie die Zahl mit print aus. Lösung : print (x)


In [2]:
print (x)
# Wie sind Variablen Namen zu definieren ?


16384

Variablen Namen beginnen immer mit ?

"""einem Buchstaben oder _ dürfen keine Sonderzeichen oder keine Leerzeichen enthalten"""


In [3]:
x= x/2 # was wird jetzt berechnet ?
# geben SIe das Ergebnis aus. Welcher Befehl ist zu verwenden ?

In [4]:
print x


8192

Einfache Datentypen


In [5]:
x = 14 # ganzzahlig (integer)
print x


14

Operationen mit Zahlen


In [6]:
11 * 27 #Ergebnis int


Out[6]:
297

In [7]:
11 * 27.0 #Ergebnis float


Out[7]:
297.0

In [8]:
type(24/3.0) #Ergebnis float


Out[8]:
float

In [9]:
24//3 #Ergebnis int


Out[9]:
8

In [10]:
21//3.0 #Ergebnis float


Out[10]:
7.0

In [11]:
21//3.2 #Ergebnis float whose value is the lower integer bound of 21//3.2


Out[11]:
6.0

In [14]:
21%4 #Ergebnis int (the remainder of dividing 21 by 4)


Out[14]:
1

In [15]:
21%4.4 #Ergebnis float (21 - 21//4.4)


Out[15]:
3.3999999999999986

In [16]:
21**4 #Ergebnis int (21 hoch 4)


Out[16]:
194481

In [17]:
21**4.2 #Ergebnis float


Out[17]:
357537.0379611622

Operationen mit Zeichenketten

Indexing


In [18]:
x = "Dies ist ein Text in Python!"

In [19]:
x[3] #Ergebnis das 4-te (i+1)-te Zeichen in x


Out[19]:
's'

In [20]:
x[-1] #Ergebnis das letzte Zeichen in x


Out[20]:
'!'

In [21]:
x[-2] #Ergebnis das zweit-letzte Zeichen in x


Out[21]:
'n'

In [22]:
x[32] #IndexError. Out of range


---------------------------------------------------------------------------
IndexError                                Traceback (most recent call last)
<ipython-input-22-05b4bebcb96d> in <module>()
----> 1 x[32] #IndexError. Out of range

IndexError: string index out of range

In [23]:
len(x) #ergibt die Länge des strings (als integer)


Out[23]:
28

In [24]:
y=str(100) #Umwandlung der Zahl 100 in einen string
print(y)
type(y)


100
Out[24]:
str

Slicing


In [25]:
x[7:11] #Gibt das 8. bis zum 11. Zeichen zurück (i.e., 11-7 Zeichen)


Out[25]:
't ei'

In [26]:
x[7:] #Gibt jedes Zeichen ab der Position 7 bis zum Ende zurück(Wichtig: Es ist das 8. Zeichen, da der Index bei 0 beginnt)


Out[26]:
't ein Text in Python!'

In [27]:
x[0::2] #returns a substring starting from 0, going to the end (omitted), 2 characters at a time


Out[27]:
'De s i eti yhn'

In [28]:
x[::-1] #Start from whatever makes sense as the start, go to whatever makes sense as the end, go backward
# one character at a time
#Here it makes sense to start at the end and go all the way to the beginning (because of the -1)
#Returns a reversed string


Out[28]:
'!nohtyP ni txeT nie tsi seiD'

Suche [Searching]


In [29]:
x.find('ein') #Returns the location of the first 'ein' found


Out[29]:
9

In [30]:
x.find('halo') #Returns -1. I.e., the substring was not found in x


Out[30]:
-1

Unveränderbarkeit [immutable]


In [31]:
x[3] = 'b' #TypeError. Can't change a string


---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-31-4da725c1ef22> in <module>()
----> 1 x[3] = 'b' #TypeError. Can't change a string

TypeError: 'str' object does not support item assignment

In [32]:
x = "Hallo"
y = x
print(id(x),id(y))
#x and y are the same string


(75850736L, 75850736L)

In [33]:
x="Dies ist ein Text in Python!"
print(id(x),id(y))
#x now points to a different string. y is still the same old string at the same old location!


(75951344L, 75850736L)

Verknüpfung von strings [Concatenation]


In [34]:
#Der plus operator concatenates two strings to give rise to a third string
x="Hallo"
y="Peter"
z=x+y
print(x,y,z,id(x),id(y),id(z)) #x, y und z sind unterschiedliche strings


('Hallo', 'Peter', 'HalloPeter', 75850736L, 76295064L, 76446528L)

In [35]:
#Since python doesn't understand that we need a space between Hello and Dolly, we need to add it ourselves
z = x + " " + y
print(z)


Hallo Peter

Boolesche Variablen


In [36]:
x=4
y=2
z=(x==y) #False weil x und y nicht gleich sind
z=(x==x) #True weil x und x gleich sind

In [37]:
#Comparison is by value
x = "Hallo"
y = "Hallo"
print(id(x),id(y)) #Different strings


(75851136L, 75851136L)

In [38]:
print(x == y) #But they have the same value


True

In [39]:
x=8
print(x,bool(x)) #Non-zero numbers, strings with values are always True


(8, True)

In [40]:
x='' #Leerer string
print(x,bool(x)) #Leere strings und die Zahl 0 sind immer False


('', False)

Logische Operationen


In [41]:
x=4
y=5
print(x>2 and y>2) #True because both x and y are greater than 2


True

In [42]:
print(x>2 and y<2) #False because one is False


False

In [43]:
print(x<2 and y<2) #False because both are False


False

In [44]:
print(x>2 or y>2) #True because at least one is True


True

In [45]:
print(x<2 or y>2) #True because at least one is True


True

In [46]:
print(x<2 or y<2) #False because both are False


False

In [47]:
print(not(x>2 or y>2)) #False because x>2 or y>2 is True


False

In [48]:
print(x or y) #4 because x is True (non-zero) so no need to evaluate y. Value of x is returned


4

In [49]:
print(x and 0+3) #3 because x is non-zero but need to check the second operand as well. That evaluates to 3


3

In [50]:
S = "Los geht es"
X = "s"
X in S # ergibt true da "s" in S enthalten ist


Out[50]:
True

Zuweisungen an Variablen


In [51]:
x = p + 10 #NameError! p ist nicht definiert


---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-51-370ee1ba9443> in <module>()
----> 1 x = p + 10 #NameError! p ist nicht definiert

NameError: name 'p' is not defined

In [52]:
p = 70
x = p + 20 #jetzt funktioniert es
print(x)


90

In [53]:
x,y = 3,4 #Zuweisung in der Reihenfolge der Variablen
print(x,y) #x ist 3 und y ist 4


(3, 4)

In [54]:
x = 70
x += 40
y = 50
y -= 19
print(x) #x ist 110 denn x += 40 ist equivalent zu x = x+40
print(y) #y ist 31 denn y -= 19 ist äquivalent zu y = y - 19


110
31

In [ ]:

Mathematische Operationen


In [55]:
import math as m

In [56]:
import math as m
x=45
y=m.sin(x)
print(y)


0.850903524534

Hash Werte erzeugen


In [57]:
import hashlib
y=str(1200)
z=hashlib.md5(y)
print(z)


<md5 HASH object @ 00000000048A1490>

In [58]:
import hashlib
y="abcdefghijk" #gleiche strings ergeben gleiche hashes
x="abcdefghijk"
x1="abcdffgijk"
x2="abcdffgijk"
t=hashlib.sha256(y)
print(t.hexdigest())
z=hashlib.sha256(x)
print(z.hexdigest())
w=hashlib.sha256(x1)
print(w.hexdigest())
v=hashlib.sha512(x2)
print(v.hexdigest())
m=len(v.hexdigest())
print(m)
print(type(v))
x3=v.hexdigest()
print(type(x3))
print(x3[:64])
print(x3[64:])


ca2f2069ea0c6e4658222e06f8dd639659cbb5e67cbbba6734bc334a3799bc68
ca2f2069ea0c6e4658222e06f8dd639659cbb5e67cbbba6734bc334a3799bc68
350b178c39a35b06cbe9cfafadad47feacf52380e9a60a228ece02c74fd2a84b
04c901c634ca3f8d1086ba87b744b8fdc252bfbf592b6589a5036b46d0967618801f9b5d5509b068db88789a0f90650040f5322a17e40dba8c74881f821efdcc
128
<type '_hashlib.HASH'>
<type 'str'>
04c901c634ca3f8d1086ba87b744b8fdc252bfbf592b6589a5036b46d0967618
801f9b5d5509b068db88789a0f90650040f5322a17e40dba8c74881f821efdcc

Arbeiten mit bit-Werten


In [59]:
y=65
x=bin(y)# Umwandlung des Wertes in y in eine binäre Darstellung
print(x)
x1=x.split('0b') #bitweise Darstellung erzeugt mit split
print(x1[1])
z=hex(y)
print(z)
w='A'
print(ord(w))# ordnet dem Zeichen in der Variablen w eine Ascii Ordnungszahl zu
chr(65)# ordnet der Zahl ein Ascii Zeichen zu


0b1000001
1000001
0x41
65
Out[59]:
'A'

In [60]:
print(bin(65))
bin(65 << 4) #shift der binären Zahl um 4 Stellen nach links


0b1000001
Out[60]:
'0b10000010000'

In [ ]:


In [ ]: