Programmbeispiele zur Programmiersprache Python Die Programmeingabe erfolgt jeweils nach Aufruf von IDLE (Python GUI) in New Window (Strg+N).
Die Programmausführung mit
Python Version 3.6.0 erfolgt dann
nach Speicherung des Programms mit Run Module (F5)
1. Beispiel: Näherungsweise
Berechnung der Quadratwurzel von a
(Formel
von Heron) und dem Startwert x1. Programm: # wurzel.py a
= float(input("Zu berechnende Quadratwurzel: ") x
= float(input("Startwert x1: ") #
float bedeutet, dass mit Kommazahlen gerechnet werden soll! print
("Iteration Näherungswert" print
("_________________________")
for
i
in range(1,6):
x = 0.5*(x+a/x) print
('
',i,' ',x Zu
berechnende Quadratwurzel: 2 Startwert
x1: 1 Iteration
Näherungswert _________________________
1 1.5
2 1.416666666666666
3 1.41421568627
4 1.41421356237
5 1.41421356237
2. Beispiel: Näherungsweise
Berechnung der n-ten Wurzel von a
und dem Startwert x1. Programm: # wurzel_n.py a
= float(input("Zu berechnende n.Wurzel: ")) n
= float(input("Eingabe von n: ")) x
= float(input("Schätzwert: ")) print
("Iteration Näherungswert" print
("______________________________")
for i in range(1,6):
x = ((n-1)*x+a/(x**(n-1)))/n
# Bemerkung: x**(n-1)
bedeutet x hoch n-1
print
(' ',i,'
',x Zu
berechnende n-te Wurzel: 10 Eingabe
von n: 4 Schätzwert:
2 Iteration
Näherungswert _________________________
1
1.8125 2
1.77923641293 3
1.77828018188 4
1.7782794100394252 5
1.7782794100389228
3. Beispiel: Programm: # muenze.py #
muenze_werfen from
random import randrange #
Aus dem Modul random wird m
= int(input("Anzahl der Versuche: ")) # der Befehl randrange n
= 1
# geladen k
= m print print
('
n hn(Z)' print
('_________________________' while n<m:
z = 0
n = 10*n
k = k / 10
for i in range(1,n+1):
if randrange(1,3) == 1: # Erzeugen der Zufallszahl 1 oder 2
z = z+1
print ((10-len(str(n)))*' ',n,'
',float(z)/n)
# oder: print ("%10i
%14f" % (n, float(z)/n) Anzahl
der Versuche: 1000000
n hn(Z) _________________________
10 0.6
100 0.52
1000 0.522
10000 0.5094
100000 0.49642 1000000 0.500504
4. Beispiel: Lösungen
einer quadratischen Gleichung der Form ax2
+ bx + c = 0. Programm: # quadr_gleich.py from math import sqrt print
"Quadratische Gleichung mit den \nKoeffizienten a, b und c lösen." a
= float(input("a eingeben: "))
# \n bedeutet: neue Zeile b = float(input("b eingeben: ")) c
= float(input("c eingeben: ") d = b*b-4*a*c if d > 0: x1
= (-b - sqrt(d))/(2*a) x2
= (-b + sqrt(d))/(2*a)
print ("Die
Gleichung hat die beiden Lösungen:")
print
('x1 =',x1,'; x2 =',x2 elif d == 0: x1
= (-b)/(2*a);
print ("Die
Gleichung hat die Lösung:"
print
('x =',x1 else:
print ("Die Gleichung hat keine Lösung!" Quadratische
Gleichung mit den Koeffizienten
a, b und c lösen. a
eingeben: 2 b
eingeben: 5 c
eingeben: 3 Die
Gleichung hat die beiden Lösungen: x1
= -1.5 ; x2 = -1.0 5. Beispiel: Näherungsweise
Berechnung der Kreiszahl p.
Programm: # pi-berechn1.py # pi-Berechnung mit regulären 2n-Ecken from
math import sqrt, pi n
= 6 # Start mit
regelmäßigem Sechseck s
= 1 # Seitenlänge
des reg. Sechsecks print
("Schrittweise Näherung von pi mit Hilfe eines 2n-Ecks" for i in range(1,31):
pi_naeherung =
0.5*n*s
print
(round(pi_naeherung s
= sqrt(2-sqrt(4-s*s))
n = 2*n
# doppelte Eckenzahl print
("Ungeeignete Iteration!" print
("pi =",round(pi Schrittweise Näherung
von pi mit Hilfe eines 2n-Ecks 3.0 3.10582854123
3.13262861328 3.13935020305 3.14103195089 3.14145247229 3.14155760791 3.14158389215 3.14159046324 3.14159210604 3.14159251659 3.14159261864 3.14159264532 3.14159264532 3.14159264532 3.14159264532 3.14159366985 3.14159230381 3.14160869622 3.14158683966 3.14167426502 3.14167426502 3.14307274017 3.15980616494 3.18198051534 3.35410196625 4.24264068712 6.0 0.0 0.0 Ungeeignete
Iteration! pi =
3.14159265359 6. Beispiel: Näherungsweise
Berechnung der Kreiszahl p.
Programm: # pi-berechn2.py #
pi-Berechnung mit regulären 2n-Ecken from math import sqrt, pi n
= 6 # Start mit regulärem
Sechseck s
= 1 # Seitenlänge des reg.
Sechsecks print
("Schrittweise Näherung von pi mit Hilfe eines 2n-Ecks" for i in range(1,21):
pi_naeherung =
0.5*n*s
print
(round(pi_naeherung s
= s/sqrt(2+sqrt(4-s*s))
n = 2*n
# doppelte Eckenzahl print
("Gute Iteration!" print
("pi =",round(pi Schrittweise Näherung
von pi mit Hilfe eines 2n-Ecks 3.0 3.10582854123
3.13262861328 3.13935020305 3.14103195089 3.14145247229 3.14155760791 3.14158389215 3.14159046323 3.141592106 3.14159251669 3.14159261937 3.14159264503 3.14159265145 3.14159265306 3.14159265346 3.14159265356 3.14159265358 3.14159265359 3.14159265359 Gute
Iteration! pi = 3.14159265359 7. Beispiel: Näherungsweise Berechnung der Kreiszahl p mit der
Methode von Monte Carlo. Es werden in einem Quadrat Zufallszahlen für die x- und
y-Koordinate eines Punktes zwischen 0 und 1 erzeugt. Dann wird gezählt, wie
viele Punkte davon in einen Viertelkreis fallen. Das Verhältnis Anzahl der
Punkte im Viertelkreis zu Anzahl der Punkte insgesamt multipliziert mit der
Zahl 4 liefert etwa die Kreiszahl p.
Die Näherung für p ist um so besser, je mehr Zufallspunkte erzeugt worden
sind.
Programm: # pi-monte_carlo.py #
pi-Bestimmung mit der Methode von Monte Carlo from random import random print
("Monte Carlo Methode zur" print
("Näherung für pi:" g
= int(input("Gesamtzahl der Tropfen: ")) v
= 0 x=0;
y=0 # Koordinaten des Punktes P for i in range(1,g+1):
x = random()
y = random()
if x*x+y*y<= 1:
v = v + 1 pi_naeh
= 4.0*v/g print
(g,"Tropfen, davon",v,"Tropfen im Viertelkreis,") print
("pi etwa",pi_naeh Monte Carlo Methode zur Näherung
für pi: Gesamtzahl
der Tropfen: 1000000 1000000
Tropfen, davon 785252 Tropfen im Viertelkreis, pi
etwa 3.141008
8. Beispiel: Potenzen von 0,3 und deren Summen. Programm: #
potenz-1_3.py #
Potenzen von 1/3 und deren Summe n
= int(input("Bis zu welcher Potenz von 1/3? ") i
= 1 potenz
= 1.0/3 print print
(' i
1/3^i
Summe' print
('-------------------------------' sum_potenz
= potenz while
i<=n:
print
('%3d
%1.8f %1.8f'
% (i,potenz, sum_potenz)
i = i+1
potenz =
(1.0/3)**i
sum_potenz = sum_potenz+potenz Bis
zu welcher Potenz von 1/3? 15
i
1/3^i
Summe -------------------------------
1 0.33333333 0.33333333
2
0.11111111
0.44444444
3
0.03703704
0.48148148
4
0.01234568
0.49382716
5
0.00411523
0.49794239
6
0.00137174
0.49931413
7
0.00045725
0.49977138
8
0.00015242
0.49992379
9
0.00005081
0.49997460 10
0.00001694
0.49999153 11
0.00000565
0.49999718 12
0.00000188
0.49999906 13
0.00000063
0.49999969 14
0.00000021
0.49999990 15
0.00000007
0.49999997
9. Beispiel: Zeichnen mit Hilfe der Turtle (Schildkröte)
Programm: # windrad.py pendown() hideturtle()
10. Beispiel: Parkettierung mit Hilfe der Turtle (Schildkröte)
Programm: # parkett.py from
turtle import *
def
raute(laenge, winkel, strich_dicke, col):
width(strich_dicke)
color(col)
for i in range (1,3):
forward (laenge); left(winkel)
forward (laenge); left(180-winkel)
speed(0) anzahl_reihe
= 10 up();
backward(280); left(90); forward(220); right(90); down() for
i in range(1,15):
for j in range(1,anzahl_reihe+1):
raute(50, 45, 1, 'darkgreen')
up(); forward(50); down()
up(); backward(anzahl_reihe*50); right(90); forward(35); left(90);
down()
11. Beispiel: Wald aus zufällig stehenden Bäumen
Programm: # baeume.py #
Wald mit Bäumen from
turtle import * from
random import random def
baum(a):
for i in range(1,3):
color("brown")
begin_fill()
forward(a); left(90)
forward(2*a); left(90)
end_fill()
up(); left(90); forward(2*a); left(90); forward(a); left(180); down()
color("darkgreen")
begin_fill()
forward(3*a); left(110)
forward(4.39*a); left(140); forward(4.39*a); left(110)
end_fill()
up(); forward(a); right(90); forward(2*a); left(90); down()
speed(0)
# max. Zeichengeschwindigkeit up();
backward(220); left(90); forward(220); right(90); down() #
Turtle im Windwows-Fenster nach links oben setzen a=8 # Breite Baumstamm anzahl_x
= 12 #
Anzahl der Bäume in x-Richtung anzahl_y
= 8 #
Anzahl der
Baumreihen in y-Richtung for
j in range(1,anzahl_y+1):
for i in range(1,anzahl_x+1):
baum(a); up(); forward((0.5+random())*5*a); down()
up(); backward(anzahl_x*5*a); right(90); forward(8*a); left(90); down()
12. Beispiel: Strauch
Programm: #
strauch.py #
Strauch from
turtle import *
def strauch(a, n): #
Die Prozedur strauch ruft sich rekursiv selber auf! if n>0: forward(a);left(30); forward(a);
strauch(a/2,n-1); backward(a); right(30);
forward(a); right(30); forward(a/2);
strauch(a/2,n-1); backward(a/2);
strauch(a/2,n-1); backward(3*a)
speed(0) a=30
# Länge a color("darkgreen") width(2)
# Strichdicke left(90) strauch(a,5) hideturtle()
13. Beispiel: Orangenbaum Programm: # orangenbaum.py hideturtle()
Ausgabe:
14. Beispiel: Hochhäuser Programm: # hochhaeuser.py
hideturtle() Ausgabe:
|