summaryrefslogtreecommitdiff
path: root/writing_python_scripts/script.rst
diff options
context:
space:
mode:
authorNishanth Amuluru2010-10-11 13:41:01 +0530
committerNishanth Amuluru2010-10-11 13:41:01 +0530
commit054ed1a86beff71899419fba6cba54c61536e417 (patch)
tree350da12e886cf507e475f3daef798d04239dcd5a /writing_python_scripts/script.rst
parent088a6dd537967e36a84f518a527c8392384f0d40 (diff)
downloadst-scripts-054ed1a86beff71899419fba6cba54c61536e417.tar.gz
st-scripts-054ed1a86beff71899419fba6cba54c61536e417.tar.bz2
st-scripts-054ed1a86beff71899419fba6cba54c61536e417.zip
made the script writing_python_scripts into new form
Diffstat (limited to 'writing_python_scripts/script.rst')
-rw-r--r--writing_python_scripts/script.rst146
1 files changed, 146 insertions, 0 deletions
diff --git a/writing_python_scripts/script.rst b/writing_python_scripts/script.rst
new file mode 100644
index 0000000..d8268f4
--- /dev/null
+++ b/writing_python_scripts/script.rst
@@ -0,0 +1,146 @@
+.. Objectives
+.. ----------
+
+.. Prerequisites
+.. -------------
+
+.. Author : Nishanth Amuluru
+ Internal Reviewer :
+ External Reviewer :
+ Checklist OK? : <put date stamp here, if OK> [2010-10-05]
+
+Script
+------
+
+Hello friends and welcome to the tutorial on "Writing Python scripts"
+
+{{{ Show the slide containing title }}}
+
+{{{ Show the slide containing the outline slide }}}
+
+In this tutorial, we shall learn
+
+ * How write Python scripts
+
+Often we will have to reuse the code that we haave written. We do that by
+writing functions. Functions are bundled into packages and are imported as and
+required in the script.
+
+Let us first write a function that computes the gcd of two numbers and save it
+in a script.
+
+{{{ Open an editor and start typing out the following code }}}
+::
+
+ def gcd(a, b):
+
+ while b:
+ a, b = b, a%b
+
+ return a
+
+We shall write an test function in the script that tests the gcd function every
+time the script is run.
+
+{{{ Add to the script }}}
+
+::
+
+ if gcd(40, 12) == 4:
+ print "Everything OK"
+ else:
+ print "The GCD function is wrong"
+
+Let us save the file as script.py in /home/fossee/gcd_script.py
+
+We shall run the script by doing
+::
+
+ $ python /home/fossee/gcd_script.py
+
+We can see that the script is executed and everything is fine.
+
+What if we want to use the gcd function in some of our later scripts. This
+is also possible since every python file can be used as a module.
+
+But first, we shall understand what happens when you import a module.
+
+Open IPython and type
+::
+
+ import sys
+ sys.path
+
+This is a list of locations where python searches for a module when it
+encounters an import statement.
+
+hence when we just did =import sys=, python searches for a file named sys.py or
+a folder named sys in all these locations one by one, until it finds one.
+
+We can place our script in any one of these locations and can import it.
+
+The first item in the list is an empty string which means the current working
+directory is also searched.
+
+Alternatively, we can also import the module if we are working in same
+directory where the script exists.
+
+Since we are in /home/fossee, we can simply do
+::
+
+ import gcd_script
+
+We can see that the gcd_script is imported. But the test code that we added at
+the end of the file is also executed.
+
+But we want the test code to be executed only when the file is run as a python
+script and not when it is imported.
+
+This is possible by using =__name__= variable.
+
+First we shall look at how to use the idiom and then understand how it works.
+
+Go to the file and add
+::
+
+ if __name__ == "__main__":
+
+before the test code and indent the test code.
+
+Let us first run the code.
+::
+
+ $ python gcd_script.py
+
+We can see that the test runs successfully.
+
+Now we shall import the file
+::
+
+ import gcd_script
+
+We see that now the test code is not executed.
+
+The __name__ variable is local to every module and it is equal to __main__ only
+when the file is run as a script.
+
+hence all the code that goes after __name__ == "__main__" is executed only when
+the file is run as a python script.
+
+{{{ Show summary slide }}}
+
+This brings us to the end of the tutorial.
+we have learnt
+
+ * What happens when we import a module
+ * How to use a script as a module
+ * How to write test functions using the __name__ idiom
+
+{{{ Show the "sponsored by FOSSEE" slide }}}
+
+#[Nishanth]: Will add this line after all of us fix on one.
+This tutorial was created as a part of FOSSEE project, NME ICT, MHRD India
+
+Hope you have enjoyed and found it useful.
+Thankyou
+