vor einiger Zeit habe ich angefangen mich mit Python zu beschäftigen - zunächst "a byte of python" und "learn pyton the hardway" als Tutorials soweit durchgearbeitet - dann keine Zeit mehr und jetzt das Erste eigene Programm geschrieben, zunächst würde ich es gern vorstellen, Verbesserungsvorschläge hören und an einer Stelle etwas Hilfe beanspruchen. Bitte bedenkt, dass ich wirklich blutiger Anfänger bin.
Zunächst mal Grundlegende Info:
Das kleine Programm gibt die Möglichkeit die E-Nummern für Lebensmittel zu checken - bisher noch alles nur im Terminal, folgen soll noch eine Qt-Oberfläche. Außerdem kann man sich die volle Liste aller Stoffe anzeigen lassen oder eine kurze Info zu den Stoffen. Grundlegend funktioniert das ganze auch schon. Im übrigen sind einige Stellen EXTRA als Funktion gemacht - einfach zum üben, so z.B. die start() oder auch wto_function().
Auch die Liste mit Stoffen ist bisher nur auf 2 Einträge reduziert und wird aus einer txt eingelesen - um das öffnen und auslesen zu üben.
Zunächst mal der Code:
Code: Alles auswählen
#!/usr/bin/python
#-*- coding: utf8 -*-
#-------------------
#imports
from sys import exit
#-------------------
#functions:
#start of the app/script and question about what to do
def start():
print "Willkommen bei E-Check!"
print "Was wollen Sie tun?"
print "a: Einen Stoff checken."
print "b: Kurze Infos zu E-Stoffen."
print "c: Komplette Liste zeigen"
print "q: Beenden!"
global wto
wto = raw_input(">")
wto_function(wto)
#wto = what to do function for first choice about: check numbers, infos or quit.
def wto_function(choice):
if wto == "a":
check_e()
elif wto == "b":
print_info()
elif wto == "c":
list_()
elif wto == "q":
exit(0)
else:
start()
#function to give the user the hole list - not clever
def list_():
lst = file('e_list_db.txt', 'r')
while True:
line = lst.readline()
if len(line) == 0:
break
print line
lst.close()
raw_input("Enter um zurück zum Menü zu gehen!")
start()
#check number and gives back only conntent of one special number, if again - check2 is used
def check_e():
print "Geben Sie bitte die Nummer ein."
number = input("E:")
f = file('e_list_db.txt', 'r')
while True:
line = f.readline()
if len(line) == 0:
break
for line in f:
if line.startswith('E%r' %number):
print line
check_e2()
#else: pass
f.close()
#checks if there is wish for checking another one, if not - back to menu
def check_e2():
check = raw_input("Wollen Sie eine weitere Zahl kontrollieren? J/N")
if check == "J":
check_e()
elif check == "N":
start()
else:
check_e2()
#function prints out information text about e-numbers from txt file (just done this way to learn it)
def print_info():
print """Gemeint ist damit die Liste der in der Europäischen Union zugelassenen Lebensmittelzusatzstoffe.
Sie wird unterteilt in:
- Lebensmittelfarbstoffe
- Konservierungsstoffe
- Antioxidantien und Säureregulatoren
- Süßstoffe
- Emulgatoren, Stabilisatoren, Verdickungsmittel und Geliermittel
- Rieselhilfen, Säureregulatoren
- Geschmacksverstärker
- und Weitere Stoffe.
In Deutschland ist die Liste als Anhang der Zusatzstoffzulassungsverordnung mit Höchstmengen und Eingrenzung auf bestimmte Lebensmittel enthalten. Der ADI-Wert (für Acceptable Daily Intake), engl. für erlaubte Tagesdosis (ETD), beschreibt die täglich tolerierbare Aufnahmemenge von Nahrungsmittelzusatzstoffen für den menschlichen Körper in Milligramm pro Kilogramm Körpergewicht (mg/kg) und gibt die Menge an, die über die gesamte Lebenszeit täglich gegessen werden kann, ohne dass dadurch gesundheitliche Gefahren zu erwarten wären.
"""
raw_input(">Enter für Menü")
start()
#-------------------
#starting first function - it's the menu
start()
So an einer Stelle brauche ich allerdings noch Hilfe und zwar hier:
Code: Alles auswählen
#check number and gives back only conntent of one special number, if wished again - check2 is used
def check_e():
print "Geben Sie bitte die Nummer ein."
number = input("E:")
f = file('e_list_db.txt', 'r')
while True:
line = f.readline()
if len(line) == 0:
break
for line in f:
if line.startswith('E%r' %number):
print line
check_e2()
#else: pass
f.close()
So also dann - Feuer frei!