diff -r 4bebfa8c9a0a -r c6d31837cb06 writing_python_scripts.rst --- a/writing_python_scripts.rst Wed Oct 13 11:15:18 2010 +0530 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,136 +0,0 @@ -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 - -.. Author : Nishanth - Internal Reviewer 1 : - Internal Reviewer 2 : - External Reviewer :