diff -r e78c284d644b -r 223044cf254f basicdatatype.rst --- a/basicdatatype.rst Thu Oct 07 10:57:15 2010 +0530 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,405 +0,0 @@ -Hello friends and welcome to the tutorial on Basic Data types and -operators in Python. -{{{ Show the slide containing title }}} - -{{{ Show the slide containing the outline slide }}} - -In this tutorial, we shall look at:: - - * Various Datatypes in Python - * Operators with a little hands-on on how they can be applied to - the different data types. - - - -First we will explore python data structures in the domain of numbers. -There are three built-in data types in python to represent numbers. - -{{{ A slide to make a memory note of this }}} - -These are: - - * Integers - * Complex and - * Boolean - -Lets first talk about integers. :: - - a = 13 - a - - -Thats it, there we have our first integer variable a. - - - -If we now see :: - - type(a) - - -This means that a is a type of int. Being an int data structure -in python means that there are various functions that this variable -has to manipulate it different ways. You can explore these by doing, - - a. - - - -Lets see the limits of this int. - - b = 99999999999999999999 - b - -As you can see even when we put a value of 9 repeated 20 times -python did not complain. However when you asked python to print -the number again it put a capital L at the end. Now if you check -the type of this variable b, :: - - type(b) - - - -The reason for this is that python recognizes large integer numbers -by the data type long. However long type and integer type share there -functions and properties. - -Lets now try out the second type in list called float. - -Decimal numbers in python are recognized by the term float :: - - p = 3.141592 - p - -If you notice the value of output of p isn't exactly equal to p. This -is because computer saves floating point values in a specific -format. There is always an aproximationation. This is why we should -never rely on equality of floating point numbers in a program. - -The last data type in the list is complex number :: - - c = 3.2+4.6j - -as simple as that so essentialy its just a combination of two floats the -imaginary part being define by j notation instead of i. Complex numbers have a lot of functions specific to them. -Lets check these :: - - c. - -Lets try some of them :: - - c.real - c.imag - -c.real gives the real part of the number and c.imag the imaginary. - -We can get the absolute value using the function :: - - abs(c) - -Python also has Boolean as a built-in type. - -Try it out just type :: - - t = True - -note that T in true is capitalized. - -You can apply different Boolean operations on t now for example :: - - f = not t - f - f or t - f and t - - - -The results are explanotary in themselves. - -The usage of boolean brings us to an interesting question of precendence. -What if you want to apply one operator before another. - -Well you can use parenthesis for precedence. - -Lets write some piece of code to check this out. - - In[]: a=False - In[]: b=True - In[]: c=True - -To check how precedence changes with parenthesis. We will try two -expressions and their evaluation. - -one :: - - (a and b) or c - -This expression gives the value True - -where as the expression :: - - a and (b or c) - -gives the value False. - -Lets now discuss sequence data structures in python. Sequence -datatypes are those in which elements are kept in a sequential -order. All the elements accessed using index. - -{{{ slide to for memory aid }}} - -The sequence datatypes in python are :: - - * list - * string - * tuple - -The list type is a container that holds a number of other -objects, in the given order. - -We create our first list by typing :: - - num_list = [1, 2, 3, 4] - num_list - - -Items enclosed in square brackets separated by comma -constitutes a list. - -Lists can store data of any type in them. - -We can have a list something like :: - - var_list = [1, 1.2, [1,2]] - var_list - - - -Now we will have a look at strings - -type :: - - In[]: greeting_string="hello" - - -greeting_string is now a string variable with the value "hello" - -{{{ Memory Aid Slide }}} - -Python strings can actually be defined in three different ways :: - - In[]: k='Single quote' - In[]: l="Double quote contain's single quote" - In[]: m='''"Contain's both"''' - -Thus, single quotes are used as delimiters usually. -When a string contains a single quote, double quotes are used as delimiters. -When a string quote contains both single and double quotes, triple quotes are -used as delimiters. - -The last in the list of sequence data types is tuple. - -To create a tuple we use normal brackets '(' -unlike '[' for lists.:: - - In[]: num_tuple = (1, 2, 3, 4, 5, 6, 7, 8) - -Because of their sequential property there are certain functions and -operations we can apply to all of them. - -{{{ Slide for memory aid }}} - -The first one is accessing. - -They can be accessed using index numbers :: - - In[]: num_list[2] - In[]: num_list[-1] - In[]: greeting_string[1] - In[]: greeting_string[3] - In[]: greeting_string[-2] - In[]: num_tuple[2] - In[]: num_tuple[-3] - - -Indexing starts from 0 from left to right and from -1 when accessing -lists in reverse. Thus num_list[2] refers to the third element 3. -and greetings [-2] is the second element from the end , that is 'l'. - - - -Addition gives a new sequence containing both sequences :: - - In[]: num_list+var_list - In[]: a_string="another string" - In[]: greeting_string+a_string - In[]: t2=(3,4,6,7) - In[]: num_tuple+t2 - -len function gives the length :: - - In[]: len(num_list) - In[]: len(greeting_string) - In[]: len(num_tuple) - -Prints the length the variable. - -We can check the containership of an element using the 'in' keyword :: - - In[]: 3 in num_list - In[]: 'H' in greeting_string - In[]: 2 in num_tuple - -We see that it gives True and False accordingly. - -Find maximum using max function and minimum using min:: - - In[]: max(num_tuple) - In[]: min(greeting_string) - -Get a sorted list and reversed list using sorted and reversed function :: - - In[]: sorted(num_list) - In[]: reversed(greeting_string) - -As a consequence of the order one we access a group of elements together. -This is called slicing and striding. - -First Slicing - -Given a list :: - - In[]:j=[1,2,3,4,5,6] - -Lets say we want elements starting from 2 and ending in 5. - -For this we can do :: - - In[]: j[1:4] - -The syntax for slicing is sequence variable name square bracket -first element index, colon, second element index.The last element however is notincluded in the resultant list:: - - - In[]: j[:4] - -If first element is left blank default is from beginning and if last -element is left blank it means till the end. - - In[]: j[1:] - - In[]: j[:] - -This effectively is the whole list. - -Striding is similar to slicing except that the step size here is not one. - -Lets see by example :: - - new_num_list=[1,2,3,4,5,6,7,8,9,10] - new_num_list[1:8:2] - [2, 4, 6, 8] - -The colon two added in the end signifies all the alternate elements. This is why we call this concept -striding because we move through the list with a particular stride or step. The step in this example -being 2. - -We have talked about many similar features of lists, strings and tuples. But there are many important -features in lists that differ from strings and tuples. Lets see this by example.:: - - In[]: new_num_list[1]=9 - In[]: greeting_string[1]='k' - -{{{ slide to show the error }}} - - - -As you can see while the first command executes with out a problem there is an error on the second one. - -Now lets try :: - - In[]: new_tuple[1]=5 - -Its the same error. This is because strings and tuples share the property of being immutable. -We cannot change the value at a particular index just by assigning a new value at that position. - - -We have looked at different types but we need to convert one data type into another. Well lets one -by one go through methods by which we can convert one data type to other: - -We can convert all the number data types to one another :: - - i=34 - d=float(i) - d - -Python has built in functions int, float and complex to convert one number type -data structure to another. - - dec=2.34 - dec_con=int(dec) - dec_con - - -As you can see the decimal part of the number is simply stripped to get the integer.:: - - com=2.3+4.2j - float(com) - com - -In case of complex number to floating point only the real value of complex number is taken. - -Similarly we can convert list to tuple and tuple to list :: - - lst=[3,4,5,6] - tup=tuple(lst) - tupl=(3,23,4,56) - lst=list(tuple) - -However string to list and list to string is an interesting problem. -Lets say we have a string :: - - In: somestring="Is there a way to split on these spaces." - In: somestring.split() - - -This produces a list with the string split at whitespace. -similarly we can split on some other character. - - In: otherstring="Tim,Amy,Stewy,Boss" - -How do we split on comma , simply pass it as argument :: - - In: otherstring.split(',') - -join function does the opposite. Joins a list to make a string.:: - - In[]:','.join['List','joined','on','commas'] - -Thus we get a list joined on commas. Similarly we can do spaces.:: - - In[]:' '.join['Now','on','spaces'] - -Note that the list has to be a list of strings to apply join operation. - -.. #[Nishanth]: string to list is fine. But list to string can be left for - string manipulations. Just say it requires some string - manipulations and leave it there. - -.. #[Nishanth]: Where is the summary - There are no exercises in the script - -{{{ Show the "sponsored by FOSSEE" slide }}} - -This tutorial was created as a part of FOSSEE project, NME ICT, MHRD India - -Hope you have enjoyed and found it useful. - -Thank You. - - - -Author : Amit Sethi -Internal Reviewer 1 : Nishanth -Internal Reviewer 2 : -External Reviewer