Introduction to Python

Introduction to Python

Introduction to Python Wei Feinstein HPC User Services LSU HPC & LONI [email protected] Louisiana State University MAY, 2017 Introduction to Python Overview • What is Python • Python programming basics • Control structures and functions • Python modules and classes • Plotting with Python? Introduction to Python What is Python? • A general-purpose programming language (1980) by Guido van Rossum • Intuitive and minimal coding • Dynamically typed • Automatic memory management • Interpreted not compiled Introduction to Python 3 Why Python? Advantages • Ease of programming • Minimal time to develop and maintain codes • Modular and object-oriented • Large standard and user-contributed libraries • Large user community Disadvantages • Interpreted and therefore slower than compiled languages • Not great for 3D graphic applications requiring intensive computations Introduction to Python 4 IPython • Python: a general-purpose programming language (1980) • IPython: an interactive command shell for Python (2001) by Fernando Perez • Enhanced Read-Eval-Print Loop (REPL) environment • Command tab-completion, color-highlighted error messages.. • Basic Linux shell integration (cp, ls, rm…) • Great for plotting! http://ipython.org Introduction to Python 5 Jupyter Notebook IPython introduced a new tool Notebook (2011) • Web interface to Python • Rich text, improved graphical capabilities • Integrate many existing web libraries for data visualization • Allow to create and share documents that contain live code, equations, visualizations and explanatory text. Jupyter Notebook (2015) • Interface with over 40 languages, such as R, Julia and Scala Introduction to Python 6 Python Installed on HPC/LONI clusters soft add key module load key Introduction to Python 7 Notaons >>> IPython command shell $ Linux command shell # Comments => Results from Python statements/programs Introduction to Python 8 How to Use Python Run commands directly within a Python interpreter Example $ python >>> print(‘hello’) >>> hello To run a program named ‘hello.py’ on the command line Example $ cat hello.py print(‘hello’) $ python hello.py Introduction to Python 9 Python Programming BasiC • Variable • Build-in data types • File I/O Introduction to Python 10 Variables • Variable names can contain alphanumerical characters and some special characters • It is common to have variable names start with a lower-case letter and class names start with a capital letter • Some keywords are reserved such as ‘and’, ‘assert’, ‘break’, ‘lambda’. • A variable is assigned using the ‘=’ operator • Variable type is dynamically determined from the value it is assigned. https://docs.python.org/2.5/ref/keywords.html Introduction to Python 11 Variable Types Example >>> x = 3.3 >>> type(x) <type ‘float’> >>> y=int(x) >>> type(y) <type ‘int’> >>> my_file=open(“syslog”,”r”) >>> type(my_file) <type ‘file’> Introduction to Python 12 Operators • Arithmetic operators +, -, *, /, // (integer division for floating point numbers), ’**’ power • Boolean operators and, or and not • Comparison operators >, <, >= (greater or equal), <= (less or equal), == equality Introduction to Python 13 Build-in Data Types • Number • String • List • Tuple • Dictionary • File Introduction to Python 14 Numbers Example >>> int(3.3) => 3 >>> complex(3) => (3+0j) >>> float(3) => 3.0 >>> sqrt(9) => 3.0 >>> sin(30) => -0.9880316240928618 >>> abs(-3.3) => 3.3 Introduction to Python 15 Strings Example >>> my_str = “ Hello World” >>> len ( my_str) => 12 >>> my_str >>> print( my_str) => Hello World >>> my_str[0] # string indexing #string slicing >>>my_str[1:4], my_str[1:],my_str[:-1] => (‘ello’,‘ello World’,‘Hello Worl’ >>> my_str.upper() =>”HELLO WORLD” >>> my_str.find(‘world’) =>6 #return index >>> my_str + ‘!!’ =>" Hello World!!” >>> s1,s2=my_str.split() >>> s1 => Hello >>> s2 => World Introduction to Python 16 Mulple line spanning ””” Example >>> lines=“””This is ...a multi-line block ...of text””” >>> lines this is\na multi-line block\nof text’ >>>print(lines) This is a multi-line block of text Introduction to Python 17 String Prinng Example >>> print(“hello”+” World”) => Hello World >>> print(“33.9 after formatting = %.3f” %33.9) =>33.9 after formatting = 33.900 >>> total=“my share=%.2f tip=%d”%(24.5,5.3) >>> print(total) => 'my share=24.50 tip=5’ >>> total="my share={:.2f} tip={:.0f}”.format(24.5,5.3) => 'my share=24.50 tip=5’ Introduction to Python 18 Lists • Collection of data [ ] • Often used to store homogeneous values e.g., Numbers, names with one data type • Members are accessed as strings • Mutable: modify in place without creating a new object Introduction to Python 19 List Example >>> my_list=[1,2,9,4] >>> my_list => [1,2,9,4] >>> my_list[0] #indexing => 1 #slicing [start:end] [start to (end-1)] >>> my_list[0:4] or my_list[:] => [1,2,9,4] >>> type(my_list) => <type, ‘list’> >>> my_list+my_list #concatenate => [1,2,9,4,1,2,9,4] >>> my_list*2 #repeat => [1,2,9,4,1,2,9,4] >>> friends = ['john', 'pat', 'gary', 'michael'] >>> for index, name in enumerate(friends): print index, name => 0 john 1 pat 2 gary 3 michael Introduction to Python 20 Lists lists are mutable Example >>> my_list=[1,2,9,4] >>> my_list.append(0) => [1,2,9,4,0] >>> my_list.insert(0,22) => [22,1,2,9,4,0] >>> del my_list[0] => [1,2,9,4,0] >>> my_list.remove(9) => [1,2,4,0] >>> my_list.sort() => [0,1,2,4] >>> my_list.reverse() => [4,2,1,0] >>> len(my_list) => 4 >>> my_list[0]=100 >>> print(my_list) => [100,2,1,0] Introduction to Python 21 Tuples • Collection of data () • Not immutable • Why Tuple? • Processed faster than lists • Sequence of a Tuple is protected • Sequence unpacking Introduction to Python 22 Tuples Example >>> my_tuple=(1,2,9,4) >>> print(my_tuple) => (1,2,9,4) >>> print(my_tuple[0]) => 1 >>> my_tuple[0] = 10 TypeError: 'tuple' object does not support item assignment >>> x,y,z,t = my_tuple #Unpacking >>> print(x) => 1 >>> print(y) => 2 Switching btw list and tuple >>> my_l=[1,2] >>> type(my_l) => <type ‘list’> >>> my_t=tuple(my_l) >>> type(my_t) =><type ‘tuple’> Introduction to Python 23 Diconary • List of key-value pairs { } • Unordered collections of objects, not indexed • Store objects in a random order to provide faster lookup • Data type are heterogeneous, unlike list • Element are accessed by a keyword, not index • Elements are mutable Introduction to Python 24 Diconaries dictionary = {"key1”: value1, “key2”: value2} Example >>> my_dict={“new”:1,”old”:2} >>> my_dict[‘new’] #indexing by keys => 1 >>> my_dict.has_key(‘new’) => True >>> my_dict[‘new’] = 9 >>> my_dict[‘new’] => 9 >>> del my_dict[‘new’] >>> my_dict => {'old': 2} >>> my_dict[“young”] = 4 #add new entry => {“old”:2,”young”:4} >>> table={“python”:’red’, “linux”: ‘blue’} >>> for key in table.keys(): print(key, table[key]) =>(‘python’,’red’) (‘linux’,‘blue’) Introduction to Python 25 File • file_handle = open(“file_name”, ‘mode’) • Modes: • a:append • r: read only (error if not existing) • w: write only • r+: read/write (error if not existing) • w+: read/write • b: binary Introduction to Python 26 File Operaons Example >>> input =open(“data”,‘r’) >>> content=input.read() >>> line=input.readline() >>> lines=input.readlines() >>> input.close() >>> output = open(“result”,‘w’) >>> output.write(content) >>> output.close() • Python has a built-in garbage collector • Object memory space is auto reclaimed once a file is no longer in use Introduction to Python 27 Control Structures • if-else • while loops, for loops • break: jump out of the current loop • continue: jump to the top of next cycle within the loop • pass: do nothing Introduction to Python 28 Indentaon • Indentation: signify code blocks (very important) Example (loop.py) n=2 while n < 10: prime = True for x in range(2,n): if n % x == 0: prime = False break $ python loop.py if prime: 2 is a prime # print n, 'is a prime #' pass 3 is a prime # else: 5 is a prime # n=n+1 7 is a prime # continue n=n+1 Introduction to Python 29 Excepons • Events to alter program flow either intentionally or due to errors, such as: • open a non-existing file • zero division • Catch the fault to allow the program to continue Introduction to Python 30 Without ExcepEon Handling exception_absent.py Example f_num = raw_input("Enter the 1st number:" ) s_num = raw_input("Enter the 2nd number:") num1,num2 = float(f_num), float(s_num) result = num1/num2 print str(num1) + "/" + str(num2) + "=" + str(result) $ python exception_absent.py Enter the 1st number:3 Enter the 2nd number:0 Traceback (most recent call last): File "exception_absent.py", line 4, in <module> result = num1/num2 ZeroDivisionError: float division by zero Introduction to Python 31 Excepon Handling exception.py Example f_num = raw_input("Enter the 1st number:" ) s_num = raw_input("Enter the 2nd number:") try: num1,num2 = float(f_num), float(s_num) result = num1/num2 except ValueError: #not enough numbers entered print "Two numbers are required." except ZeroDivisionError: #divide by 0 print "Zero can’t be a denominator . " else: print str(num1) + "/" + str(num2) + "=" + str(result) $ python exception.py $ python exception.py Enter the 1st number:3 Enter the 1st number:3 Enter the 2nd number:0 Enter the 2nd number: Zero can't be a denominator. Two numbers are required. Introduction to Python 32 Define a Funcon def func_name(param1,param2, ..): body Example >>> def my_func(a,b): return a*b >>> x, y = (2,3) >>> my_func(x,y) => 6 >>> def greet(name): print 'Hello', name >>> greet('Jack') => Hello Jack >>> greet('Jill') => Hello Jill Introduction to Python 33 Return mulple values Example >>> def power(number):

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    52 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us