Jump to content

Python, die verpasste Chance?


Recommended Posts

@Egoist ist doch heftiger als ich gedacht habe. Die Vorkenntnisse die hier erforderlich sind übersteigen mein wissen erheblich, sodas immer eine grosse Wissenslücke da ist, die von mir nicht so schnell aufgeholt werden kann. Ich muss ohne meine Englisch Kenntnisse wirklich bei null anfangen. Und das will ich euch hier nicht zumuten. Die Videos in YouTube helfen hier schon . Danke!  Ich verfolge den Thread aber im Hintergrund.

Gruss Dolomon

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 6 Stunden schrieb Egoist:

Du scheinst schon gut in das Thema eingestiegen zu sein, mit Anaconda hast Du auf alle Fälle die umfangreichere Umgebung wie ich.

Vielleicht hast Du ja schon Ideen, wie wir uns weiter entwickeln können, oder was Du gern programmiert hättest.

Als einsamer Vorturner, vergeht mir bestimmt rasch die Lust.

 

 

Moin,

meine Intention ist realativ klar!

Da ich meinen Rouletteansatz rein aus der Chartanalyse generiere, werde ich versuchen das mit Python umzusetzen, zumindest lernt man coden dadurch :)

 

Ich habe gestern noch entsprechende Module gefunden, wo ich dann auch gleichzeitig ggfs. ein Chartprgramm für mein Trading entwickeln kann.

https://plot.ly/products/dash/

ansonsten bietet die mathplot genügend Gestaltungspielraum:

https://python-graph-gallery.com/120-line-chart-with-matplotlib/

 

Du hast ja in deinem letzten Beispiel schon Dateioperationen eingebaut, hierfür benötige ich dann nur noch das einlesen von Texdaten für Permanzen bzw. werde ich Ticks einlesen

um gleich gleichzeitig auch Börsenfeeds zu verarbeiten, also auch mit Timestamps arbeiten.

"www.youtube.com/watch?v=gBR_UU8tyIQ"

https://www.python-kurs.eu/pandas.php

 

Gruss

 

 

2018-07-01_0830.png

2018-07-01_0831.png

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 5 Stunden schrieb Egoist:

 

Jo, es besteht.

 

Momentan kämpfe ich mit mir, ob ich mir das S8 Note holen soll.

 

Da mir die Akkulaufzeit fast am wichtigsten ist lachte ich mir jetzt ein Huawei P20 an. Läuft überraschend lang. Habe aber zumeist zwei Geräte in Verwendung. 

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 15 Stunden schrieb dolomon:

@wiensschlechtester du scheinst ja gut rein zu kommen in die Materie. Sag mir mal Bescheid wenn das was du vorhast auf dem Huawei läuft!

Vielen Dank 

Dolomon

Hi dolomon,

 

gut reinkommen ist etwas übertrieben, dafür mache ich noch ein extra Posting.

 

Bezüglich Apps für Andere. Bis jetzt hat mir die Programmierung von fremden Ideen noch nie etwas gebracht ausser Zeitverbrauch, somit ist mangelnde Begeistetung meinerseits bei Anfragen wohl durchaus verständlich. Dies bedeutet kein endgültiges Nein jedoch bedarf es guter Argumente.

 

Ich bevorzuge immer ein einfaches klares Design, als kleines Beispiel ein Screeenshot eines der Zeitverschwendungen (mehrere Paramater/Satzeinstellungen ausgetestet)

Beispiel.jpg.d7e0c44fa2d71bf2840909047807734d.jpg

 

 

 

 

 

 

 

bearbeitet von wiensschlechtester
Link zu diesem Kommentar
Auf anderen Seiten teilen

Am 27.6.2018 um 22:44 schrieb Egoist:

 

Eine sehr gute Entwicklungsumgebung bietet das kostenfreie "PyCharm"

 

Vor allen Dingen klappt das mit der Installation der Bibliotheken auch mit der 64bit Version reibungslos und komfortabel.

 

 

Anmerkungen zur Installation

 

Vielleicht mache ich meinem Nick nun alle Ehre, aber was solls.

 

Mit PyCharm hatte ich meine Schwierigkeiten.

Was in anderen Sprachen üblicherweise Bibliothek genannt wird heißt in Python Modul.

Jetzt setzt @Egoist das Vorhandensein von dem Modul numpy voraus, wird aber nicht automatisch mitinstalliert.

Häufig werden Module in Python über Zusatzprogramme installiert. Sehr beliebt ist PIP.

Funtioniert wohl wesentlich einfacher in Linux als in Windows10.

 

Für Linux: 

Bei Windows10 muß man schon mehr machen!

Leichter geht es über das Installationsprogramm Anaconda . https://de.wikipedia.org/wiki/Anaconda_(Software)

Donwnload: https://www.anaconda.com/download/

Anleitung: https://medium.com/@GalarnykMichael/install-python-on-windows-anaconda-c63c7c3d1444

 

Dies erklärt auch warum @novice diesen Weg gegangen ist, und jetzt Spyder verwendet.

 

Kleine Ergänzung zum Begriff Modul:

 

Bibkliotheken / Module in Python

Was in anderen Sprachen üblicherweise Bibliothek genannt wird heißt in Python Modul.

 

Was ist nun ein Modul?:
https://www.youtube.com/watch?v=sPBctV8nASk&list=PL5bFwGzHA_6kH79dst9SCEz2j99IaDNv9&index=12

 

So kann man naschauen in welchen Verzeichnissen Python nach Modulen sucht:
https://www.youtube.com/watch?v=A-k2rjw6O9k&list=PL_tdPUem3eE_k40i65IdRPWrAZxoHcN4o&index=34

 

bearbeitet von wiensschlechtester
Spider in Spyder, naja "Falschschreibung" ist ja schon ein Markenzeichen von mir.
Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 16 Stunden schrieb novice:

Moin,

meine Intention ist realativ klar!

Da ich meinen Rouletteansatz rein aus der Chartanalyse generiere, werde ich versuchen das mit Python umzusetzen, zumindest lernt man coden dadurch :)

 

Moin novice,

 

das lernen steht hier klar im Vordergrund. Schön, wie Du Dir bereits die Füsse nass gemacht hast.

Natürlich laden die hunderttausend Module, die es für Python zu geben scheint, zum experimentieren ein, nur zu...

 

Wenn wir jedoch etwas konsistent bleiben wollen, sollten wir erst die wichtigsten Module ausschöpfen, ehe wir vielleicht zu früh über Bord springen.

 

vor 16 Stunden schrieb novice:

Ich habe gestern noch entsprechende Module gefunden, wo ich dann auch gleichzeitig ggfs. ein Chartprgramm für mein Trading entwickeln kann.

https://plot.ly/products/dash/

 

Das Projekt macht zwar recht viel Wind im Vorfeld, aber nach einem Jahr scheint nicht mehr viel davon übrig zu sein.

Ich würde davon die Finger lassen.

 

vor 16 Stunden schrieb novice:

ansonsten bietet die mathplot genügend Gestaltungspielraum:

https://python-graph-gallery.com/120-line-chart-with-matplotlib/

 

Auf alle Fälle ist diese Bibliothek erste Sahne und wir werden es schwer haben, alle Möglichkeiten nur zu erkunden.

 

vor 16 Stunden schrieb novice:

Du hast ja in deinem letzten Beispiel schon Dateioperationen eingebaut, hierfür benötige ich dann nur noch das einlesen von Texdaten für Permanzen bzw. werde ich Ticks einlesen

 

Bitte verkompliziere die Sache nicht zu früh, denn die Einführung von Tickzeiten delinearisiert die Daten.

Ähm... also linear sind sie dann zwar noch, aber die Zeitachse wird mal gestaucht und mal gedehnt.

 

vor 16 Stunden schrieb novice:

um gleich gleichzeitig auch Börsenfeeds zu verarbeiten, also auch mit Timestamps arbeiten.

"www.youtube.com/watch?v=gBR_UU8tyIQ"

https://www.python-kurs.eu/pandas.php

 

Das Webinar habe ich nur eine Weile angesehen, ich will nicht sagen es hat mir nicht gefallen (später),

aber es stehen massive kommerzielle Interessen dahinter.

 

Um "pandas" habe ich mich heute gekümmert.

Auch um das Einlesen von Permanenzdaten aus dem Internet, aber es ist nicht so einfach, wie es aussieht.

 

Konkret habe ich die Seite vom Casino Wiesbaden in pandas eingeladen,

bekam aber u.a. eine Tabelle mit fast 2000 Spalten.

Da gibt es noch Verbesserungsbedarf.

 

Wenn ich noch dazu komme, mache ich ein Importmodul, welches auf der Platte liegende Permanenzen filetiert.

 

 

Gruss vom Ego

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 9 Minuten schrieb wiensschlechtester:

Mit PyCharm hatte ich meine Schwierigkeiten.

 

Moin Wiener,

 

ich hatte auch erst Verständnisprobleme.

Wenn mit der Installation von Anaconda alles schon an Bord ist, go 4 it!

 

In PyCharm werden scheinbar die Module in das geöffnete Projekt installiert.

Dieses läuft wohl in einer virtuellen Umgebung.

 

Installierst Du was mit pip im Consolenpython, landet es noch lange nicht in PyCharm und umgekehrt.

Ich muss also alles doppelt installieren, wenn ich meine *.py später freilassen will.

 

Allerdings listet PyCharm alle (gefühlt 100.000) Module auf und man kann sie mit einem Mausklick nachinstallieren.

Bauen sie Mist, versauen sie nicht Deine Pythonumgebung.

 

vor 24 Minuten schrieb wiensschlechtester:

So kann man naschauen in welchen Verzeichnissen Python nach Modulen sucht:
https://www.youtube.com/watch?v=A-k2rjw6O9k&list=PL_tdPUem3eE_k40i65IdRPWrAZxoHcN4o&index=34

 

Danke für den Link.

 

 

Gruss vom Ego

(der betrübt ist, weil die Debrecziner hier wieder aus den Regalen verschwunden sind...)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Heute (also gestern) habe ich mit ein paar Modulen herumexperimentiert.

 

BS4 aka BeautifulSoup besorgt schon eine gewisse Vorfolterung ;) der Daten, wenn sie aus dem Netz stammen.

Pandas will das noch besser machen, scheitert aber auch an einigem Input.

Pandas kann nach Übergabe einer url selbst nach Daten im Netz suchen und diese analysieren.

BS4 musste ich mit der urllib unter die Arme greifen.

 

Daher würde ich vorschlagen, wir laden die Permanenzen zunächst händisch herunter und werten die Textdateien auf der heimischen Platte aus.

Das geht im Falle von Wiesbaden auch monatsweise (funzt) oder jährlich (? nicht probiert.)

 

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 7 Minuten schrieb Egoist:

 

Daher würde ich vorschlagen, wir laden die Permanenzen zunächst händisch herunter und werten die Textdateien auf der heimischen Platte aus.

Das geht im Falle von Wiesbaden auch monatsweise (funzt) oder jährlich (? nicht probiert.)

 

 

Dies würde ich auch vorschlagen.

 

Alleine schon aus dem Grund möglichst viele an Bord zu holen, und somit sollte der von Dir schrittweise Aufbau beibehalten werden.

Wenn ich auch befürchte, dass es bis jetzt für gänzlich Unbeleckte zu schnell vorangeht.

 

Bei Bedarf, nach diversen Nachfragen, kann man ja noch immer detailliertere Threads erstellen, mit Textauszügen aus diesem inklusive Ergänzungen.

Nur Mut Leute, umso mehr mitmachen umso verständlicher wird es.

 

Für eine zukünftige Bibliothek, pardon Modul, müssen wir sowieso einmal diverse Einlesearten durchkauen, und können noch beliebige Funktionen anhängen.

 

So mein Vorschlag für die nächsten Schritte:

  >einlesen(x) : einzelne Coupeingabe, oder Txt-Datei einlesen

  >chancebestimmen(x): alle Chancen

  etc.

 

Ich nehme an Du hast ein Roulette-Modul  gedacht bei dem dann jeder möglichst einfach seine eigenen Systemfunktionen anhängen kann.

 

Servus

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 26 Minuten schrieb wiensschlechtester:

Alleine schon aus dem Grund möglichst viele an Bord zu holen, und somit sollte der von Dir schrittweise Aufbau beibehalten werden.

 

Ich würde mir wünschen, dass es viele schaffen aufzuspringen.

Wer nur still mitliest, verpasst die Chance Fragen zu stellen.

 

Zitat

Wenn ich auch befürchte, dass es bis jetzt für gänzlich Unbeleckte zu schnell vorangeht.

 

Es gibt so viele Möglichkeiten Experte zu werden, selbst ohne Englisch, aber wenn wer keine Zeit opfern will,

dann kann ich auch nicht mehr helfen.

 

Ich fürchte, das Tempo könnte sogar noch anziehen, so viele Kommentare werde ich wohl lange nicht mehr schreiben mögen...

 

Es würde mich aber freuen, wenn sich die Leute hier gegenseitg voranbrächten.

 

vor 26 Minuten schrieb wiensschlechtester:

Ich nehme an Du hast ein Roulette-Modul  gedacht bei dem dann jeder möglichst einfach seine eigenen Systemfunktionen anhängen kann.

 

Python bietet phantastische Möglichkeiten, natürlich wäre ein gut durchdachtes Modul wünschenswert.

In der Hoffnung, dass der Synergieeffekt aus dem Forum, die Bremsklötze kompensieren kann,

die eine Dokumentation hier ausmacht, versuche ich es nicht nur allein.

 

Ich werde Python sowieso lernen, egal, ob jemand mitmacht, oder nicht.

Aber zusammen kann es uns sehr viel weiter tragen...

 

 

just my 2 cents

Ego

bearbeitet von Egoist
Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Egoist,

 

wie Du das Thema angehst, finde ich toll.

Da darf ich nicht zurückbleiben.

 

Zuerst habe ich Anaconda installiert (Meldung: Installiert wurde Anaconda3 5.20(64 Bit)).

 

Dann habe ich den Anaconda Navigator an die Taskleiste angeheftet.

Wenn man den startet, kann man sich mehrere Entwicklungsumgebungen aussuchen.

Ich habe zuerst jupyter hergenommen, Dein erstes Beispielprogramm in eine Zelle gegeben und "Run" geklickt.

Für die Zeile "neuePerm = np.random.random_integers(0,36,size=37)" wurde ein Fehler gemeldei, den ich nicht beheben konnte.

 

Dann habe ich im Anaconda Navigator "Spyder" gelaunched und dort Deinen Quelltext in das Editorfenster hineinkopiert:

1185901947_1.ProgrammEgoist.gif.a09b7139df77cea1bf144f1a5d896f05.gif

Die unterschiedliche Färbung der Kommentare, Anweisungen und Zeichenketten sieht schon mal sehr gut aus!

 

Nach dem Klick auf "Run" lief das Ding tatsächlich durch:

 

1364070614_1.ProgrammEgoist-Run.gif.51b81c71ae5397163f7a1ce5183fb149.gif

 

Kein Grund zum Jubeln!

1. Die Fehlermeldung von jupyter ist wieder da.:

C:/Users/Anwender/.spyder-py3/temp.py:15: DeprecationWarning: This function is deprecated. Please call randint(0, 36 + 1) instead
  neuePerm = np.random.random_integers(0,36,size=37)

 

2.  Die roten Balken im Diagramm stimmen nicht.

 

3. Der Import von numpy und matplotlib.pyplot wurde nicht bemeckert, obwohl ich diese beiden Moduln gar nicht extra installiert habe.

    Wie ist das zu erklären? Hat die Anaconda-Installation sie mitgeschleppt?

    Sollte man sie sicherheitshalber nachinstallieren?

 

O jeh, O jeh, da steht eine harte Zeit an, bis man die Entwicklungsumgebung und die Sprache Python einigermaßen beherrscht!!!

 

Albert

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 22 Minuten schrieb Dr. Manque:

 

3. Der Import von numpy und matplotlib.pyplot wurde nicht bemeckert, obwohl ich diese beiden Moduln gar nicht extra installiert habe.

    Wie ist das zu erklären? Hat die Anaconda-Installation sie mitgeschleppt?

    Sollte man sie sicherheitshalber nachinstallieren?

 

 

 

Diese Frage hat sich geklärt.

 

Wenn man im Anaconda Navigator "jupyterlab" launched, dann kann man eine Fläche "Terminal" anklicken und erhält eine "Windows Powershell".

Ich habe dort auf der Kommandozeile "pip install numpy" eingegeben und nach return

und ein paar Sekunden Wartezeit die Meldung "Requirement already satisfied" erhalten - genauso mit "pip install matplotlib"

In der Farbe rot wurde zusätzlich empfohlen "msgpack" zu installieren.

 

Nach "pip install msgpack" kam die Meldung "Successfully installed msgpack-0.5.6".

 

Albert

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 7 Stunden schrieb Dr. Manque:

 

 

Kein Grund zum Jubeln!

1. Die Fehlermeldung von jupyter ist wieder da.:

C:/Users/Anwender/.spyder-py3/temp.py:15: DeprecationWarning: This function is deprecated. Please call randint(0, 36 + 1) instead
  neuePerm = np.random.random_integers(0,36,size=37)

 

Hatte ich schon dargelegt: neuePerm = np.random.randint(0,36+1,size=37)

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 24 Minuten schrieb novice:

Hatte ich schon dargelegt: neuePerm = np.random.randint(0,36+1,size=37)

 

Danke!

Egoist hatte diese Änderung auch schon in seinem 2. Beispiel-Programm vom Sonntag um 02:27 drin.

 

Unter Spyder ist dieses Programm glatt durchgelaufen, inklusive des rot/schwarz gefärbten Kesselvektors.

Die Zahl der Rotationen hatte ich  von 100000 auf 100 runtergesetzt.

 

Albert

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 10 Stunden schrieb Dr. Manque:

2.  Die roten Balken im Diagramm stimmen nicht.

 

Hallo Albert,

 

es freut mich sehr, weil Du hier mitmachst!

 

Wenn Du die Zahlen auszählst, die unter Trefferbild ausgeworfen sind, wirst Du in Deinem Beispiel 14x 0 Treffer und 14x 1 Treffer finden.

Die roten Balken sollten halb durchlässig sein, dahinter scheinen die grünen durch.

Der linke rote Balken zeigt die 14 Nieten an, der rechts daneben die 14 Plein, die 1x trafen,

weiter rechts kommen dann die Favoriten.

 

Zum Anacondapaket kann ich wenig sagen, aber es scheint besser zu sein, als mein PyCharm.

Vielleicht hole ich mir das auch noch. Allerdings habe ich auf meinem Gartenlappy nur eine winzige C: \ SSD,

denn es ist nur ein Tablet mit Tastatur (in der ein mechanisches Datengrab steckt).

 

 

Gruss vom Ego

 

bearbeitet von Egoist
Link zu diesem Kommentar
Auf anderen Seiten teilen

Am 2.7.2018 um 02:31 schrieb wiensschlechtester:

So mein Vorschlag für die nächsten Schritte:

  >einlesen(x) : einzelne Coupeingabe, oder Txt-Datei einlesen

  >chancebestimmen(x): alle Chancen

  etc.

 

Hallo Wiener,

 

ich habe die Tage daran gearbeitet. Der Massenimport aus den Textdateien von Wiesbaden ist noch in der Mache.

Vorest experimentiere ich viel herum und mache endlos viele Fehler, es ist wie Fahrrad fahren zu lernen.

Man muss halt nur 1x mehr aufstehen, als man auf die Fresse gefallen ist ;)

 

Die roten und schwarzen waren ja etwas mühsamer, Manque/Passe und Impair/Pair solltest Du auch schon hinkriegen.

Dutzende und Kolonnen sind nur unwesentlich komplizierter, ebenso die TVS und TVP.

 

Spannender sind dann noch alle Carre und Cheval, die möglich sind,

oder Orphelins etc. Finals usw. Kesselsektoren dürften nicht die grosse Hürde sein.

 

Was wir zuerst brauchen ist eine Klasse für Permanenzen sowie das Speichern und zurückladen der selben.

 

Am 2.7.2018 um 02:31 schrieb wiensschlechtester:

Ich nehme an Du hast ein Roulette-Modul  gedacht bei dem dann jeder möglichst einfach seine eigenen Systemfunktionen anhängen kann.

 

Genau sowas wäre wünschenswert.

Dann könnte man einfach die Zeile

import Roulettemodul as roul

einbinden und los gehts, mit all den neuen Funktionen und vorbelegten Konstanten.

 

 

Gruss vom Ego

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hier ein Codeschnipsel, den ich unscharf gemacht habe.

Im Kommentar steht wo und warum.

 

import bs4 as bs        #Paket BeautifulSoup wird benutzt
import urllib.request   #Paket urllib wird auch benötigt
import re               #ebenso Regular Expressions

anzahlCoupsinZeile = 37 #hat nur kosmetischen Grund, um die Ausgabe zu stauchen.
newline = 0             #hier zählen wir die Plein mit

#Wenn man einen Permanenztag aus Wiesbaden auf den Drucker geben will,
#ruft man im Browser folgende Seite auf. Das Datum taucht 2x auf,
#die Abfrage ist beispielhaft auf den 30.06.2018 eingestellt.
#Wenn wir eine Benutzeroberfläche hätten, könnte man dort zB das Datum eingeben

url = "https://www.spielbank-wiesbaden.de/typo3conf/ext/lsh_permanenzen/permanenz_tag_druck.php?tischname=TB1R&date=2018-06-30&date2=2018-06-30"
temp = re.findall(r'=[\d|\w|-]*', url)  #kleine Übung mit Regular Expressions, bitte nachschlagen...
print(temp)

quit()      #Wer diese Zeile entfernt, sollte eine Internetverbindung haben, 
            #denn dann wird die Abfrage nach Wiesbaden geschickt.
            #Bitte nur zu Testzwecken und selten nutzen, sonst könnte es Ärger geben...
            
source = urllib.request.urlopen(url)

#Wir speichern den HTML-Text in "source" ab
#unten steht noch die url für die aktuellen Zahlen, dafür ist aber das Programm
#noch nicht ausgelegt.
#source = urllib.request.urlopen('https://www.spielbank-wiesbaden.de/index.php?id=101')

#hier filtert BeautifulSoup alles aus, was uninteressant ist
soup = bs.BeautifulSoup(source,'html.parser')

#in der Suppe wird jetzt nach einer Tabelle gesucht.
table = soup.find('table')

#aus der Tabelle werden jetzt die Zeilen ausgeeinzelt
table_rows = table.find_all('tr')

#tablerows enthält alle Zeilen und die werden nun Zeile für Zeile abgearbeitet
for tr in table_rows:
    td = tr.find_all('td')  #tr = eine Zeile, die versäuberten Spalten kommen nach td
    row = [i.text for i in td] #row ist nun eine kleine Liste aller Spalten
    #print(len(row),row,type(row))  #die kann man sich ausgeben lassen
    if len(row) == 3:      #einige Zeilen haben extreme Ausmasse, die wollen wir nicht
        for col in row:    #liegen 3 Spalten vor, schauen wir die Zeile durch
            if re.match(r'\d{1,2}',col):   #es werden alle 1-2stelligen Zahlen gesucht
                print(col, end=" ")        #hier wurde eine Plein gefunden
                newline += 1
                if newline > anzahlCoupsinZeile:  #hier kommt ein Zeilenumbruch hin
                    newline = 0            #Zähler wird genullt
                    print()                #und ein Zeilenende ausgegeben

Natürlich ist wieder mindestens ein Fehler eingebaut, bin gespannt, wer ihn findet...

 

 

Viel Spass mit Python

wünscht Ego

 

bearbeitet von Egoist
Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 19 Stunden schrieb Egoist:

Natürlich ist wieder mindestens ein Fehler eingebaut, bin gespannt, wer ihn findet...

da ich auf dem Sprung bin, kann ich den Code nicht rennen lassen, tippe auf die letzte Zeile.

 

Bin aber viel besser in Fehler machen als in suchen.

 

Danke für Deine Vorarbeit, Du bist uns anderen doch um einiges voraus.

 

Zitat

Die roten und schwarzen waren ja etwas mühsamer, Manque/Passe und Impair/Pair solltest Du auch schon hinkriegen.

Dutzende und Kolonnen sind nur unwesentlich komplizierter, ebenso die TVS und TVP. 

 

Spannender sind dann noch alle Carre und Cheval, die möglich sind,

oder Orphelins etc. Finals usw. Kesselsektoren dürften nicht die grosse Hürde sein.

 

Nun ja, Du hast zwar eine elegant Lösung für RS vorgezeit, doch ist ja dieser Weg für alle Chancen nicht möglich.

 

Mehrfachverzweigungen gibt es ja in Python nicht, mit if elif schreibt man sich zum Dillo, daher denke ich gerade über zwei Möglichkeiten nach:

 

1) arrys  // muß ich mir noch anschauen

2) lists  // hast Du ja bereits verwendet, doch würde ich die Sache eine Spur anders angehen

  Als Maschinenbauer halte ich mir das Recht vor unelegante Lösungen zu verwenden :hammer:für die Eleganz bist du zuständig - oder wer auch immer zehn Rechner Daheim hat! 

 

Nachtrag: War zu schnell hingerotzt, wie ich es aufzählte müsste man noch die Kesselordnungszahl als Variable mitschleppen. 

 

  Immer von der Zero im Uhrzeigersinn den Kessel entlaggehend:

          rotschw=[Zero, O, X,  etc..

         paiimp=[Zero, 0, X, etc..

  So kann ich leicht für die einzelnen ECs die gleiche Fktionen nutzen , ohne eine Fktion dazwischen setzen zu müssen.

 

  Bei Chancenkombinationen fällt es mir wieder auf den Kopf - also doch lieber:

        rotschw=[Z, R, S,  etc..

         paiimp=[Z, P, I, etc..

 

   mit höheren Chancen:

       ts=[0,31,13, etc...

 

   hm,

wie Du siehst Ego habe ich noch einen langen Weg vor mir

 

Servus

 

 

bearbeitet von wiensschlechtester
Nachtrag
Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 15 Stunden schrieb wiensschlechtester:

da ich auf dem Sprung bin, kann ich den Code nicht rennen lassen, tippe auf die letzte Zeile.

 

Bin aber viel besser in Fehler machen als in suchen.

 

Hallo Wiener,

 

nein, die letzte Zeile ist es nicht, aber vielleicht eine etwas davor.

Was ich vom Programmieren weiss, bedeutet vor allem Fehlersuche.

Alle Programmiersprachen hageln einen mit Fehlermeldungen zu, und dann darf man suchen gehen...

 

 

Zitat

Danke für Deine Vorarbeit, Du bist uns anderen doch um einiges voraus.

 

Keines wegs bin ich vorraus, ich hatte nur einen kleinen Vorsprung, da grad Zeit ist.

Das wird sich ändern und seit dem letzten Post habe ich ganz andere Sachen gemacht.

 

Zitat

Nun ja, Du hast zwar eine elegant Lösung für RS vorgezeit, doch ist ja dieser Weg für alle Chancen nicht möglich.

 

Mehrfachverzweigungen gibt es ja in Python nicht, mit if elif schreibt man sich zum Dillo, daher denke ich gerade über zwei Möglichkeiten nach:

 

Du meinst Case: bla, blubb?

 

Das braucht man in Python nicht, falls es das nicht gibt (keine Ahnung).

Wir hatten den Loop, wo für jede Zahl nachgesehen wurde, ob sie rot, oder schwarz ist.

Da klemmst Du einfach 2 Fallunterscheidungen ein, die abfragen, ob eine Zahl gerade ist, oder kleiner gleich 18

Damit kannst Du in einem Rutsch sofort die Listen roulIP und roulMP auffüllen.

 

 

Zitat

1) arrys  // muß ich mir noch anschauen

2) lists  // hast Du ja bereits verwendet, doch würde ich die Sache eine Spur anders angehen

  Als Maschinenbauer halte ich mir das Recht vor unelegante Lösungen zu verwenden :hammer:für die Eleganz bist du zuständig - oder wer auch immer zehn Rechner Daheim hat! 

 

Nachtrag: War zu schnell hingerotzt, wie ich es aufzählte müsste man noch die Kesselordnungszahl als Variable mitschleppen. 

 

  Immer von der Zero im Uhrzeigersinn den Kessel entlaggehend:

          rotschw=[Zero, O, X,  etc..

         paiimp=[Zero, 0, X, etc..

  So kann ich leicht für die einzelnen ECs die gleiche Fktionen nutzen , ohne eine Fktion dazwischen setzen zu müssen.

 

  Bei Chancenkombinationen fällt es mir wieder auf den Kopf - also doch lieber:

        rotschw=[Z, R, S,  etc..

         paiimp=[Z, P, I, etc..

 

Kann man so machen und ist vielleicht sogar minimal schneller, weil man sich die Daten nur abholt.

 

Zitat

   mit höheren Chancen:

       ts=[0,31,13, etc...

 

Zerospiel ist etwas komplexer, denn es sind die Kesselfächer 0-2 und 33-36

Grosse Serie  sind Kesselfächer 3-7 und 28-32

Orphelins sind Kesselfächer 8-10 und 23-27

Bleibt "die kleine Serie" mit Kesselposition 11-26

 

Das muss man wirklich nicht mit Fallunterscheidungen lösen,

Da bleibt eine feste Map schon Mittel der ersten Wahl.

 

Zitat

 wie Du siehst Ego habe ich noch einen langen Weg vor mir

 

Ich auch, aber es wird sich lohnen.

Der ganze moderne KI Schmonz läuft mit Python wie Butter in der Julisonne...

 

 

Gruss vom Ego

 

bearbeitet von Egoist
Link zu diesem Kommentar
Auf anderen Seiten teilen

Wo ich grad dabei bin:

 

Um Dutzende zu unterscheiden, muss man nur die Zahl auf Zero prüfen und falls kein Zero, durch 12 teilen, abrunden und 1 aufaddieren.

 

Für Col teilt man die Zahl durch 3, behält aber den Teilungsrest.
Für die Zahlen in Col 1 bleibt ein Teilungsrest bei Division durch Drei von 1.

Für die Zahlen in Col 2 bleibt ein Teilungsrest bei Division durch Drei von 2.

Für die Zahlen in Col 3 bleibt ein Teilungsrest bei Division durch Drei von 0.

Dann nochmal prüfen, ob die resultierende Zahl restlos durch Drei teilbar ist, (Teilungsrest =0)

falls ja, ist es ein Col 3 Member.

Edit: Das ist Blödsinn, war doch eben schon klar...

 

Es würde mich tierisch freuen, wenn Ihr mal ein paar Zeilen Code posten würdet...

bearbeitet von Egoist
siehe EDIT
Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 15 Stunden schrieb Egoist:

 

Es würde mich tierisch freuen, wenn Ihr mal ein paar Zeilen Code posten würdet...

Hallo Egoist,

 

ich wollte Dir den Wunsch erfüllen, aber ich kriege kein Posting abgeschickt.

Dies ist nochmal ein Test mit einem ganz einfachen Text.

 

Albert

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 18 Stunden schrieb Egoist:

 

Es würde mich tierisch freuen, wenn Ihr mal ein paar Zeilen Code posten würdet...

Hi Ego, 

 

Dein Wunsch ist mir Befehl, nachfolgend mein erster kleiner Versuch. So klein, dass ich es sogar auf dem Handy während zwei Zugfahrten schrieb. Dank deiner Vorarbeit sparte ich mir ja Tipparbeit

 

zahlAlt=int(input("Alte Zahl eingeben:"))

zahlNeu= int(input("Neue Zahl eingeben :")) 

 

 

def kesselfach(x):

 roulKessel = [0, 32, 15, 19, 4, 21, 2, 25, 17, 34, 6, 27, 13, 36, 11, 30, 8, 23, 10, 5, 24, 16, 33, 1, 20, 14, 31, 9, 22, 18, 29, 7, 28, 12, 35, 3, 26] 

 x= roulKessel.index(x)

 return x

 

zahlAlt=kesselfach(zahlAlt) 

zahlNeu=kesselfach(zahlNeu)

zahlAlt=zahlNeu-zahlAlt

 

if zahlAlt > 18:

 zahlAlt= zahlAlt - 37

elif zahlAlt < (-18) :

  zahlAlt= zahlAlt + 37

 

print("Kesselfachabstand=", zahlAlt) 

 

vor 19 Stunden schrieb Egoist:
vor 19 Stunden schrieb Egoist:

Kann man so machen und ist vielleicht sogar minimal schneller, weil man sich die Daten nur abholt

 

Bin bis jetzt damit gut gefahren. 

 

Bezüglich Chancen bestimmen übernehme ich gerne, falls wer anderer es nicht schon fertig hat. Da mir bis jetzt hohe Chancen wie TS ziemlich egal waren mal die Frage:"Es erwartet eh keiner Cheval oder Carres von mir?" 

 

gn8

bearbeitet von wiensschlechtester
Nachtrag: geschrieben mit QPython
Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich komme an Paroli nicht ran. Der PN-Speicher ist übervoll. Ich soll ihn löschen, weiß aber nicht wie!

 

Vielleicht ist auch mein Konto für die normalen Postings überzogen.

Ich finde nirgendwo einen Löschknopf, stehe voll auf dem Schlauch.

 

Albert

bearbeitet von Dr. Manque
Link zu diesem Kommentar
Auf anderen Seiten teilen

Wie ist deine Meinung dazu?

Du kannst jetzt schreiben und dich später registrieren. Bereits registrierter Teilnehmer? Dann melde dich jetzt an, um einen Kommentar zu schreiben.
Hinweis: Dein Beitrag wird nicht sofort sichtbar sein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Neu erstellen...