removed sslc1.txt from circulate since it is not required
\documentclass[12pt]{article}\title{Python: Data Structures}\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}\begin{document}\date{}\vspace{-1in}\begin{center}\LARGE{Python Development}\\\large{FOSSEE}\end{center}\section{Module}Packages like \typ{scipy}, \typ{pylab} etc we used for functions like \typ{plot}, \typ{linspace} are \textbf{Modules}. They are Python script, which have various functions and objects, which can be imported and reused. \begin{lstlisting}def gcd(a, b): if a % b == 0: return b return gcd(b, a%b)print gcd(15, 65)print gcd(16, 76)\end{lstlisting}Save above mentioned python script with name 'gcd.py'. Now we can \typ{import} \typ{gcd} function. For example, in same directory create 'lcm.py' with following content:\begin{lstlisting}from gcd import gcd def lcm(a, b): return (a * b) / gcd(a, b)print lcm(14, 56)\end{lstlisting}Here since both gcd.py and lcm.py are in same directory, import statement imports \typ{gcd} function from gcd.py.\\When you try to run lcm.py it prints three results, two from gcd.py and third from lcm.py.\begin{lstlisting}$ python lcm.py5456\end{lstlisting} %$\newpageWe have print statements to make sure \typ{gcd} and \typ{lcm} are working properly. So to suppress output of \typ{gcd} module when imported in lcm.py we use \typ{'__main__'} \\begin{lstlisting}def gcd(a, b): if a % b == 0: return b return gcd(b, a%b)if __name__ == '__main__': print gcd(15, 65) print gcd(16, 76)\end{lstlisting}\typ{__main__()} helps to create standalone scripts. Code inside it is only executed when we run gcd.py. Hence\begin{lstlisting}$ python gcd.py54$ python lcm.py 56\end{lstlisting}\end{document}