Benutzer-Werkzeuge

Webseiten-Werkzeuge


python_lechner

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
python_lechner [2011/06/08 11:44]
admin
python_lechner [2011/06/25 22:20] (aktuell)
thomas.lechner [gummi-ente]
Zeile 1: Zeile 1:
 . .
 ====== Python ====== ====== Python ======
 +  *[[http://​www.michael-holzapfel.de/​progs/​python/​python_beisp.htm|Programmbeispiele zur Programmiersprache Python]]
 +
 +
 +Python ist eine plattformunabhängige,​ interpretierte und objektorientierte Programmiersprache. Sie wurde Anfang der 90er Jahre von Guido van Rossum am Centrum voor Wiskunde en Informatica in Amsterdam entwickelt.
 +
 +Den Namen erhielt die Sprache nach der englischen Comedy-Truppe Monty Python.
 +
 +Python ist eine Sprache, die den Programmierer nicht zu einem einzigen bestimmten Programmierstil zwingt. Unterstützt werden sowohl objektorientierte und strukturierte als auch funktionale Programmierung.
 +
 +Die Datentypen werden dynamisch verwaltet; eine statische Typprüfung (wie z.B. bei C++) gibt es also nicht. Die Verwaltung frei gewordenen Speicherplatzes erfolgt automatisch (Garbage collection).
 +
 +Obwohl bei der Werbung für Python oft die Gegenüberstellung zu Perl benutzt wurde, gibt es zwischen beiden Sprachen viele Gemeinsamkeiten.
 +
 +Während Perl eine reichhaltige und oft als verwirrend empfundene Syntax besitzt, wurde bei der Entwicklung von Python besonders darauf geachtet, die Syntax möglichst einfach und damit besser les- und wartbar zu gestalten.
 +
 +Obwohl Python (ebenso wie Perl) manchmal als "​Skriptsprache"​ bezeichnet wird, sind damit schon eine Reihe großer Softwareprojekte bewältigt worden, z.B. der Zope Application Server und das Dateisystem Mojo Nation.
 +
 +
 +Python ist eine universelle,​ üblicherweise interpretierte höhere Programmiersprache. Ihre Entwurfsphilosophie betont Programmlesbarkeit. Ihr Gebrauch von Einrückung zur Blockbegrenzung ist ungewöhnlich unter populären Programmiersprachen.
 +
 +Die Sprache hat ein offenes, gemeinschaftsbasiertes Entwicklungsmodell,​ gestützt durch die gemeinnützige Python Software Foundation, die de facto die Definition der Sprache in CPython, der Referenzumsetzung pflegt.
  
 Python wurde mit dem Ziel entworfen, möglichst einfach und übersichtlich zu sein. Dies soll durch zwei Maßnahmen erreicht werden: Zum einen kommt die Sprache mit relativ wenigen Schlüsselwörtern aus, zum anderen ist die Syntax reduziert und auf Übersichtlichkeit optimiert. Objektorientierte und strukturierte Programmierung werden vollständig unterstützt. Python wurde mit dem Ziel entworfen, möglichst einfach und übersichtlich zu sein. Dies soll durch zwei Maßnahmen erreicht werden: Zum einen kommt die Sprache mit relativ wenigen Schlüsselwörtern aus, zum anderen ist die Syntax reduziert und auf Übersichtlichkeit optimiert. Objektorientierte und strukturierte Programmierung werden vollständig unterstützt.
Zeile 7: Zeile 28:
 mögen, kommt diese Eigenschaft gerade Programmierneulingen zugute, denn unstrukturierter und unübersichtlicher Code ist eine der größten Fehlerquellen in der Programmierung. mögen, kommt diese Eigenschaft gerade Programmierneulingen zugute, denn unstrukturierter und unübersichtlicher Code ist eine der größten Fehlerquellen in der Programmierung.
  
 +===== Entwiklungsgeschichte =====
 +Die Sprache wurde Anfang der 1990er Jahre von Guido van Rossum am Centrum Wiskunde & Informatica in Amsterdam als Nachfolger für die Programmier-Lehrsprache ABC entwickelt und war ursprünglich für das verteilte Betriebssystem Amoeba gedacht. Alle bisherigen Implementierungen der Sprache (siehe auch Jython oder Stackless Python) übersetzen den Text eines Python-Programms transparent in einen Zwischencode,​ der dann von einem Interpreter ausgeführt wird.
 +===== Namensherkunft =====
 +Der Name geht nicht etwa (wie das Logo vermuten ließe) auf die gleichnamige Schlangengattung (Python) zurück, sondern bezog sich ursprünglich auf die englische Komikertruppe Monty Python. In der Dokumentation finden sich daher auch einige Anspielungen auf Sketche aus dem Flying Circus.Trotzdem etablierte sich die Assoziation zur Schlange, was sich unter anderem in der Programmiersprache Cobra sowie dem Python-Toolkit „Boa“ äußert.
 +
 +===== Wichtige Programme =====
 +
 +Python wird erfolgreich in tausenden Applikationen verwendet. Es wird unter anderem von großen Firmen wie YouTube.com oder google.com verwendet.
 +
 +==== YouTube ====
 +YouTube ist ein 2005 gegründetes Internet-Videoportal mit Sitz in San Bruno, Kalifornien,​ auf dem die Benutzer kostenlos Video-Clips ansehen und hochladen können.
 +Die Benutzeroberfläche von YouTube.com ist fast gänzlich in python geschrieben,​ MySQL wird zur verwaltung der datenbank verwendet. ​
 +
 +==== Google ====
 +Die Google Incorporated ist ein Unternehmen mit Hauptsitz in Mountain View (Kalifornien,​ USA), das durch Internetdienstleistungen – insbesondere durch die gleichnamige Suchmaschine „Google“ – bekannt wurde. Die Benutzeroberfläche von Google ist ebenfalls teilweise mit Python geschrieben.
 +
 +==== OpenShot ====
 +OpenShot Video Editor ist ein freier Video-Editor für Linux-Betriebssysteme. Er ist in Python programmiert und hat eine GTK+-basierte Benutzoberfläche und nutzt das Framework des Media Lovin’ Toolkit (MLT). Er wird als freie Software auch im Quelltext unter den Bedingungen der GNU General Public License (GPL) in Version 3 oder später verbreitet. Das Projekt wurde im August 2008 von Jonathan Thomas gestartet mit dem Ziel, einen stabilen, freien und einfach zu bedienenden Video-Editor zu erstellen.
  
 <code python bingo.py>​ <code python bingo.py>​
Zeile 177: Zeile 216:
  
 ===== Ellipse ===== ===== Ellipse =====
-<code python ​ellipse.py>+<code python ​orf_2.py>
  
 from turtle import * from turtle import *
 import time import time
 + 
 def main(): def main():
     reset()     reset()
     shape("​circle"​)     shape("​circle"​)
     resizemode("​user"​)     resizemode("​user"​)
 +    turtlesize(10,​15,​1)
 +    color("",​ "​red"​)
 +    stamp()
 +    turtlesize(9.5,​9.5,​1)
 +    color("",​ "​white"​)
 +    stamp()
 +    turtlesize(7,​9,​1)
 +    color("",​ "​red"​)
 +    stamp()
 +    turtlesize(6.5,​6.5,​1)
 +    color("",​ "​white"​)
 +    stamp()
 +  ​
 +main()
 +exitonclick()
  
-    pu(); bk(24*18/6.283); rt(90); pd() +</code>
-    tilt(45)+
  
 +http://​www.demokratiezentrum.org/​fileadmin/​media/​img/​Wissensstationen/​Gallery/​Medien%20und%20Politik/​orf_auge_gr.jpg
 +
 +<code python pi.py>
 +from math import *
 +
 +global a, b
 +
 +a = [3]
 +b = [2*sqrt(3)]
 +i=0
 +
 +while b[i]-a[i] > 0.0000000000000001:​
 +    b_n =  (2*a[i]*b[i])/​(a[i] + b[i])
 +    b.append(b_n)
 +    a_n = sqrt(a[i]*b[i+1])
 +    a.append(a_n)
 +    i=i+1
 +    ​
 +    ​
 +print(i)
 +print(a[i])
 +print(b[i])
 +print(3.141592653589793)
 +
 +
 +</​code>​
 +
 +===== Ubuntu Logo =====
 +
 +<code python ubuntu-logo.py>​
 +from turtle import *
 +
 +def c_part(color,​ radius, length):
 +    rad=[radius,​ -(radius+length)]
 +    fillcolor(color)
 +    begin_fill()
 +    for i in range(2):
 +        circle(rad[i],​120)
 +        rt(90)
 +        fd(length)
 +        rt(90)
 +    end_fill()
 +    circle(radius,​120)
 +    ​
 +r=100
 +l=90
 +colour=[(255,​99,​9),​(255,​181,​21),​(201,​0,​22)]
 +color("​white"​)
 +colormode(255)
 +pensize(25)
 +
 +circle(r, 90)
 +for i in range(3):
 +    c_part(colour[i],​ r, l)
 +
 +pu()
 +pensize(15)
 +lt(90)
 +fd(2*r+l*0.60)
 +rt(90)
 +pd()
 +
 +for i in range(3):
 +    fillcolor((colour[i]))
 +    begin_fill()
 +    circle(l/2)
 +    end_fill()
     pu()     pu()
 +    circle(-r-l*0.60,​-120)
 +    pd()
  
-    turtlesize(16,10,5+ht() 
-    ​color("​red",​ "​violet"​) +</​code>​
-    for i in range(18):​ +
-        fd(24) +
-        lt(20) +
-        stamp() +
-    color("​red",​ ""​) +
-    for i in range(18):​ +
-        fd(24) +
-        lt(20) +
-        stamp()+
  
-    tilt(-15) +===== gummi-ente =====
-    turtlesize(3,​ 1, 4) +
-    color("​blue",​ "​yellow"​) +
-    for i in range(17):​ +
-        fd(24) +
-        lt(20) +
-        if i%2 == 0: +
-            stamp() +
-    time.sleep(1) +
-    while undobufferentries():​ +
-        undo() +
-    ht() +
-    write("​OK,​ OVER!",​ align="​center",​ font=("​Courier",​ 18, "​bold"​)) +
-    return "​Done!"​+
  
-if __name__=="​__main__":​ 
-    msg = main() 
-    print(msg) 
-#    mainloop() 
  
 +<code python gummi-ente.py>​
 +from turtle import *
 +from time import *
 +
 +alex = [Turtle(),​Turtle(),​Turtle(),​Turtle(),​Turtle(),​Turtle(),​Turtle(),​Turtle(),​Turtle(),​Turtle(),​Turtle(),​Turtle(),​Turtle(),​Turtle(),​Turtle()]
 +c = ["​green"​]*15
 +bert = [Turtle(),​Turtle(),​Turtle(),​Turtle(),​Turtle(),​Turtle(),​Turtle(),​Turtle(),​Turtle(),​Turtle(),​Turtle(),​Turtle(),​Turtle(),​Turtle(),​Turtle()]
 +water = Turtle()
 +tracer(0)
 +water.color("​blue"​)
 +water.pu()
 +water.goto(-30*15,​-100)
 +water.pd()
 +screen = Screen()
 +screen.register_shape("​duck.gif"​)
 +
 +ht()
 +pu()
 +
 +
 +w=15
 +l=30
 +r=25
 +s=30
 +
 +
 +for i in range(15):
 +    #​alex[i].ht()
 +    alex[i].penup()
 +    alex[i].color(c[i])
 +    alex[i].fd(l*i)
 +    ​
 +for i in range(15):
 +    #​bert[14-i].ht()
 +    bert[14-i].penup()
 +    bert[14-i].color(c[i])
 +    bert[14-i].bk(l+l*i)
 +    ​
 +
 +    ​
 +for i in range(15):
 +    bert[i].circle(r,​(-w*i)%360)
 +
 +for i in range(15):
 +    alex[i].circle(r,​(-w*(i+15))%360)
 +
 +duck = Turtle(shape="​duck.gif"​)
 +duck.pu()
 +
 +for i in range(250):
 +    water.clear()
 +    duck.goto(alex[0].xcor(),​alex[0].ycor()+r*4)
 +    water.begin_fill()
 +    for i in range(15):
 +        bert[i].circle(r,​5)
 +        water.goto(bert[i].xcor(),​bert[i].ycor())
 +    for i in range(15):
 +        alex[i].circle(r,​5)
 +        water.goto(alex[i].xcor(),​alex[i].ycor())
 +        ​
 +    water.goto(30*15,​-100)
 +    water.goto(-30*15,​-100)
 +    water.end_fill()
 +        ​
 +    tracer(1) ​   ​
 +    fd(s)
 +    tracer(0)
 +    ​
 +        ​
 +
 +speed(0)
 +
 +exitonclick()
 </​code>​ </​code>​
  
-http://​www.demokratiezentrum.org/​fileadmin/​media/​img/​Wissensstationen/​Gallery/​Medien%20und%20Politik/​orf_auge_gr.jpg 
  
-<code python ​pi.py>+<code python ​hanning-logo.py> 
 +from turtle import * 
 +from math import *
  
 +r=500
 +w=40
 +
 +ht()
 +pos1 = []
 +color("​blue"​)
 +tracer(0)
 +begin_fill()
 +for i in range(4):
 +    pos1.append(pos())
 +    seth(-(w/​2)+90*i)
 +    circle(r,w)
 +    print(pos1)
 +end_fill()
 +#tracer(1)
 +
 +list = [(0.3,1),
 +        (0.7,-1)]
 +
 +pu();​color("​white"​);​pensize(5)
 +
 +for i in range(2):
 +    pu();​goto(pos1[3]*list[i][0]);​seth(-w*list[i][1]/​2);​pd()
 +    circle(r*list[i][1],​w*2)
 +    circle(r*list[i][1],​w*-3)
 +
 +for i in range(2):
 +    pu();​goto(pos1[1]*list[i][0]);​seth(270+w*list[i][1]/​2);​pd()
 +    circle(r*list[i][1],​-w*2)
 +    circle(r*list[i][1],​-w*-3)
 +
 +pu();​goto(0,​0)
 +
 +exitonclick()
 +</​code>​
 +
 +<code python lappkabel-logo>​
 +from turtle import *
 from math import * from math import *
  
-#r=1/2+r=100 
 +r2=30
  
 +tracer(0)
 +ht()
 +begin_fill();​circle(r);​end_fill()
 +pu()
 +goto(0,​r*1.9)
 +for i in range(5):
 +    if i == 0:
 +        color("​orange"​)
 +    else:
 +        color("​white"​)
 +    pd()
 +    begin_fill()
 +    circle(-r2)
 +    end_fill()
 +    pu()
 +    circle(-r*0.9,​360/​5)
  
-n=6 +exitonclick() 
-un=3 +</​code>​
-Un=2/sqrt(3+
-U2n=1 +
-u2n=0+
  
-print u2n +<code python rec-logo.py>​ 
-print U2n+from turtle import * 
 +from math import *
  
-#for i in range(5): +r=100 
-while u2n-U2n<​0.000001:​ +w=20 
- U2n=2*un*Un/​(un+Un) +l=200
- u2n=sqrt(un*U2n) +
- Un=U2n +
- un=u2n +
-  +
-  +
-  +
- print u2n +
- print U2n+
  
 +def part():
 +    for i in range(2):
 +        fd(w)
 +        rt(45)
 +        fd(l)
 +        rt(90+45)
 +
 +def sign():
 +    color("​orange"​)
 +    begin_fill()
 +    circle(r)
 +    end_fill()
 +    pu()
 +    goto(-2.5*w,​r)
 +    pd()
 +    for i in range(3):
 +        pd()
 +        color("​white"​)
 +        begin_fill()
 +        part()
 +        end_fill()
 +        pu()
 +        fd(w*2)
 +    pu()
 +    goto(r,r)
 +    seth(-90)
 +    circle(-r,​-270)
 +
 +def kreis(name):​
 +    reset()
 +    begin_poly()
 +    sign()
 +    end_poly()
 +    kreis_form = get_poly()
 +    screen.register_shape(name,​ kreis_form)
 +
 +tracer(0)
 +screen = Screen()
 +kreis("​kreis"​)
 +kreis1 = Turtle(shape="​kreis"​)
 +kreis1.lt(90)
 +kreis1.color("​orange"​)
 +kreis1.stamp()
 +kreis1.clear()
 +
 +color("​orange"​)
 +pensize(w)
 +pd();​circle(-r)
 +tracer(1)
 +
 +exitonclick()
 +</​code>​
 +
 +===== autos =====
 +
 +[[http://​sbox.bgweiz.at/​thomas.lechner/​10-11/​matura/​car_1.gif|car_1.gif]]
 +[[http://​sbox.bgweiz.at/​thomas.lechner/​10-11/​matura/​car_2.gif|car_2.gif]]
 +
 +<code python autos.py>​
 +# -*- coding: utf-8 -*-
 +# Autor: Thomas Lechner
 +
 +
 +from turtle import *
 +from datetime import datetime
 +
 +screen = Screen()
 +screen.setup(800,​ 400)
 +screen.clear()
 +screen.register_shape("​car_1.gif"​)
 +
 +global cars, traffic
 +cars = []
 +traffic = True
 +
 +def street(length,​ width):
 +    global t
 +    tracer(False)
 +    a=8
 +    s = Turtle()
 +    s.ht()
 +    s.pensize(8)
 +    s.pu();​s.goto(-length/​2,​-width/​2);​s.pd()
 +    s.fd(length)
 +    s.pu();​s.goto(s.xcor(),​s.ycor()+width/​2);​s.pd()
 +    for i in range(a):
 +        s.bk(length/​(2*a)-4)
 +        s.pu()
 +        s.bk(length/​(2*a)+4)
 +        s.pd()
 +    s.pu();​s.goto(s.xcor(),​s.ycor()+width/​2);​s.pd()
 +    s.fd(length)
 +    t = Turtle(shape="​circle"​)
 +    t.pu()
 +    t.goto(-250,​120)
 +    tracer(True)
 +
 +def car_start():​
 +    tracer(False)
 +    car_start = Turtle(shape="​car_1.gif"​)
 +    car_start.pu()
 +    car_start.goto(500,​50)
 +    tracer(True)
 +    return car_start
 +
 +def car(x,y):
 +    c = car_start().clone()
 +    cars.append(c)
 +    print(cars)
 +    ​
 +def space_check(car):​
 +    global space
 +    dis = []
 +    a = 0
 +    for i in cars:
 +        if car != i and car.xcor() > i.xcor():
 +            dis.append(car.distance(i.xcor(),​i.ycor()))
 +            print(dis)
 +            ​
 +    for i in dis:
 +        if i < 200:
 +            a = a+1
 +    if a != 0:
 +        space=False
 +        print(space)
 +    else:
 +        space=True
 +    return space
 +
 +def trafficlight(x,​y):​
 +    global traffic
 +    if traffic != True:
 +        traffic=True
 +        t.color("​green"​)
 +    else:
 +        traffic=False
 +        t.color("​red"​)
 +    ​
 +def move(i):
 +    space_check(i)
 +    print(space)
 +    if cars.index(i) == 0:
 +        i.bk(2)
 +    elif space == True:
 +        i.bk(2)
  
-  +def tick(): 
-  +    ​screen.tracer(False) 
-#U2n=2*un*Un/(un+Un+    for i in cars: 
-#u2n=sqrt(un*U2n)+        if traffic ​== True: 
 +            move(i
 +        elif i.xcor() < -200 or i.xcor() > -180: 
 +            move(i) ​                    
 +         
 +        if i.xcor() < -500: 
 +            i.ht() 
 +            cars.remove(i       
  
 +    screen.tracer(True)
 +    screen.ontimer(tick,​ 2)
  
 +street(800,​200)
 +if __name__ == "​__main__":​
 +    listen()
 +    onscreenclick(car,​ 1)
 +    onscreenclick(trafficlight,​3)
 +    tick()
 +mainloop()
 </​code>​ </​code>​
python_lechner.1307526254.txt.gz · Zuletzt geändert: 2011/06/08 11:44 von admin