123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218 |
- {
- "cells": [
- {
- "cell_type": "markdown",
- "metadata": {
- "collapsed": true,
- "pycharm": {
- "name": "#%% md\n"
- },
- "slideshow": {
- "slide_type": "slide"
- }
- },
- "source": [
- "# Software Entwicklung \n",
- "\n",
- "## Kapitel 1: Einführung \n",
- "\n",
- "### 1.3 Variable\n",
- "\n",
- "Wie in jeder anderen Programmiersprache dienen *Variablen* dazu, Werte (z.B. Rückgabewerte von \n",
- "Funktionsaufrufen) zu benennen und zu speichern. Die Zuweisung erfolgt mit einem einfachen\n",
- "Gleichheitszeichen <code>=</code>. Durch die Vergabe eines Namens kann anschließend gezielt \n",
- "auf den Wert zugegriffen werden."
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {
- "slideshow": {
- "slide_type": "slide"
- }
- },
- "source": [
- "#### 1.3.1 Variablennamen\n",
- "\n",
- "Variablennamen setzen sich aus Buchstaben, Unterstrichen und Ziffern zusammen, wobei Ziffern \n",
- "nicht am Amfang des Namens stehen dürfen. Groß- und Kleinschreibung werden vom \n",
- "Python-Interpreter unterschieden, d.h. die Bezeichner <code>Abc</code> und <code>abc</code>\n",
- "verweisen auf unterschiedliche Werte.\n",
- "\n",
- "Die *Schlüsselwörter* der Programmiersprache Python, die wir noch kennenlernen werden, sind\n",
- "als Variablennamen natürlich nicht zugelassen. "
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "pycharm": {
- "is_executing": false,
- "name": "#%%\n"
- }
- },
- "outputs": [],
- "source": [
- "var = input(\"Wie heißen Sie?\")\n",
- "print(var)"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {
- "slideshow": {
- "slide_type": "slide"
- }
- },
- "source": [
- "#### 1.3.2 Konventionen\n",
- "\n",
- "Nicht alles, was der Python-Interpreter zulässt, ist auch übliche Praxis. Python-Entwickler \n",
- "haben sich auf einige Konventionen geeinigt, die das Lesen und Verstehen von fremden \n",
- "Programmcode erleichtern:\n",
- "\n",
- "- Variablennamen sollten keine Großbuchstaben enthalten, also nur Kleinbuchstaben und\n",
- " Unterstriche\n",
- "- Längere Variablennamen werden durch Unterstriche lesbar gemacht, z.B. \n",
- " <code>calculation_result</code>\n",
- " "
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {
- "slideshow": {
- "slide_type": "slide"
- }
- },
- "source": [
- "#### 1.3.3 Vereinbarung\n",
- "\n",
- "Variablen müssen in Python nicht deklariert werden. Sie entstehen mit der ersten Zuweisung.\n",
- "Anschließend kann auch lesend auf die Variable zugegriffen werden.\n",
- "\n",
- "Der Zugriff auf eine Variable, die (noch) nicht existiert führt zu einer Fehlermeldung und\n",
- "dem Abbruch des Programms.\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "pycharm": {
- "name": "#%%\n"
- }
- },
- "outputs": [],
- "source": [
- "print(not_yet_defined)"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {
- "slideshow": {
- "slide_type": "slide"
- }
- },
- "source": [
- "#### 1.3.4 Typisierung\n",
- "\n",
- "Werte besitzen in Python einen Typ (Ganzzahl, Fließkommazahl, String), Variablen jedoch nicht.\n",
- "Somit kann eine Variable im Laufe einer Programmausführung mal einen String, mal eine Zahl\n",
- "enthalten, ohne dass der Interpreter sich daran stört.\n",
- "\n",
- "Der Typ eines in einer Variablen enthaltenen Wertes kann mit der Built-In Function \n",
- "\n",
- "```Python\n",
- "type()\n",
- "```\n",
- "\n",
- "ermittelt werden."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "pycharm": {
- "name": "#%%\n"
- }
- },
- "outputs": [],
- "source": [
- "print(type(\"Hello\"))"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {
- "slideshow": {
- "slide_type": "slide"
- }
- },
- "source": [
- "Seit Python 3.6 können Variable mit *Type Annotations* versehen werden, die aber zunächst \n",
- "lediglich den menschlichen Leser von Pythoncode in einer standardisierten \n",
- "Form darauf hinweisen, dass diese Variable nur Werte eines bestimmten Typs aufnehmen soll.\n",
- "Der Python-Interpreter wird den Code auch bei einem Verstoß ohne Widerspruch ausführen. "
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "pycharm": {
- "name": "#%%\n"
- }
- },
- "outputs": [],
- "source": [
- "ganze_zahl : float\n",
- "ganze_zahl = 4\n",
- "print(ganze_zahl)"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "Allerdings existieren Tools zur statischen Codeanalyse, die diese Hinweise auswerten. Für \n",
- "*Visual Studio Code* gibt es z.B. die Extension *Pyright*, die eine entsprechende \n",
- "Prüfung nachrüstet.\n"
- ]
- }
- ],
- "metadata": {
- "celltoolbar": "Slideshow",
- "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.9"
- },
- "pycharm": {
- "stem_cell": {
- "cell_type": "raw",
- "metadata": {
- "collapsed": false
- },
- "source": []
- }
- }
- },
- "nbformat": 4,
- "nbformat_minor": 1
- }
|