\documentclass[12pt]{article} \title{Python: Basics} \author{FOSSEE} \usepackage{listings} \lstset{language=Python, basicstyle=\ttfamily, commentstyle=\itshape\bfseries, showstringspaces=false } \newcommand{\typ}[1]{\lstinline{#1}} \usepackage[english]{babel} \usepackage[latin1]{inputenc} \usepackage{times} \usepackage[T1]{fontenc} \usepackage{ae,aecompl} \usepackage{mathpazo,courier,euler} \usepackage[scaled=.95]{helvet} \usepackage{url} \begin{document} \date{} \vspace{-1in} \begin{center} \LARGE{Python: Basics}\\ \large{FOSSEE} \end{center} \section{Data types} \subsection{int and float} A whole number is a \typ{int} variable. \begin{lstlisting} In []: a = 13 In []: type(a) Out[]: In []: b = -2 In []: type(b) Out[]: In []: c = 500000000 In []: type(c) Out[]: \end{lstlisting} A number with decimal is a \typ{float}. \begin{lstlisting} In []: p = 3.141592 In []: type(p) Out[]: \end{lstlisting} \subsection{Complex Numbers} \begin{lstlisting} In []: c = 3+4j #coeff of j specifies imaginary part In []: abs(c) #absolute value of complex number Out[]: 5.0 In []: c.imag #accessing imaginary part of c Out[]: 4.0 In []: c.real #accessing real part of c Out[]: 3.0 \end{lstlisting} \newpage \subsection{Boolean} \begin{lstlisting} In []: a = False In []: b = True In []: c = True In []: (a and b) or c #Boolean operations Out[]: True \end{lstlisting} \textbf{Note:} Python is case sensitive language, \typ{True} is \typ{bool} type, but \typ{true} would be a variable. and hence following assignment fails:\\ \typ{In []: a = true}\\ \subsection{Strings} \begin{lstlisting} In []: w = "hello" #w is string variable In []: print w[1] Out[]: e In []: print w[-1] #last character of string Out[]: o \end{lstlisting} \textbf{Note:} For a string variable, individual elements can be accessed using indices.\\ \textbf{Note:} All slicing and striding operations works with strings as well. \begin{lstlisting} In []: len(w) #function to calculate length of string Out[]: 5 In []: w[0] = 'H' # ERROR: Strings are immutable \end{lstlisting} \subsection{String methods} \begin{lstlisting} In []: a = 'Hello World' In []: a.startswith('Hell') # 'a' starts with 'Hell' Out[]: True In []: a.endswith('ld') # 'a' ends with 'ld' Out[]: True In []: a.upper() # all characters to upper case Out[]: 'HELLO WORLD' In []: a.lower() # all characters to lower case Out[]: 'hello world' In []: ''.join(['a', 'b', 'c']) Out[]: 'abc' \end{lstlisting} \typ{join} function joins all the list member passed as argument with the string it is called upon. In above case it is \typ{empty string}. \begin{lstlisting} In []: ' '.join(['a','b','c']) Out[]: 'a b c' In []: ','.join(['a','b','c']) Out[]: 'a,b,c' \end{lstlisting} \subsection{String formatting} \begin{lstlisting} In []: x, y = 1, 1.234 #initializing two variables In []: 'x is %s, y is %s' %(x, y) Out[]: 'x is 1, y is 1.234' \end{lstlisting} \textbf{Note:} \typ{\%s} used in above formatting specifies \typ{'str'} representation of variables. One can also try:\\ \typ{\%d} for \typ{int} representation\\ \typ{\%f} for \typ{float} representation \begin{lstlisting} In []: 'x is %f, y is %f' %(x, y) Out[]: 'x is 1.000000, y is 1.234000' In []: 'x is %d, y is %d' %(x, y) Out[]: 'x is 1, y is 1' \end{lstlisting} \subsection{Arithmetic Operators} \begin{lstlisting} In []: 45 % 2 # Modulo operator Out[]: 1 In []: 5 ** 3 # Power Out[]: 125 In []: a = 5 In []: a += 1 #increment by 1, translates to a = a + 1 In []: a *= 2 \end{lstlisting} \subsection{String Operations} \begin{lstlisting} In []: s = 'Hello' In []: p = 'World' In []: s + p #concatenating two strings Out[]: 'HelloWorld' In []: s * 4 #repeat string for given number of times Out[]: 'HelloHelloHelloHello' \end{lstlisting} \subsection{Relational and Logical Operators} \begin{lstlisting} In []: p, z, n = 1, 0, -1 #initializing three variables In []: p == n #equivalency check Out[]: False In []: p >= n Out[]: True In []: n < z < p #finding largest number among three Out[]: True In []: p + n != z Out[]: False \end{lstlisting} \subsection{Built-ins} \begin{lstlisting} In []: int(17 / 2.0) #converts arguments to integer Out[]: 8 In []: float(17 / 2) #argument is already integer(17 / 2 = 8) Out[]: 8.0 In []: str(17 / 2.0) #converts to string Out[]: '8.5' In []: round( 7.5 ) Out[]: 8.0 \end{lstlisting} \subsection{Console Input} \begin{lstlisting} In []: a = raw_input('Enter a value: ') Enter a value: 5 \end{lstlisting} \textbf{Note:} \typ{raw_input} always returns string representation of user input and hence: \begin{lstlisting} In []: type(a) Out[]: \end{lstlisting} To get integer or floating point of this input, one has to perform type conversion:\\ \typ{In []: b = int(a)} \section{Conditionals} \typ{if} \begin{lstlisting} In []: x = int(raw_input("Enter an integer:")) In []: if x < 0: ...: print 'Be positive!' ...: elif x == 0: ...: print 'Zero' ...: elif x == 1: ...: print 'Single' ...: else: ...: print 'More' \end{lstlisting} Ternary Operator \begin{lstlisting} In []: a = raw_input('Enter number(Q to quit):') In []: num = int(a) if a != 'Q' else 0 \end{lstlisting} Above statement can be read as ``num is int of a, if a is not equal to 'Q', otherwise 0 `` \section{Links and References} \begin{itemize} \item Reference manual to describe the standard libraries that are distributed with Python is available at \url{http://docs.python.org/library/} \item To read more on strings refer to: \\ \url{http://docs.python.org/library/stdtypes.html#string-methods} \end{itemize} \end{document}