Skip to content
Snippets Groups Projects
Commit 85016c66 authored by Christof Kaufmann's avatar Christof Kaufmann
Browse files

Notebooks from ckaufmann/akis-python-framework@bc3ce819

parent b37d4c0e
No related branches found
No related tags found
No related merge requests found
%% Cell type:markdown id:0004-3cf6c18c8f469df0e2b92fe313002ebe0f1253f2ea3163b218712237d76 tags:
%% Cell type:markdown id:0004-83241b1b96e523ab355ace7c904e0da96909f6320572c8d8caef03fe592 tags:
# Produkt
Schreiben Sie eine Funktion `prod`, die eine Liste von Zahlen übergeben
bekommt und deren Produkt berechnet und zurück gibt.
bekommt und deren Produkt berechnet und zurück gibt. Eine Liste lässt
sich z. B. so definieren `[1, 3, 5]` (siehe Tests unten) und man kann
Sie genauso mit einer `for`-Schleife iterieren wie Strings.
*Hinweis: Implementieren Sie die Funktion in reinem Python (also ganz
normal mit Schleife, ohne fertige Funktionen aus externen Modulen).*
## Lösung
Sie starten mit dem Produkt `p = 1` und multiplizieren in einer
`for`-Schleife Faktor für Faktor dran.
%% Cell type:code id:0005-8e39bab4b11aeced8b8607ed8451d39c7b4d6ebfacdd6888e9f434c7e0c tags:
```
from typing import Sequence
def prod(factors: Sequence[float]):
p = 1
for f in factors:
p *= f
return p
```
%% Cell type:markdown id:0007-fd103536088492c4d08c6439fe431610cac5d61a9dadf721e49d5cbc7eb tags:
## Tests
Beispiel:
%% Cell type:code id:0008-bae585c94b7abb1e7371e93177310ff96bf5375fd0b98a859dc81e39a33 tags:
```
prod([1, 3, 5])
```
%% Output
15
%% Cell type:markdown id:0009-b8506b8be6e3dc49fc5e7a63d4c68540d0ac63d71e690c6f888273ffdc0 tags:
Teste mit ints
%% Cell type:code id:0010-46f6eb37453aad0c1cadd782dfd121446e1271eceb4d96f861ab243f1ce tags:
```
prod([1, 2, 3])
```
%% Output
6
%% Cell type:markdown id:0011-79b3aa2710afaf1943a7f76810f0a6af6d9462c0fb382c9723497031583 tags:
Test mit floats
%% Cell type:code id:0012-f8392f4570410d667c45382c775050d706bf5e19f321779333bb348e707 tags:
```
prod([1.0, 2.0, 3.0])
```
%% Output
6.0
%% Cell type:markdown id:0013-a72ab0a65a4890811ef5d8babe59614063c7d38576311ba1904d7544cef tags:
Teste mit ints und floats gemischt
%% Cell type:code id:0014-e229b75a27a79bb292c211623f46140be16d78a0ff40cfb712430c65b0c tags:
```
prod([1, 2.0, 3])
```
%% Output
6.0
%% Cell type:markdown id:0015-785d4b41d41cd864cbd8675996c2ae2a54e435faeec6c1ee5c576b2a188 tags:
Teste, dass Pythons ints benutzt werden, die eine flexible Größe haben
%% Cell type:code id:0016-caed5ede01c0e2af2affc80b26d338f41280e1cda1d7638d37f6bf5863d tags:
```
prod([10000000000000, 20000000000000, 30000000000000])
```
%% Output
6000000000000000000000000000000000000000
......
%% Cell type:markdown id:0003-15b53e1dfe474eeb87e6312b199b155210447f84f700cbc75cb90518ec6 tags:
%% Cell type:markdown id:0003-3505d5a216e63bccae87a8c9b64976f47d11ba89db86f9313c3c2c78b68 tags:
# Produkt
Schreiben Sie eine Funktion `prod`, die eine Liste von Zahlen übergeben
bekommt und deren Produkt berechnet und zurück gibt.
bekommt und deren Produkt berechnet und zurück gibt. Eine Liste lässt
sich z. B. so definieren `[1, 3, 5]` (siehe Tests unten) und man kann
Sie genauso mit einer `for`-Schleife iterieren wie Strings.
*Hinweis: Implementieren Sie die Funktion in reinem Python (also ganz
normal mit Schleife, ohne fertige Funktionen aus externen Modulen).*
Hier Ihr Code:
%% Cell type:code id:0004-44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 tags:
```
```
%% Cell type:markdown id:0006-fd103536088492c4d08c6439fe431610cac5d61a9dadf721e49d5cbc7eb tags:
## Tests
Beispiel:
%% Cell type:code id:0007-bae585c94b7abb1e7371e93177310ff96bf5375fd0b98a859dc81e39a33 tags:
```
prod([1, 3, 5])
```
%% Output
15
%% Cell type:markdown id:0008-b8506b8be6e3dc49fc5e7a63d4c68540d0ac63d71e690c6f888273ffdc0 tags:
Teste mit ints
%% Cell type:code id:0009-46f6eb37453aad0c1cadd782dfd121446e1271eceb4d96f861ab243f1ce tags:
```
prod([1, 2, 3])
```
%% Output
6
%% Cell type:markdown id:0010-79b3aa2710afaf1943a7f76810f0a6af6d9462c0fb382c9723497031583 tags:
Test mit floats
%% Cell type:code id:0011-f8392f4570410d667c45382c775050d706bf5e19f321779333bb348e707 tags:
```
prod([1.0, 2.0, 3.0])
```
%% Output
6.0
%% Cell type:markdown id:0012-a72ab0a65a4890811ef5d8babe59614063c7d38576311ba1904d7544cef tags:
Teste mit ints und floats gemischt
%% Cell type:code id:0013-e229b75a27a79bb292c211623f46140be16d78a0ff40cfb712430c65b0c tags:
```
prod([1, 2.0, 3])
```
%% Output
6.0
%% Cell type:markdown id:0014-785d4b41d41cd864cbd8675996c2ae2a54e435faeec6c1ee5c576b2a188 tags:
Teste, dass Pythons ints benutzt werden, die eine flexible Größe haben
%% Cell type:code id:0015-caed5ede01c0e2af2affc80b26d338f41280e1cda1d7638d37f6bf5863d tags:
```
prod([10000000000000, 20000000000000, 30000000000000])
```
%% Output
6000000000000000000000000000000000000000
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment