diff options
author | Nishanth Amuluru | 2010-10-11 13:41:01 +0530 |
---|---|---|
committer | Nishanth Amuluru | 2010-10-11 13:41:01 +0530 |
commit | 054ed1a86beff71899419fba6cba54c61536e417 (patch) | |
tree | 350da12e886cf507e475f3daef798d04239dcd5a /writing_python_scripts/script.rst | |
parent | 088a6dd537967e36a84f518a527c8392384f0d40 (diff) | |
download | st-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.rst | 146 |
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 + |