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/17 10:12]
thomas.lechner
python_lechner [2011/06/25 22:20] (aktuell)
thomas.lechner [gummi-ente]
Zeile 2: Zeile 2:
 ====== Python ====== ====== Python ======
   *[[http://​www.michael-holzapfel.de/​progs/​python/​python_beisp.htm|Programmbeispiele zur Programmiersprache 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. 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.
Zeile 268: Zeile 284:
         fd(length)         fd(length)
         rt(90)         rt(90)
-        ​end_fill()+    ​end_fill()
     circle(radius,​120)     circle(radius,​120)
     ​     ​
Zeile 299: Zeile 315:
  
 ht() ht()
 +</​code>​
 +
 +===== gummi-ente =====
 +
 +
 +<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 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 *
 +
 +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)
 +
 +exitonclick()
 +</​code>​
 +
 +<code python rec-logo.py>​
 +from turtle import *
 +from math import *
 +
 +r=100
 +w=20
 +l=200
 +
 +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)
 +    for i in cars:
 +        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.1308298323.txt.gz · Zuletzt geändert: 2011/06/17 10:12 von thomas.lechner