Friday, July 3, 2015

Python Basics-2


Variables – Variables are nothing but memory locations reserved by Python to store values. This means that when we create some thing like
Var = 10

We created a var variable which will be reserved some space by Python to store the value “10”

Python Provides us the facility not to define the type of the variables being used. That is in many other high level language we have to define

Int var =10 #define a int variable

Python has the capability to identify the type of the data being saved and reserves memory based on that. Hence by assigning different data types to variables, you can store integers, decimals or characters in these variables.

So why there is No Type Declaration in Python?
As Said above Python has the capability to figure out the types when we declare a variable in out Code. The reason is that variable does not contain any type information according to the Python. We already discussed that variables are just pointer to the memory location where we store the actual value. The memory value contains the type information. Since the value in the memory location holds the type value we don’t need the variable to hold the type values. Consider if we create many variables with same values and all these variables holding the Type value , there is considerably mis-use of the memory in our programs . In order to make the program execution fast with less memory usage python eliminates the need of declaring the type when defining the variables

Type declaration can be identified using “type” function like
>>> i = 10
>>> type(i)
<type 'int'>

Assigning – Assigning a value to a variables Is done in the same way as done in other languages using the “=” sign

counter = 100          # An integer assignment
miles   = 1000.0       # A floating point
name    = "John"       # A string

Python allows to assign multiple variables in one go as a = b = c = 1. In this case a memory is allocated with a value 1 and all 3 variables a, b and c point to this memory location.

Local and Global variables - If a variable is defined outside function then it is implicitly global. If variable is assigned new value inside the function means it is local. If we want to make it global we need to explicitly define it as global. Variable referenced inside the function are implicit global

Here is the sample Python Script that explains the use of local and global variables,

hello="hello"
hai="hai"

def hello():
    hello+=”hello”
    hello= ""
    global hai
    hai+="is Hai"
    print hello
    print hai

print hello()

Now the script will throw and error if it encountered the statement , Hello+=”Hello” , since we are accessing a Global variable and assigning the value. Since this is global variable is being accessed inside a function definition , it throws the below error.

[djas999@vx181d imp]$ python hello.py
Traceback (most recent call last):
  File "hello.py", line 14, in <module>
    print hello()
  File "hello.py", line 8, in hello
    hello+="is one"
UnboundLocalError: local variable 'hello' referenced before assignment

In order to access a global variable inside a function scope, we need to define the variable as global as we did that for the hai variables.

No comments :

Post a Comment