Woche 05#
f-strings#
print("2", ":", 2, ":", 2**0.5)
2 : 2 : 1.4142135623730951
print( f"""zwei plus drei: {2+3}""" )
zwei plus drei: 5
n = 5
print( f"""{n=}: { [ (x, x**0.5) for x in range(0,n) ] =}""" )
n=5: [ (x, x**0.5) for x in range(0,n) ] =[(0, 0.0), (1, 1.0), (2, 1.4142135623730951), (3, 1.7320508075688772), (4, 2.0)]
datetime#
https://docs.python.org/3/library/datetime.html
from datetime import datetime
geburtstag = "1990-05-15"
geburtsdatum = datetime.strptime(geburtstag, "%Y-%m-%d")
type(geburtsdatum)
datetime.datetime
geburtsdatum.month
5
usw.
Skatkarten#
https://de.wikipedia.org/wiki/Kartesisches_Produkt#Spielkarten, https://de.wikipedia.org/wiki/Farbe_(Kartenspiel)
Rang = [ 'J', 'A', '10', 'K', 'Q', '9', '8', '7' ]
Farbe = ['♣', '♠', '♥', '♦' ] # Kreuz, Pik, Herz, Karo
[ ('♥', 'K' ), ('♥', 'D' ), ... ]
[('♥', 'K'), ('♥', 'D'), Ellipsis]
Skatblatt_tupel = []
Skatblatt = []
for r in Rang:
# print( f"{r=}" )
for f in Farbe:
#print( f"{r=}, {f=}" )
Skatblatt_tupel.append( (f,r) )
Skatblatt.append( f"{f}{r}" )
print(Skatblatt)
['♣J', '♠J', '♥J', '♦J', '♣A', '♠A', '♥A', '♦A', '♣10', '♠10', '♥10', '♦10', '♣K', '♠K', '♥K', '♦K', '♣Q', '♠Q', '♥Q', '♦Q', '♣9', '♠9', '♥9', '♦9', '♣8', '♠8', '♥8', '♦8', '♣7', '♠7', '♥7', '♦7']
Mikroaufgabe: erzeugen Sie Skatblatt
mit Hilfe von List Comprehension!
Skatblatt = [ f"{f}{r}" for r in Rang for f in Farbe ]
print(Skatblatt)
['♣J', '♠J', '♥J', '♦J', '♣A', '♠A', '♥A', '♦A', '♣10', '♠10', '♥10', '♦10', '♣K', '♠K', '♥K', '♦K', '♣Q', '♠Q', '♥Q', '♦Q', '♣9', '♠9', '♥9', '♦9', '♣8', '♠8', '♥8', '♦8', '♣7', '♠7', '♥7', '♦7']
Zum Knobeln: Gegeben sind 2 Spielkarten, Karo ist Trumpf. Welche schlägt?
Hinweis: Es könnte die Funktion index()
nützlich sein, z.B. Rang.index('Q')
== 4
# Beispiel
s1 = '♠A' # Herz Ass
s2 = '♣A' # Pik Ass
Farbe
['♣', '♠', '♥', '♦']
Mini-Projekt#
Wählen Sie aus Skatblatt
zufällig 2 Karten aus: Bibliothek https://python.readthedocs.io/en/stable/library/random.html#random.sample
# https://python.readthedocs.io/en/stable/library/random.html#random.sample
import random as rd
# Beispiel
# rd.sample( [1,2,3,4,5], 2)
rd.sample(Skatblatt, 2)
['♠A', '♠10']
Welche Karte schlägt?
Was ist der Stich wert? Zusammenzählen des Wertes beider Karten. (Was ist in Skat der Wert von Bube, Dame, König?)
Entwicklen Sie zunächst in einzelnen Zellen. Schreiben Sie dann eine Funktion stich(s1,s2)
, die die höherwertige Karte und den Wert des Stiches zurückgibt.
A x A#
https://de.wikipedia.org/wiki/Kartesisches_Produkt#Endliche_Mengen
A = [ 0, 1, 2, 3 ]
Menge M1
aller geordneten Tupel A x A:
M1 = [ (x,y) for x in A for y in A ]
print( M1 )
[(0, 0), (0, 1), (0, 2), (0, 3), (1, 0), (1, 1), (1, 2), (1, 3), (2, 0), (2, 1), (2, 2), (2, 3), (3, 0), (3, 1), (3, 2), (3, 3)]
Menge M2
aller Tupel A x A, mit x != y
(also ist z.B. (0,0)
nicht enthalten)
M2 = []
for x in A:
for y in A:
if x != y:
M2.append( (x,y) )
print( M2 )
[(0, 1), (0, 2), (0, 3), (1, 0), (1, 2), (1, 3), (2, 0), (2, 1), (2, 3), (3, 0), (3, 1), (3, 2)]
M2 = [ (x,y) for x in A for y in A if x != y ]
print( M2 )
[(0, 1), (0, 2), (0, 3), (1, 0), (1, 2), (1, 3), (2, 0), (2, 1), (2, 3), (3, 0), (3, 1), (3, 2)]
Menge M3
aller Tupel A x A, mit x < y
(also ist z.B. (0,0)
oder (1,0)
nicht enthalten)
M3 = []
for x in A:
for y in A:
if x < y:
M3.append( (x,y) )
print( M3 )
[(0, 1), (0, 2), (0, 3), (1, 2), (1, 3), (2, 3)]
M4 = []
X = A
for x in X:
Y = A[x+1:]
#print( f"{x=}, {Y=}" )
for y in Y:
if x < y:
M4.append( (x,y) )
else:
print( f"verworfen: {x},{y} ")
print( M4 )
[(0, 1), (0, 2), (0, 3), (1, 2), (1, 3), (2, 3)]