Informatik Wpf 6 20201124

2007, 2024 Oskar Wagner

| Start | Education | Fernunterricht | Informatik Wpf 6
$$ \def\Forall{\enskip \forall} \def\forthat{\;\bigm|\;} \def\hateq{\mathrel{\widehat{=}}} \def\hint#1{\quad\color{maroon}{\small\textit{#1}}} \def\stx#1{\small\textrm{#1}} \def\guide#1{\quad{\stx{#1}}} \def\ol#1{\overline{#1}} \def\lraq{ \quad\leftrightarrow\quad } \def\Lraq{ \quad\Leftrightarrow\quad } \def\ra{ \,\rightarrow\, } \def\raq{ \quad\rightarrow\quad } \def\Ra{ \,\Rightarrow\, } \def\Raq{ \quad\Rightarrow\quad } \def\ux#1{\;\textrm{#1}} \newcommand\m[1][]{#1\ux{m}} \newcommand\mm[1][]{#1\ux{mm}} \newcommand\cm[1][]{#1\ux{cm}} \newcommand\km[1][]{#1\ux{km}} \newcommand\qm[1][]{#1\ux{m}^2} \newcommand\cel[1][]{#1\,^\circ\textrm{C}} \newcommand\deg[1][]{#1\,^\circ} \newcommand\eur[1][]{#1\ux{€}} \newcommand\pct[1][]{#1\,\%} \newcommand\prm[1][]{#1\,{}^\text{o}\mkern-5mu/\mkern-3mu_\text{oo}} $$

Achte beim Lesen der Lektion darauf, dass du den Sinn jedes Absatzes erfasst.

Schreibe und teste den Beispielcode schrittweise wie in der Lektion vorgegeben.

Die Aufgaben (Hinweise am Ende des Textes) sind als Python-Quellcode auszuführen und per eMail bis zum 24. November 2020 (Sonntag) an die Lehrkraft zu schicken.

In dieser Lektion zur Programmiersprache Python geht es um Iterationen, also die gesteuerte Wiederholung von Anweisungen.

Programmieren mit Python: Iterationen

Mit Hilfe einer Schleife (iteration) lassen sich Anweisungen wiederholt ausführen.

for

for item in alist: arbeitet den darauffolgenden, eingerückten Codeblock für jedes Element item einer Liste alist ab.
Dabei wird der Schleifenvariablen item zunächst das erste Element der Liste zugewiesen, und mit diesem Wert der eingerückte Schleifenblock durchlaufen.
Nacheinander wird nun item zu jeweils dem nächsten Element der Liste, und der Codeblock damit wiederholt ausgeführt.

# -*- coding: iso-8859-15 -*-
# --------------------------------------------------------------
# 04.10.2016  ow  /  iterations.py  /  python


# Print all items of a list.
def PrintItems (alist):
  for i in alist:
    print(i)
  print('-'*20)


# Define a main procedure.
def Main():
  print("! Iterations !")
  # print items of some lists
  PrintItems(['Hello', 32, 43, True])
  PrintItems(range(21, 40, 4))
  PrintItems('A string')

#--- main program ---#
Main()

Der Name der Schleifenvariable ist beliebig wählbar.
Das nächste Beispiel zeigt, wie der Durchschnittswert einer Liste von Zahlen (etwa Schularbeitsnoten) berechnet werden kann.

# Calculate average of  a list of numbers.
def Average (listofnumbers):
  result = 0
  for n in listofnumbers:
    result += n
  result /= len(listofnumbers)
  return(result)


# Define a main procedure.
def Main():
  print("! Iterations !")
  # print items of some lists
  PrintItems(['Hello', 32, 43, True])
  PrintItems(range(21, 40, 4))
  PrintItems('A string')
  # calculate average
  print('English:', Average([4, 5, 2, 3]))
  print('...:', Average([1, 2, 3, 4, 5]))

#--- main program ---#
Main()

Beachte die Zeile result /= len(listofnumbers).
Das ist die Kurzform von result = result / len(listofnumbers).

while

while condition: wiederholt den darauffolgenden, eingerückten Codeblock, solange die angegebene Bedingung condition zutrifft.

Bedingungen kennst du bereits von den bedingten Anweisungen.

Die Bedingung ist ein Ausdruck, der während des Programmablaufs zu false oder true ausgewertet wird.
Häufig ist diese Ausdruck ein einfacher Vergleich, wie im folgenden Beispiel.

from time import sleep


# Count down from number.
def Countdown(number):
  print('Countdown started...')
  # iteration with a loop condition
  while number > 0:
    print(' ->', number)
    number -= 1
    sleep(1)
  print(' -> Lift-off!')
  print('-'*20)


# Define a main procedure.
def Main():
  print("! Iterations !")
  # print items of some lists
  PrintItems(['Hello', 32, 43, True])
  PrintItems(range(21, 40, 4))
  PrintItems('A string')
  # calculate average
  print('English:', Average([4, 5, 2, 3]))
  print('...:', Average([1, 2, 3, 4, 5]))
  # start a countdown
  Countdown(5)

#--- main program ---#
Main()

Damit Countdown() richtig zählt, wird am Anfang des Quellcodes aus dem Modul time die Prozedure sleep() importiert.


Aufgaben

Implementiere und teste den Beispielcode der Lektion.

Definiere und teste eine Funktion SquareSum(listofnumbers), die die Summe der Quadrate einer Liste von Zahlen (listofnumbers) berechnet.
Erweitere dazu den Beispielcode passend (Funktion und Testaufrufe).

Hinweise zur Durchführung:

  1. Verwende SciTE, um den Quellcode zu schreiben, zu speichern und zu testen.
  2. Schicke die fertige Quellcodedatei (Beispielcode samt allen Ergänzungen) per eMail.

Siehe auch Python Express

Erhaltene Arbeiten:

2020.6WPFBlBrDrGaHaHeKaNi
Erhalten