1 / 41

Introduction to Python 3.x

Introduction to Python 3.x. Mikio Kubo. Why Python?. We can do anything by importing some modules Optimization Data Analysis Statistics Everything is included! Also fly! import antigravity ? Programming becomes fun again!. http://xkcd.com/353 /. Why Python?.

hrush
Télécharger la présentation

Introduction to Python 3.x

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Introduction to Python 3.x Mikio Kubo

  2. Why Python? • We can do anything by importing some modules • Optimization • Data Analysis • Statistics • Everything is included! • Also fly! import antigravity ? • Programming becomes fun again! http://xkcd.com/353/

  3. Why Python? • Most popular programming language • Including MIT (Introduction to Computer Science and Programming Using Python)

  4. Why Python? Python! Average Initial Salary in Japan • To get more money!

  5. Why Python? • To get more and more money! Top 10 Programming Languages to Learn in 2014 No 1. Python Average Salary: $93,000 Job Count: 24,533 Top Employers: Amazon, Dell, Google, eBay & Yahoo, Instagram, NASA, Yahoo Example Sites: Google.com, Yahoo Maps, Reddit.com, Dropbox.com, Disqus.com No 2. Java, No 3. Ruby, No. 4 C++, No5. JavaScript No 6. C#, No. 7 PHP, No8. Perl …. http://tech.pro/blog/1885/top-10-programming-languages-to-learn-in-2014

  6. Some Remarks • Python 3.x is not compatible to Python 2.x • We use Python 3 • Install Anaconda (Python 3 Package) https://store.continuum.io/cshop/anaconda/Free version is enoughIt includes more than 100 useful modulesIt supports Mac, Linux, and Windows

  7. How to print 'Hello, world!' C++ (You need not remember this! )#include <iostream> int main() { std::cout << 'Hello, world!' << std::endl; return 0; } Python– Just use function print() print ('Hello, world!')

  8. Indent = Beauty Indent = The way for grouping the sentences in Python A bad C++ programmer may write... if (x > 1) { y=x+1; z=x+y; } else { y=0; z=0; } In Python, anyone must write like this: if x > 1: y=x+1 # This is a comment part z=x+y # Here is the first block else: y=z=0 # Now the second block If the indentation was wrong, it causes an error!

  9. Why Python Again! • Number of keywords to be remembered is much less than other language(about 30! Java has more than 120!) • Indentation helps to write a easy-to-read program • Interpreter (You need not to compile) • Need not to declare variables • Need not to manage memory (automatic garbage collection) • Works on Windows, Mac, Linux (and also iphone and ipad!) • Object oriented • Free!

  10. Data Type(1): Number • Number • int : integer number in unlimited range • bool : True or False • float: floating point number, i.e., 5.4or 1.0 • complex: complex number, i.e., z= 0 + 1j (real part and imaginary part) z.real is 0 z.imag is 1 z * z is -1+0j because j*j is minus 1

  11. Data Type(2): Sequence • Sequence Type • string : (immutable) sequence of unicodes, i.e., 'Mickey','Minny','Mickey's Birthday', and ''' We can write multiple lines using triple quotes like this''' • list: (mutable) sequence of arbitrary objects generated by brackets [ ], i.e., [1,2,3,'a'], [1,'b', [2,3,'c'], 6 ], [ ] • tuple: (immutable) sequence of arbitrary objects generated by parentheses( ), i.e., (1,2,3,'a'), ( (1,2), (2,'f','g'))

  12. 'Immutable' = cannot modify String is immutable! >>> a='Mickey' >>> a[0]='D' # a[0] is the first string Traceback (most recent call last): File '<pyshell#7>', line 1, in <module> a[0]='D' TypeError: 'str' object does not support item assignment Tuple are immutable, while list is mutable!

  13. Data Type(3) • Set Type • set : (mutable) set generated by braces { }, i.e., {1,2,3}, {'a', 'b', 'Mickey'} • frozenset: (immutable) set • Map Type • dictionary: hash function that maps keys to values composed generated by {key: value, ... }, i.e., { 'Mary': 126, 'Jane': 156}, { 'Hello': 'Konnnichiwa', 1: 'One', 2: 'Two'}

  14. Function type( ) and type conversion • To check the type of objects, use function type(): • type(124) • type(3.1415) • type(3+5j) • To convert the type • int() : convert to integer number • float( ) : convert to floating number • complex() : convert to complex number • int(3.14) • float(3) • complex(1)

  15. Bool and String: type conversion • Check the type of objects • type(True) • type('Hello') • Convert the type • bool() : 0is False,otherwise True • str( ) : return string • bool(3.14) • bool(0) • bool('0') • str(3+5) • str(True)

  16. String (1) 'abc' or 'abc' or ''' ..... ...... ''' Single (double) quote inside the double (single) quotes is allows. ' My 'ideal' Place ' or 'My 'favorite' movie' Triple quotes( ''' ) allows multiple lines

  17. String (2) • String is a sequence type index from 0For x= 'abcd', x[1] returns 'b' a b c d x[0] x[1] x[2] x[3]

  18. Slicing (1) • slicingof sequence type [i:j] means i≦k<j [ :j] means 0≦k<j [i: ] means i≦k For x= 'abcd', x[1:3] returns 'bc'x[1:]returns 'bcd' a b c d x[0] x[1] x[2] x[3]

  19. Slicing (2) • len() returns the size of the object len(x[i:j]) is equal to j-i • The negative indices mean the index from the last.The last character is x[-1]. The slicing is the strings between the number i and j. 0 1 2 3 4 a b c d -4 -3 -2 -1 x[0] x[1] x[2] x[3]

  20. StringMethods (1) • Method (function associated with object using '.' notation) Example: s='abABBaac' s.count(x):returns how many times x occurs in string s s.count('a') -> 3 s.index(x):returns the first index x occurs in string s s.index('A') -> 2 s.upper():converts all the characters in string s to uppercase s.upper() -> 'ABABBAAC' s.islower(): returns True iff all the characters in sting s are lowercased s.islower() -> False

  21. StringMethods (2) • Example: s='abABBaac' s.replace(old, new): returns a string by substituting string <old> to <new> in string s s.replace('AB','Mickey') -> 'abMickeyBaac' s.split(d): returns a list of strings using d as the separator s.split('a')| -> [' ', 'bABB', ' ', 'c'] s.join(L): returns a string that concatenates all the string in list L using s as the separator ':'.join(['a','b','c'])| -> |'a:b:c'| s.format(args): formats the string s using argument args 'My friends are {0}, {1} and {0}'.format('Bob','Pedro','Bob) -> 'My friends are Bob, Pedro and Bob'

  22. List • list: sequence of arbitrary objects • Use bracket [] and separate the objects by comma (,). i.e., [1,2,3,'a'],['a',['b',5,5],'c'] • mutable: can modify the items For L=[1,1,5,4] , L[1]=100=> L=[1,100,5,4] • Modify the elements by slicing For L=[1,1,5,4] , L[1:3]=[100,200,300] => L=[1,100,200,300,4]

  23. ListMethods • Method (function associated with object using '.' notation) Example: L=[1,1,5,4] L.count(x):returns how many times x occurs in list L L.count(1) -> 2 L.index(x):returns the first index x occurs in L L.index(5) -> 2 L.reverse(): reverses the order of items in L L.reverse() -> L=[4,5,1,1] L.sort(): sorts the items in L L.sort()-> L=[1,1,4,5]

  24. Tuple • tuple:sequence type of arbitrary objects • Just separate the objects by comma (,) like a,bor use parentheses. i.e., (1,2,3,'a') • Parentheses are necessarily for nested tuples ((1,5),('a','b',6)) • immutable: cannot modify • Usage: a,b = b,a

  25. Dictionary • dictionary: map type composed of keys and values • Use braces{ } and input 'key : value' pairs separated by comma, i.e., D={ 'Mary': 126, 'Jane': 156, 'Sara': 170} • Same dictionary can be generate using dict() functionD=dict(Mary=126, Jane=156, Sara=170) • D['Sara'] returns 170 • Keys must be immutable • Dictionary is mutable: D['Sara']=130 => { 'Mary': 126, 'Jane': 156, 'Sara': 130}

  26. Set • set and frozenset: set type composed of arbitrary objects • Use braces S = {1,2,'Candy'} • Use function set (or frozenset) S=set( [1,2,'Candy']) • set methods such as union, intersection, difference,symmetric difference • set is mutable • fronzenset is immutable

  27. Operation(1) • Priority of operations • Parentheses () • Exponential ** • Multiply*or Division / or Integer Division // or Mod (Division Remainder) % • Add+ or Subtract - • Comparison (returns Boolean) <=less than or equal to >= greater than or eqial to == equal !=not equal

  28. Operator(2) • 'in' and 'not in' • True if an element is in the object (string, list, tuple, set, dictionary) • True if an element is not in the object • Boolean operators and or • (1<4) or (5<4) • ('a' in 'banana') and ('c' in [1,5,'c'])

  29. If /elsestatesment if <True or False Expression 1>: Expression 1 is True elif if <True or False Expression 2>: Expression 1 is False and Expression 2 is True else: Expression 1 is False and Expression 2 is False Example: if x<0: print ( 'Negative Number' ) else: print ( 'Non-negative' )

  30. for-loop for <element> in <iterative object such as list or dict>: Loop Block range(i,j): generator function that returns integers k such that i ≦k < j Example: print 0,1,2,3,4 for x in range(5): print(x)

  31. Comprehension (1) List comprehension:generate a list using 'for' within [ ] Example: A list that contains tuples [ (x, x**2, 2**x) for x in range(5)] >>>[(0, 0, 1), (1, 1, 2), (2, 4, 4), (3, 9, 8), (4, 16, 16)]

  32. Comprehension(2) Generator comprehension: 'for' loop within ( ) Example using 'sum' function sum(x for x in range(11)) >>> 55

  33. while-loop while <True or False Expression>: Loop Block Example: print2*x while x is positive x=10 while x>0: print (2*x) x =x-1

  34. breakand continue • Keywords to escape from a loop • break: finish the loop • continue: jump to the next iteration Example:  print2*x while x is positive and x is odd x=10 while True: x =x-1 if x%2==0: continue # do not print when x is even print (2*x) if x<=0: break # finish the loop when x reaches 0

  35. for-else When for(or while)loop is not finished by 'break', execute 'else' block after the loop Example: check whether y is a prime number y=11 for x in range(2,y): if y % x==0: # if y is divisible by x, y is a composite number break else: print ('Prime Number')

  36. Function • To define a fuction ... def <name of function>(arguments ): function block return <return value> # optional Example: Concatenate given two stringsand repeat three times. def concatenate3(a,b): c=a+b return 3*c concatenate3('a','b')returns 'ababab'

  37. Recursion(1) • Recursion = function that calls itself Example: factorialn! =n×(n-1) ×・・・×2×1that can be defined recursively :n!=n × (n-1)! and the initial condition 0!=1 def factorial(n): if n==0: return 1 else: return n*factorial(n-1)

  38. Recursion(2) • Fibonacci number defined by:F(0)=1, F(1)=1, F(n)=F(n-1)+F(n-2)def fibonacci (n):if n == 0 or n == 1: return 1 else: return fibonacci(n-1) + fibonacci(n-2)

  39. Module • Module is a library to be imported; that is just a program named <filename.py> written in Python Method 1: import module import <filename> Example: import 'math' module and use square root function 'sqrt' import math print math.sqrt(2) Method 2: import function (and/or class) in modulefrom <filename>import <function/class name> or wildcard (*) from math import * print sqrt(2)

  40. (Pseudo) Random Number Generator Module • import random or from random import * random(): returns a uniform random number in [0.0, 1.0) Example: random() -> 0.48777947886 randint(i,j): returns a uniform random integer in i ≦k <=j Example: randint(-5,1) -> -3 shuffle(L): mix list L randomly. Example: L=[1,2,3,4], shuffle(L) -> L=[4, 1, 3, 2] choice(L): Choose one item from list Lrandomly Example: L=[1,2,3,4], choice(L) -> 3

  41. Exercises • CodingBathttp://codingbat.com/python/ • PySchoolhttp://www.pyschools.com/ (requires a google account)

More Related