⇤ ← Revision 1 as of 2008-04-10 15:09:02
Size: 8832
Comment:
|
Size: 8089
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 1: | Line 1: |
Describe SiaProgrammingPythonBasicPython here. \section{Basic Python} \begin{frame}[fragile]\frametitle{Basic Python} \vfill \begin{itemize} \item Keywords \item Built-in types \item Operators \item Conditions \item Variables \item Functions \end{itemize} \vfill \end{frame} \begin{frame}[fragile]\frametitle{Basic Python} \vfill |
#acl AdminGroup:read,write EditorGroup:read All:read #format wiki #language en #pragma section-numbers off SiaProgrammingPython = Basic Python = == Built-in keywords == |
Line 22: | Line 13: |
\small \begin{verbatim} |
{{{ |
Line 34: | Line 25: |
\end{verbatim} \vfill \end{frame} \begin{frame}[fragile]\frametitle{Built-in types} \vfill \textbf{Python built-in numeric types}\vfill |
}}} == Built-in types == === Python built-in numeric types === |
Line 42: | Line 31: |
\begin{itemize} \item plain integers \textbf{int} \item long integers \textbf{long} \item floating point numbers \textbf{float} \item complex numbers \textbf{complex} \end{itemize} |
* plain integers {{{int}}} * long integers {{{long}}} * floating point numbers {{{float}}} * complex numbers {{{complex}}} |
Line 49: | Line 38: |
\vfill \end{frame} \begin{frame}[fragile]\frametitle{Operations} \small \begin{verbatim} |
=== Boolean === Boolean (logical) types * True * False === Operations === {{{ |
Line 71: | Line 64: |
\end{verbatim} \end{frame} \begin{frame}[fragile]\frametitle{Comparisons} \small \begin{verbatim} |
}}} Boolean Operations: {{{and}}}, {{{or}}}, {{{not}}} {{{ x or y if x is false, then y, else x x and y if x is false, then x, else y not x if x is false, then True, else False }}} === Comparisons === {{{ |
Line 85: | Line 84: |
\end{verbatim} \end{frame} \begin{frame}[fragile]\frametitle{Boolean} Boolean (logical) types \begin{itemize} \item \textbf{True} \item \textbf{False} \end{itemize} \vfill Boolean Operations: \textbf{and}, \textbf{or}, \textbf{not} \small \begin{verbatim} x or y if x is false, then y, else x x and y if x is false, then x, else y not x if x is false, then True, else False \end{verbatim} \vfill \end{frame} \begin{frame}[fragile]\frametitle{Sequence types} Sequence types \begin{itemize} \item \textbf{str} \item \textbf{list} \item \textbf{tuple} \end{itemize} Operations \small \begin{verbatim} |
}}} === Sequence types === * String {{{str}}} * List {{{list}}} * Tuple {{{tuple}}} === Operations === {{{ |
Line 125: | Line 105: |
\end{verbatim} \vfill \end{frame} |
}}} |
Basic Python
Built-in keywords
Python built-in keywords
help> keywords and else import raise assert except in return break exec is try class finally lambda while continue for not yield def from or del global pass elif if print
Built-in types
Python built-in numeric types
There are four distinct numeric types:
plain integers int
long integers long
floating point numbers float
complex numbers complex
In addition, Booleans are a subtype of plain integers
Boolean
Boolean (logical) types
- True
- False
Operations
x + y sum of x and y x - y difference of x and y x * y product of x and y x / y quotient of x and y x // y (floored) quotient of x and y x % y remainder of x / y -x x negated +x x unchanged abs(x) absolute value or magnitude of x int(x) x converted to integer long(x) x converted to long integer float(x) x converted to floating point complex(re,im) a complex number with real part re, imaginary part im. im defaults to zero c.conjugate() conjugate of the complex number c x ** y x to the power y
Boolean Operations: and, or, not
x or y if x is false, then y, else x x and y if x is false, then x, else y not x if x is false, then True, else False
Comparisons
< strictly less than <= less than or equal > strictly greater than >= greater than or equal == equal != not equal is object identity
Sequence types
String str
List list
Tuple tuple
Operations
x in s True if an item of s is equal to x, else False x not in s False if an item of s is equal to x, else True s + t the concatenation of s and t s[i] i'th item of s s[i:j] slice of s from i to j s[i:j:k] slice of s from i to j with step k len(s) length of s min(s) smallest item of s max(s) largest item of s
\begin{frame}[fragile]\frametitle{Variables, assignment} The \textbf{assignment statement =} creates new variables and gives them values \begin{verbatim} a=2 l=9**1000L S='Hello' f=1e5 \end{verbatim} \vfill \end{frame}
\begin{frame}[fragile]\frametitle{Lists and tuples} \begin{itemize} \item Lists \textbf{[]} are mutable sequences of values \item Tuples \textbf{()} can not be changed (immutable) \end{itemize} \tiny \begin{verbatim} In [5]: a=[1,2,3] In [6]: b=(1,2,3)
In [7]: a[0] Out[7]: 1
In [8]: b[0] Out[8]: 1
In [9]: a[0]=4
In [10]: a Out[10]: [4, 2, 3]
In [11]: b[0]=4
exceptions.TypeError \end{verbatim} \vfill \end{frame}
\begin{frame}[fragile]\frametitle{Indexing and slicing} \begin{itemize} \item Indices \textbf{[]} select elements of variables \item Indices start from zero \item \textbf{[a:b]} selects a slice of elements \end{itemize} \tiny \begin{verbatim} In [1]: a=range(10)
In [2]: a Out[2]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
In [3]: a[0:4] Out[3]: [0, 1, 2, 3]
In [4]: a[4:] Out[4]: [4, 5, 6, 7, 8, 9]
In [5]: a[:4] Out[5]: [0, 1, 2, 3]
In [6]: a[:-1] Out[6]: [0, 1, 2, 3, 4, 5, 6, 7, 8]
In [7]: s='Hello world' In [8]: s[:5] Out[8]: 'Hello'
In [9]: a=tuple(range(10)) In [10]: a[0:4] Out[10]: (0, 1, 2, 3) \end{verbatim} \vfill \end{frame}
\begin{frame}[fragile]\frametitle{List built-in functions (methods)} \begin{itemize} \item \textbf{L.append(object)} -- append object to end \item \textbf{L.count(value)} -> integer -- return number of occurrences of value \item \textbf{L.extend(iterable)} -- extend list by appending elements from the iterable \item \textbf{L.index(value, [start, [stop]])} -> integer -- return first index of value \item \textbf{L.insert(index, object)} -- insert object before index \item \textbf{L.pop([index])} -> item -- remove and return item at index (default last) \item \textbf{L.reverse()} -- reverse *IN PLACE* \item \textbf{L.sort()} -- stable sort *IN PLACE* \end{itemize} \vfill \end{frame}
\begin{frame}[fragile]\frametitle{List built-in functions (methods)} \scriptsize \begin{verbatim} In [72]: L=['C','A','B'] In [73]: L.sort()
In [74]: L Out[74]: ['A', 'B', 'C']
In [75]: L.pop() Out[75]: 'C'
In [76]: L Out[76]: ['A', 'B']
In [77]: L.insert(1,'C')
In [78]: L Out[78]: ['A', 'C', 'B'] \end{verbatim} \vfill \end{frame}
\begin{frame}[fragile]\frametitle{Nested data structures} \scriptsize \begin{verbatim} In [84]: a=range(10) In [85]: b=range(0,10,2) In [86]: b Out[86]: [0, 2, 4, 6, 8]
In [87]: c=[a,b]
In [88]: c Out[88]: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [0, 2, 4, 6, 8
In [91]: c[0] Out[91]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
In [92]: c[1] Out[92]: [0, 2, 4, 6, 8]
In [93]: c[0][0:4] Out[93]: [0, 1, 2, 3]
In [94]: c[1][0:4] Out[94]: [0, 2, 4, 6] \end{verbatim} \vfill \end{frame}
\begin{frame}[fragile]\frametitle{Dictionary}
\begin{itemize} \item A dictionary is like a list, but more general. \item In a list, the indices have to be integers; in a dictionary they can be (almost) any type. \item \textbf{d=\{\}} creates empty dictionary \item \textbf{d[key]=value} add a key, value pair to dictionary \item \textbf{d.keys()} returns list of keys \end{itemize} \scriptsize \begin{verbatim} In [95]: D={} In [96]: D['a']=range(10) In [97]: D['b']=range(0,10,2)
In [98]: D Out[98]: {'a': [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], 'b': [0, 2, 4, 6, 8]}
In [99]: D['a'] Out[99]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
In [100]: D.keys() Out[100]: ['a', 'b'] \end{verbatim} \vfill \end{frame}
\begin{frame}[fragile]\frametitle{Loops} \begin{itemize} \item Looping over a list is done for the \textbf{for} statement \item \textbf{enumerate()} returns an enumerated object \end{itemize} \scriptsize \begin{verbatim} In [106]: a=['Hund','Katze','Maus'] In [108]: for i in a:
- ....: print i
- ....:
Hund Katze Maus
In [111]: for i,j in enumerate(a):
- ....: print i,j
- ....:
0 Hund 1 Katze 2 Maus
\end{verbatim} \vfill \end{frame}
\begin{frame}[fragile]\frametitle{Control statements} \begin{itemize} \item Conditions can be checked with \textbf{if-else} statement \item \textbf{if} condition: indented block \item \textbf{else:} \item condition \end{itemize} \scriptsize \begin{verbatim} In [116]: if a==1:
- ....: print 'a=1'
- ....: else:
- ....: print 'a != 1'
- ....:
a=1 \end{verbatim} \vfill \end{frame}
\begin{frame}[fragile]\frametitle{Functions} Function with one argument \begin{verbatim} In [124]: def quadrat(x):
- ....: return x**2
- ....:
In [125]: quadrat(2) Out[125]: 4 \end{verbatim} \vfill \end{frame}
\begin{frame}[fragile]\frametitle{Functions} Function with variable number of arguments \begin{verbatim} In [126]: def printargs(*args):
- ....: for arg in args:
- ....: print arg
- ....:
In [127]: printargs(a) [1, 2, 3]
In [128]: printargs(a,range(4)) [1, 2, 3] [0, 1, 2, 3] \end{verbatim} \vfill \end{frame}
\begin{frame}[fragile]\frametitle{Functions} Function with variable number of keywords \begin{verbatim} In [131]: def printkeys(**kw):
- ....: for k in kw.keys():
- ....: print k,kw[k]
- ....:
In [132]: printkeys(key1=10,key2='Hallo') key2 Hallo key1 10 \end{verbatim} \vfill \end{frame}
\end{document}