Python – Das erste Skript

22. April 2015 § Ein Kommentar

Ich stand vor der Aufgabe eine konstruierte Sprache mit richtigem Inhalt zu füllen. Also nicht bloss ein paar „Blabla“-Wörte, sondern richtige Vokabeln, Grammatik etc. Vielleicht sogar irgendwann noch eine Schrift.
Um nun jederzeit auf Knopfdruck sämtliche möglichen und erlaubten Silben griffbereit zu haben wollte ich ein kleines Programm schreiben, das mir diese Aufgabe abnahm. Ein guter Wiedereinstieg in die Programmierung. Vor über 20 Jahren eine damals angeblich schon tote Sprache gelernt hat es mich nun wieder gepackt. Diesmal allerdings sollte es eine sein, die aktiv weiterentwickelt wird und für die es eine grosse Community gibt: Python.

Ohne grosse Umschweife hier mal das erste Skript in der derzeitigen (22.04.2015) Version:

# -*- coding: utf-8 -*-

vocals1 = ["a", "e", "i", "o", "u", "ü", "y"]
vocals2 = ["ai", "ao", "au", "ei"]
consonants1 = ["b", "d", "f", "g", "l", "m", "n", "w"]
consonants2 = ["s", "sch", "z", "tsch", "x", "ch"]
endings = ["n", "ng", "k", "t"]

# Vokal / Endung
# V1-E
for everyV in vocals1:
    for everyE in endings:
        if everyE == "k" and everyV in ('y', 'ü'):
            break
        else:
            print '%s%s' % (everyV, everyE)

#Konsonant / Vokal
# C1-V1
for everyC in consonants1:
    for everyV in vocals1:
        print '%s%s' % (everyC, everyV)

# C1-V2
for everyC in consonants1:
    for everyV in vocals2:
        print '%s%s' % (everyC, everyV)

# C2-V1
for everyC in consonants2:
    for everyV in vocals1:
        print '%s%s' % (everyC, everyV)

# C2-V2
for everyC in consonants2:
    for everyV in vocals2:
        print '%s%s' % (everyC, everyV)

#Konsonant / Vokal / Endung
# C1-V1-E
for everyC in consonants1:
    for everyV in vocals1:
        for everyE in endings:
            if everyE == "k" and everyV in ('y', 'ü'):
                break
            else:
                print '%s%s%s' % (everyC, everyV, everyE)

# C2-V1-E
for everyC in consonants2:
    for everyV in vocals1:
        for everyE in endings:
            if everyE == "k" and everyV in ('y', 'ü'):
                break
            else:
                print '%s%s%s' % (everyC, everyV, everyE)

Das gleiche Script, diesmal aber mit Funktionen die die gleichen Codeabschnitte zusammenfassen.

# -*- coding: utf-8 -*-

def create_syllables():
	""" create_syllables does exactly that, it creates syllables.
		Upcoming versions should be able to import rules for creating from a
		ini File """

		
	""" begin of function definition """
	def consvocs(c, v):
		""" consvocs creates syllables containing consonant / vocal """
		b = ""
		for everyC in c:
			for everyV in v:
				b += '%s%s\n' % (everyC, everyV)
		return b
	
	def consvocsend(c, v, e):
		""" consvocsend creates syllables containing consonant / vocal / end """
		b = ""
		for everyC in c:
			for everyV in v:
				for everyE in e:
					if (everyE == "k" and everyV == "y") or \
					   (everyE == "k" and everyV == "ü"):
						break
					else:
						b += '%s%s%s\n' % (everyC, everyV, everyE)
		return b
	""" end of function definition """

	
	""" set of vars - start """	
	vocals1 = ["a", "e", "i", "o", "u", "ü", "y"]
	vocals2 = ["ai", "ao", "au", "ei"]
	consonants1 = ["b", "d", "f", "g", "l", "m", "n", "w"]
	consonants2 = ["s", "sch", "z", "tsch", "x", "ch"]
	endings = ["n", "ng", "k", "t"]

	buffer = ""
	""" set of vars - end """

	
	# Vokal / Endung
		""" Since for vocal / ending only one possible combination exists, no
			function is needed """
	for everyV in vocals1:
		  for everyE in endings:
		      if (everyE == "k" and everyV == "y") or \
		         (everyE == "k" and everyV == "ü"):
		          break
		      else:
		          buffer += '%s%s\n' % (everyV, everyE)


	#Konsonant / Vokal
	
	buffer += consvocs(consonants1, vocals1)
	buffer += consvocs(consonants1, vocals2)
	buffer += consvocs(consonants2, vocals1)
	buffer += consvocs(consonants2, vocals2)

	
	#Konsonant / Vokal / Endung
	
	buffer += consvocsend(consonants1, vocals1, endings)
	buffer += consvocsend(consonants2, vocals1, endings)
	
	return buffer

print create_syllables()
Advertisements

Tagged:

§ Eine Antwort auf Python – Das erste Skript

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s

Was ist das?

Du liest momentan Python – Das erste Skript auf instausendste.

Meta

%d Bloggern gefällt das: