Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
talit:python_basics [2020-02-09 21:29] scatalit:python_basics [2020-02-09 21:42] (aktuell) sca
Zeile 57: Zeile 57:
 </code> </code>
  
-Note that you can also write a number as a string, e.g., `{s = '5'`.+Note that you can also write a number as a string, e.g., `s = '5'`.
 However, `s` will be treated as text and not as a number, therefore, you cannot do any calculations with it. However, `s` will be treated as text and not as a number, therefore, you cannot do any calculations with it.
 Also, you can use variables with more than one character, e.g., `mystring = "Hello World"`, but you are not allowed to use blanks in variable names. Also, you can use variables with more than one character, e.g., `mystring = "Hello World"`, but you are not allowed to use blanks in variable names.
  
-You can add {\bf commentsto your code using the symbol `#`:+You can add **comments** to your code using the symbol `#`:
 In a line of code, everything that follows the hashtag symbol will be ignored when running. In a line of code, everything that follows the hashtag symbol will be ignored when running.
 So if you run So if you run
Zeile 93: Zeile 93:
  
 1. Can you use numbers or special characters like `?,!,.,\%,-` or `_` in variable names? Give it a try! 1. Can you use numbers or special characters like `?,!,.,\%,-` or `_` in variable names? Give it a try!
-<!-- You can even use numbers in variable names, as long as they are not in the beginning, e.g., `mystring13 = "Hello World"` 
-But you can NOT use special characters in variable names 
---> 
 2. How can you add a line break to a string? 2. How can you add a line break to a string?
-<!-- % mystring = "Hello\nWorld" --> 
 3. Is Python case-sensitive? 3. Is Python case-sensitive?
 4. Given a (long enough) string `s`, what do the commands 4. Given a (long enough) string `s`, what do the commands
Zeile 106: Zeile 102:
  
 ## Integers & floats ## Integers & floats
-\label{sec integers and floats} 
  
 Next, let's have a look at numbers, in particular integers and floats. Next, let's have a look at numbers, in particular integers and floats.
 Let us do some simple calculations. Let us do some simple calculations.
  
-We can assign the {\bf integer$5$ to the variable `a` by typing+We can assign the **integer** $5$ to the variable `a` by typing
 <code python> <code python>
 a = 5 a = 5
Zeile 133: Zeile 128:
 20 20
 </code> </code>
-{\bf Floatsare decimal numbers and are declared by+ 
 +**Floats** are decimal numbers and are declared by
 <code python> <code python>
 b = 5. b = 5.
Zeile 185: Zeile 181:
  
 As you have (hopefully) noticed, we do something (`a = a + 3`) that looks mathematically wrong, since obviously $4 \neq 4 + 3$! As you have (hopefully) noticed, we do something (`a = a + 3`) that looks mathematically wrong, since obviously $4 \neq 4 + 3$!
-Notice that in Python, the symbol `=` *is not the equality sign you would have in an equation*. It can rather be compared to the symbol $:=$ used in definitions: It *assigns the value on the right to the symbol on the left*.+Notice that in Python, the symbol `=` *is not the equality sign you would have in an equation*. It can rather be compared to the symbol $:=$ used in mathematical definitions: It *assigns the value on the right to the symbol on the left*.
 The equal sign in an equation is given by `==`, which will be discussed later on. The equal sign in an equation is given by `==`, which will be discussed later on.
  
Zeile 294: Zeile 290:
  
  
-# Conditions \& Booleans+# Conditions & Booleans
  
 We can check if one or multiple conditions are satisfied. We can check if one or multiple conditions are satisfied.
Zeile 311: Zeile 307:
 </code> </code>
 Here, we use a double equal sign `==`. It compares the left and the right side and takes the value `True` if they are the same and `False` otherwise. Here, we use a double equal sign `==`. It compares the left and the right side and takes the value `True` if they are the same and `False` otherwise.
-Note that the symbols `=` and `==` are fundamentally different: The `==` symbol corresponds to $=$ in a mathematical equation and can be considered the normal equal sign. In contrast, the single-equal sign `=` \\assigns\\ the value on the right to the variable on the left. It is similar to the $:=$ symbol used in mathematical definitions.+Remember that the symbols `=` and `==` are fundamentally different: While the `==` symbol corresponds to $=$ in a mathematical equation and can be considered the normal equal sign, the single-equal sign `=` *assignsthe value on the right to the variable on the left. It is similar to the $:=$ symbol used in mathematical definitions.
  
 You can assign Boolean values to variables, e.g.: You can assign Boolean values to variables, e.g.:
Zeile 331: Zeile 327:
  
 Besides checking for equality, we can, for example, check if the value on the left side is larger than the value on the right side. Besides checking for equality, we can, for example, check if the value on the left side is larger than the value on the right side.
-Some important conditions are +Some important conditions are: 
-\bit + 
-\item {\codetxt a == b}: a and b are equal +   * `a == b`: a and b are equal 
-\item {\codetxt a > b}: a is larger b (similarly {\codetxt a < b}+   * `a > b`: a is larger b (similarly `a < b`
-\item {\codetxt a >= b}: a is larger equal b (similarly {\codetxt a <= b}+   * `a >= b`: a is larger equal b (similarly `a <= b`
-\item {\codetxt a != b}: a and b are not equal +   * `a != b`: a and b are not equal 
-\item {\codetxt a in A}: a is element of list A  +   * `a in A`: a is element of list A  
-\item {\codetxt a not in A}: a is not element of list A  +   * `a not in A`: a is not element of list A  
-\eit+
  
  
Zeile 345: Zeile 341:
 # If statements # If statements
  
-In an `ifstatement, the action depends on conditions.+In an `ifstatement, the action depends on conditions.
 Let's say we are given some number $a$ and want to determine its absolute value. It is given by $a$ if $a \geq 0$ and by $-a$ if $a < 0$. Let's say we are given some number $a$ and want to determine its absolute value. It is given by $a$ if $a \geq 0$ and by $-a$ if $a < 0$.
 We can realize this by We can realize this by
Zeile 358: Zeile 354:
 In the first line, we just choose some number. In the first line, we just choose some number.
 Feel free to play around with its value. Feel free to play around with its value.
-In line 3, the `ifstatement begins. +In line 3, the `ifstatement begins. 
-It starts with {\codetxt ifand is followed by a condition, here {\codetxt a < 0}, and a mandatory colon. +It starts with `ifand is followed by a condition, here `a < 0`, and a mandatory colon. 
-If the condition is {\codetxt True(satisfied), i.e., if $a < 0$, it runs the commands that follow, here {\codetxt print(-a)}+If the condition is `True(satisfied), i.e., if $a < 0$, it runs the commands that follow, here `print(-a)`
-If the condition is {\codetxt False(not satisfied), it jumps to {\codetxt else:and runs what is written there: {\codetxt print(a)}.+If the condition is `False(not satisfied), it jumps to `else:and runs what is written there: `print(a)`.
 Also, here it is important to do the indentation correctly. Also, here it is important to do the indentation correctly.
  
-If there are more than two possibilities, we can add {\codetxt elifstatements as in the following example:+If there are more than two possibilities, we can add `elifstatements as in the following example:
 <code python> <code python>
 a = 4. a = 4.
Zeile 376: Zeile 372:
 </code> </code>
 As you can see, a condition can consist of multiple sub-conditions. As you can see, a condition can consist of multiple sub-conditions.
-These can be connected, e.g., using {\codetxt andor {\codetxt or}: +These can be connected, e.g., using `andor `or`:
-\bit +
-\item {\codetxt condition1 and condition2}: is true only if {\it both} conditions are true +
-\item {\codetxt condition1 or condition2}: is true if one or both conditions are true +
-\eit+
  
 +   * `condition1 and condition2`: is true only if *both* conditions are true
 +   * `condition1 or condition2`: is true if one or both conditions are true
  
-{\bf Questions:} + 
-\ben +*Questions:* 
-\item Define a function `myabs(x)that takes a number x as an argument and returns the absolute value of this number. + 
-\item How do indentations work in nested if statements? Play around with if statements inside an if statement. +   * Define a function `myabs(x)that takes a number x as an argument and returns the absolute value of this number. 
-\een+   * How do indentations work in nested if statements? Play around with if statements inside an if statement.
  
  
Zeile 394: Zeile 388:
 If you want to repeat an action several times, you can use loop statements. If you want to repeat an action several times, you can use loop statements.
  
-First, let us discuss a {\bf for-loop}. A typical example is+First, let us discuss a *for-loop*. A typical example is 
 <code python> <code python>
 for i in range(4): for i in range(4):
     print(i)     print(i)
 </code> </code>
 +
 which outputs the numbers  which outputs the numbers 
 +
 <code bash> <code bash>
 0 0
Zeile 406: Zeile 403:
 3 3
 </code> </code>
 +
 This for-loop runs through all indices $i=0,1,2,3$.  This for-loop runs through all indices $i=0,1,2,3$. 
 First, it runs the code that follows for $i=0$, then for $i=1$, then for $i=2$, and finally for $i=3$; thus $4$ times in total. First, it runs the code that follows for $i=0$, then for $i=1$, then for $i=2$, and finally for $i=3$; thus $4$ times in total.
 Again, notice that Python starts counting at $0$! Again, notice that Python starts counting at $0$!
  
-Second, we discuss the {\bf while-loop}. It repeats a piece of code as long as a condition is satisfied.  +Second, we discuss the **while-loop**. It repeats a piece of code as long as a condition is satisfied.  
-Careful: If you have a bug in your code and the condition is always true, you have an `infinite loop': the code will never stop running and you will have to kill the process manually.+Careful: If you have a bug in your code and the condition is always true, you have an **infinite loop**: the code will never stop running and you will have to kill the process manually.
  
 A simple example of a while-loop is: A simple example of a while-loop is:
Zeile 422: Zeile 420:
 </code> </code>
 This piece of code has exactly the same output as the for-loop above. This piece of code has exactly the same output as the for-loop above.
-In the first line, we set {\codetxt i = 0}. %and we will use $i$ as a running index+In the first line, we set `i = 0`
-Then, in line 3, we say that we want to run the following code as long as the condition {\codetxt i < 4is true.+Then, in line 3, we say that we want to run the following code as long as the condition `i < 4is true.
 In line 4, we print the current value of the index. In line 4, we print the current value of the index.
 Very important is the last line: Here, we increase the value of $i$ by $1$ for the next run. Very important is the last line: Here, we increase the value of $i$ by $1$ for the next run.
Zeile 429: Zeile 427:
 As soon as this condition is not true anymore, which will be when $i = 4$, the loop will be terminated. As soon as this condition is not true anymore, which will be when $i = 4$, the loop will be terminated.
  
-{\bf Questions:+**Questions:**
-\ben +
-\item What happens to the if-loop if we write {\codetxt range} with two arguments, like {\codetxt range(3,7)}? +
-\item Take the while-loop given in this section and modify it to obtain an infinite loop. You should then kill the process. +
-\een +
- +
  
 +   * What happens to the if-loop if we write `range` with two arguments, like `range(3,7)`?
 +   * Take the while-loop given in this section and modify it to obtain an infinite loop. You should then kill the process (CTRL + C).
  
  
Zeile 442: Zeile 436:
  
 There are many additional packages that can be imported. There are many additional packages that can be imported.
-For doing math, `numpyis particular useful.+For doing math, `numpyis particular useful.
 For example, it contains a lot of predefined functions like trigonometric functions. For example, it contains a lot of predefined functions like trigonometric functions.
 Let us do an example Let us do an example
Zeile 451: Zeile 445:
 print(np.pi) print(np.pi)
 </code> </code>
-In the first line, we import the `numpypackage and give it the short name `np'. Of course, you could use a different name than `npbut this is the common choice. +In the first line, we import the `numpypackage and give it the short name `np`. Of course, you could use a different name than `npbut this is the common choice. 
-Each time we call a function (or something else) from numpy, we have to start with `np.', in order for Python to know that it has to look inside the numpy package. This is exactly what we do on line 3: We call the sine function defined in numpy and evaluate it for the argument $2$. In the last line, we print the value of the constant $\pi$.+Each time we call a function (or something else) from numpy, we have to start with `np.`, in order for Python to know that it has to look inside the numpy package. This is exactly what we do on line 3: We call the sine function defined in numpy and evaluate it for the argument $2$. In the last line, we print the value of the constant $\pi$.
  
 **Questions:** **Questions:**
 \ben \ben
-\item From trigonometry, you (should) remember the relation $\sin^2x + \cos^2x = 1$, holding for any $x \el \R$. Show explicitly that this relation holds different values for $x$. +   From trigonometry, you (should) remember the relation $\sin^2x + \cos^2x = 1$, holding for any $x \el \R$. Show explicitly that this relation holds different values for $x$. 
-\item Two very useful functions within numpy are:\\ +   * Two very useful functions within numpy are:\\ 
-{\codetxt np.linspace(a,b,c)and {\codetxt np.arange(a,b,c)}\\+`np.linspace(a,b,c)and `np.arange(a,b,c)`\\
 Find out what they do. Find out what they do.
 \een \een
Zeile 464: Zeile 458:
  
 # Elapsed time # Elapsed time
-\label{sec elapsed time} 
  
 If you want to test the efficiency of your code, it is useful to measure the time needed for the calculation: If you want to test the efficiency of your code, it is useful to measure the time needed for the calculation:
  • talit/python_basics.1581283757.txt.gz
  • Zuletzt geändert: 2020-02-09 21:29
  • von sca