sq_01_python_intro/jupyter_book/02_hilfe.ipynb

187 lines
3.9 KiB
Plaintext
Raw Permalink Normal View History

{
"cells": [
{
"cell_type": "code",
"execution_count": 5,
"id": "2a1f4fb4-1e20-4441-90f2-98ce7606e088",
"metadata": {
"slideshow": {
"slide_type": "skip"
},
"tags": [
"hide-input"
]
},
"outputs": [],
"source": [
"import math"
]
},
{
"cell_type": "markdown",
"id": "c4e44c9e-0eea-48d3-b478-8723995efe97",
"metadata": {},
"source": [
"# Hilfe\n",
"\n",
"Hilfe kann man sich für Packages oder Funktionen anzeigen lassen:\n",
"\n",
"`help(math)`\n",
"\n",
"`help(math.sin)`"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "18821bb6-e5a7-4367-ac55-60c468d78a02",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Help on built-in function sin in module math:\n",
"\n",
"sin(x, /)\n",
" Return the sine of x (measured in radians).\n",
"\n"
]
}
],
"source": [
"help(math.sin)"
]
},
{
"cell_type": "markdown",
"id": "bf381088-a36b-400d-8a8e-9491c85ee637",
"metadata": {
"tags": []
},
"source": [
"Das **/** ist kein Parameter sondern eine Info für fortgeschrittene Programmierer ([Details](https://www.python.org/dev/peps/pep-0570/positional-only%20parameters)). Wir ignorieren dies.\n",
"\n",
" `<TAB>` zeigt verfügbare Funktionen an. Probiert:\n",
"\n",
"`math.<TAB>`\n",
"\n",
"`math.c<TAB>`"
]
},
{
"cell_type": "markdown",
"id": "2d4ee0f4-7d02-4935-bfd9-9c04efb7de4d",
"metadata": {},
"source": [
"## Aufgabe\n",
"\n",
"❓ Berechne sin und cos von 0°, 90° und 180°!"
]
},
{
"cell_type": "markdown",
"id": "d89f4342-623b-4b6e-be90-e6774c62a65f",
"metadata": {},
"source": [
"## Lösung\n",
"\n",
"War das Ergebnis richtig?\n",
"\n",
"Die Hilfe sagt, dass man den Parameter von `sin`/`cos` in Radians (Bogenmaß) angeben muss. Gegeben waren aber Grad. D.h. wir müssen dies erst umrechnen. Dazu gibt es auch eine Funktion `math.radians()`. Somit wäre die Lösung:"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "0e612c09-f8b5-4dc2-80c7-49f03e510937",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"1.0"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"math.sin(math.radians(90))"
]
},
{
"cell_type": "markdown",
"id": "89d942ed-7aac-48d7-ba5e-2d1c0e09a2d3",
"metadata": {},
"source": [
" Funktionen sind schachtelbar\n",
"\n",
" Ein Programm besteht aus ineinander geschachtelten Funktionsaufrufen."
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "3197696b-bf76-46b7-99db-67ad482516ca",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"1.2246467991473532e-16"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"math.sin(math.radians(180))"
]
},
{
"cell_type": "markdown",
"id": "c5b2d7d1-d7e4-4372-933c-19063452d1dd",
"metadata": {},
"source": [
"Mmh, das sollte 0 sein.\n",
"\n",
" Beim Rechnen mit Kommazahlen ist die Genauigkeit begrenzt."
]
},
{
"cell_type": "markdown",
"id": "0923f3a5-8e2e-4044-a316-598da598f3db",
"metadata": {},
"source": [
"❓ Was wäre, wenn es `math.radians()` nicht geben würde?"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.9.7"
}
},
"nbformat": 4,
"nbformat_minor": 5
}