Ich präsentiere ... den Bierrechner :)

Stellt hier eure Projekte vor.
Internetseiten, Skripte, und alles andere bzgl. Python.
Benutzeravatar
snafu
User
Beiträge: 5936
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Dienstag 26. Mai 2009, 13:06

Code: Alles auswählen

#!/usr/bin/env python

import sys


def buy_beer(money, price_bootle, deposit_bottle, bring_back=True):
    bottles, rest = divmod(money, price_bottle)
    if not bring_back:
        return bottles, rest
    deposit = bottles * deposit_bottle
    money_after = rest + deposit
    return bottles, rest, deposit, money_after


if __name__ == '__main__':
    try:
        money = float(raw_input('Wieviel Geld in Bier anlegen: '))
        price_bottle = float(raw_input('Preis pro Flasche: '))
        deposit_bottle = float(raw_input('Pfandpreis pro Flasche: '))
    except ValueError:
        print >> sys.stderr, (
            'Bitte nur Zahlen im korrekten Format angeben!\n'
            '(z.B.: 2.70 statt 2,70)')
        exit(1)

    print (
        'Kaufe %d Flaschen, habe noch %0.2f Euro\n'
        'Nach dem Austrinken gibt es %0.2f Euro an Pfand\n'
        'Kontostand nun %0.2f Euro'
        % buy_beer(money, price_bottle, deposit_bottle))
Benutzeravatar
Hyperion
Moderator
Beiträge: 7477
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Dienstag 26. Mai 2009, 13:23

Das Tool fehlte mir immer bisher :-D

Wunschliste:
- GUI
- Vordefinierter Pfand (für Glasflaschen in D imho 0.08€)
- Vordefinierte Sorten mit Preisen (Kästenpreise?)
- Schnittstelle für eigene Online-Preis-Crawler für den Getränkemarkt seines Vertrauens

Dazu Plugin-System, damit man z.B. so etwas wie den Random-Bier-Chooser proggen kann, der einem bei Entscheidungsschwierigkeiten hilft, eine Sorte zu wählen ;-)

Wenn man dann noch Bewertungssysteme mit einbaut und das ganz womöglich fit macht für den Semantic- und Social-Desktop von KDE, kann man noch einiges rausholen für das komplette Biertrinker-Rundum-Sorglos-Suite :-D
Benutzeravatar
snafu
User
Beiträge: 5936
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Dienstag 26. Mai 2009, 13:31

Zum Pfand: Hatte ich erst vordefiniert, aber wenn man mal ein Flens oder andere Flaschen mit Plöppverschluss kauft, sind es 15 cent Pfand. ;)

Ich werde mal sehen, ob ich ein paar Sachen einbaue. GUI sehe ich aber vorerst als nachrangig an. Mich freut aber die prompte positive Resonanz. :)

Und hey: Ich finde das Ding ernsthaft praktisch. :D

Vielleicht sollte ich es auch in Pfandtomator oder so umbennen. Es gibt ja durchaus Leute mit exzessivem Cola- oder ClubMate-Verbrauch.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7477
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Dienstag 26. Mai 2009, 13:53

Naja, man könnte ja ein Mapping zwischen Sorte und Flasche einbauen. Daraus bestimmt sich der Pfand :-)

Da man ja so seine bevorzugten Biersorten hat, könnte das schon helfen :-D

Na, GUI wäre eben praktischer für die Eingaben / Einstellungen. Aber klar, hat sicher keine Priorität ;-)
n4p
User
Beiträge: 55
Registriert: Dienstag 10. Juni 2008, 11:05

Dienstag 26. Mai 2009, 14:02

Es fehlt in meinen Augen eher die Schleife, wie weit man an einem Abend ca. kommt. (vielleicht auch noch mit der Möglichkeit im noch nüchternen Zustand einen Restwert für Bus / Taxi zu hinterlegen).

Ansonsten schließe ich mich natürlich dem Wunsch nach Preislisten (mit Onlineaktualisierung versteht sich) an. :lol:
Benutzeravatar
Damaskus
Administrator
Beiträge: 936
Registriert: Sonntag 6. März 2005, 20:08
Wohnort: Schwabenländle

Dienstag 26. Mai 2009, 14:32

n4p hat geschrieben:Es fehlt in meinen Augen eher die Schleife, wie weit man an einem Abend ca. kommt. (vielleicht auch noch mit der Möglichkeit im noch nüchternen Zustand einen Restwert für Bus / Taxi zu hinterlegen).
Dito! Und bitte die Auswahlmöglichkeit für Fäßer hinzufügen!

Danke! :wink: :wink:

Gruß
Damaskus
Dauerbaustelle
User
Beiträge: 996
Registriert: Mittwoch 9. Januar 2008, 13:48

Dienstag 26. Mai 2009, 14:50

Und bitte eine Möglichkeit "Ethanolgehalt" mit "Koffeingehalt" auszutauschen - für die Nicht-Alkoholtrinker hier ;)
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Dienstag 26. Mai 2009, 15:03

Alkoholfreies Bier mit Koffein?! Das geht ja mal gar nicht! :twisted:
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
snafu
User
Beiträge: 5936
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Dienstag 26. Mai 2009, 15:56

beercalc.py

beercalc_gui.py

beercalc.ui

Erstmal nur die grafische Umsetzung der bisherigen Funktionen.

Würde wohl ein Hintergrundbild aussehen? Ich dachte daran.
Zuletzt geändert von snafu am Dienstag 26. Mai 2009, 16:00, insgesamt 1-mal geändert.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7477
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Dienstag 26. Mai 2009, 16:00

Postestes das UI-File bitte auch noch? Würds gerne mal antesten! :-)
Benutzeravatar
snafu
User
Beiträge: 5936
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Dienstag 26. Mai 2009, 16:02

Hyperion hat geschrieben:Postestes das UI-File bitte auch noch? Würds gerne mal antesten! :-)
Ja, ganz vergessen. Hab's dazueditiert. Is aber nix besonderes... In Guis bin ich eh nicht so gut (Gestaltung).
Benutzeravatar
Hyperion
Moderator
Beiträge: 7477
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Dienstag 26. Mai 2009, 17:41

lunar hat geschrieben:Da fällt mir dieser kleine Anreiz zur Investition in Bier ein ...
nice :-)
Benutzeravatar
snafu
User
Beiträge: 5936
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Dienstag 26. Mai 2009, 22:28

Ich stehe jetzt vor einem Problem, das ich mir nicht erklären kann: Das Abspeichern neuer Biere ist auf CLI-Ebene einigermaßen implementiert und ich habe mir einen um Biereigenschaften erweiterten ConfigParser geschrieben. Jetzt möchte ich das Ganze in die grafische Oberfläche einbauen und nutze dafür ein QTableWidget. Der entsprechende Abschnitt der Doku empfiehlt das Abschalten der Sortierung, wenn man Elemente per Loop einfügen will. Aber warum wirft mir das einen Fehler?

Code: Alles auswählen

~$ ./beerconf_gui.py
<class 'PyQt4.QtGui.QTableWidget'>
Traceback (most recent call last):
  File "/home/sebastian/beerconf_gui.py", line 32, in <module>
    window = MainWindow()
  File "/home/sebastian/beerconf_gui.py", line 15, in __init__
    self.init_beers()
  File "/home/sebastian/beerconf_gui.py", line 23, in init_beers
    self.beers.sortingEnabled(False)
AttributeError: sortingEnabled
Das Widget erbt doch von QTableView und folglich wundert mich der AttributeError. Oder bin ich blind und übersehe einen Tippfehler meinerseits?

beerconf_gui.py

beerconf.py

beerconf.ui
Benutzeravatar
Hyperion
Moderator
Beiträge: 7477
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Dienstag 26. Mai 2009, 22:51

snafu hat geschrieben:

Code: Alles auswählen

~$ ./beerconf_gui.py
<class 'PyQt4.QtGui.QTableWidget'>
Traceback (most recent call last):
  File "/home/sebastian/beerconf_gui.py", line 32, in <module>
    window = MainWindow()
  File "/home/sebastian/beerconf_gui.py", line 15, in __init__
    self.init_beers()
  File "/home/sebastian/beerconf_gui.py", line 23, in init_beers
    self.beers.sortingEnabled(False)
AttributeError: sortingEnabled
Oder bin ich blind und übersehe einen Tippfehler meinerseits?
Ich glaube schon. Du rufst eine Methode auf, das ist aber ein Attribut!
Antworten