Accelerating Information Technology Innovation

Similar documents
Accelerating Information Technology Innovation

Senthil Kumaran S

The current topic: Python. Announcements. Python. Python

Intro to Programming. Unit 7. What is Programming? What is Programming? Intro to Programming

Key Differences Between Python and Java

Python: common syntax

Python for Non-programmers

Python I. Some material adapted from Upenn cmpe391 slides and other sources

Python as a First Programming Language Justin Stevens Giselle Serate Davidson Academy of Nevada. March 6th, 2016

Interactive use. $ python. >>> print 'Hello, world!' Hello, world! >>> 3 $ Ctrl-D

CIS192 Python Programming. Robert Rand. August 27, 2015

G Programming Languages - Fall 2012

Interactive use. $ python. >>> print 'Hello, world!' Hello, world! >>> 3 $ Ctrl-D

Python for C programmers

Lists, loops and decisions

Introduction to: Computers & Programming: Review prior to 1 st Midterm

\n is used in a string to indicate the newline character. An expression produces data. The simplest expression

CIS192: Python Programming

Some material adapted from Upenn cmpe391 slides and other sources

Basic Syntax - First Program 1

GIS 4653/5653: Spatial Programming and GIS. More Python: Statements, Types, Functions, Modules, Classes

Java Bytecode (binary file)

Chapter 1 Summary. Chapter 2 Summary. end of a string, in which case the string can span multiple lines.

Introduction to Python Part 1. Brian Gregor Research Computing Services Information Services & Technology

Introduction to Bioinformatics

Python Programming: Lecture 2 Data Types

CSC 148 Lecture 3. Dynamic Typing, Scoping, and Namespaces. Recursion

MEIN 50010: Python Flow Control

age = 23 age = age + 1 data types Integers Floating-point numbers Strings Booleans loosely typed age = In my 20s

Scripting Languages. Python basics

The Pyth Language. Administrivia

CMSC 201 Computer Science I for Majors

History Installing & Running Python Names & Assignment Sequences types: Lists, Tuples, and Strings Mutability

Pace University. Fundamental Concepts of CS121 1

CS S-02 Python 1. Most python references use examples involving spam, parrots (deceased), silly walks, and the like

Shell / Python Tutorial. CS279 Autumn 2017 Rishi Bedi

Object-oriented programming in...

PREPARING FOR PRELIM 1

There are four numeric types: 1. Integers, represented as a 32 bit (or longer) quantity. Digits sequences (possibly) signed are integer literals:

S206E Lecture 19, 5/24/2016, Python an overview

Part III Appendices 165

Large-Scale Networks

CSE : Python Programming

Interpreted vs Compiled. Java Compile. Classes, Objects, and Methods. Hello World 10/6/2016. Python Interpreted. Java Compiled

Ruby: Introduction, Basics

Introduction to Python

AI Programming CS S-02 Python

STATS 507 Data Analysis in Python. Lecture 2: Functions, Conditionals, Recursion and Iteration

CS 11 java track: lecture 1

Lecture 1: Introduction to Java

Lecture 1. basic Python programs, defining functions

[Software Development] Python (Part A) Davide Balzarotti. Eurecom Sophia Antipolis, France

ENGR 102 Engineering Lab I - Computation

Web Application Development (WAD) V th Sem BBAITM(Unit-1) By: Binit Patel

Python in 10 (50) minutes

Statements 2. a operator= b a = a operator b

Flow Control: Branches and loops

CSI33 Data Structures

Introduction to Java & Fundamental Data Types

Here n is a variable name. The value of that variable is 176.

Unit 7: Algorithms and Python CS 101, Fall 2018

PYTHON FOR MEDICAL PHYSICISTS. Radiation Oncology Medical Physics Cancer Care Services, Royal Brisbane & Women s Hospital

18.1. CS 102 Unit 18. Python. Mark Redekopp

CS 1301 Exam 1 Fall 2010

Lab # 2. For today s lab:

Working with JavaScript

Flow Control. CSC215 Lecture

Python Class-Lesson1 Instructor: Yao

Chapter 3. More Flow of Control. Copyright 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley

Fundamentals of Programming Session 13

CHAPTER 2: Introduction to Python COMPUTER PROGRAMMING SKILLS

CSC Software I: Utilities and Internals. Programming in Python

Repetition Structures

Condition-Controlled Loop. Condition-Controlled Loop. If Statement. Various Forms. Conditional-Controlled Loop. Loop Caution.

Table of Contents EVALUATION COPY

Lab 1: Course Intro, Getting Started with Python IDLE. Ling 1330/2330 Computational Linguistics Na-Rae Han

Python. Jae-Gil Lee Based on the slides by K. Naik, M. Raju, and S. Bhatkar. December 28, Outline

Python for ArcGIS. Lab 1.

CPE 112 Spring 2015 Exam II (100 pts) March 4, Definition Matching (8 Points)

Object-Oriented Programming in Java

PHY224 Practical Physics I Python Review Lecture 1 Sept , 2013

GridLang: Grid Based Game Development Language Language Reference Manual. Programming Language and Translators - Spring 2017 Prof.

Control Structures. Lecture 4 COP 3014 Fall September 18, 2017

Programming to Python

1. BASICS OF PYTHON. JHU Physics & Astronomy Python Workshop Lecturer: Mubdi Rahman

CS 115 Lecture 8. Selection: the if statement. Neil Moore

Announcements For This Lecture

Introduction to Python (All the Basic Stuff)

Python for Earth Scientists

Compiling C++ Programs Flow Control in C++ CS 16: Solving Problems with Computers I Lecture #3

CSE413: Programming Languages and Implementation Racket structs Implementing languages with interpreters Implementing closures

Introduction to Computation for the Humanities and Social Sciences. CS 3 Chris Tanner

Introduction to Python

Lecture 12. Lists (& Sequences)

06/11/2014. Subjects. CS Applied Robotics Lab Gerardo Carmona :: makeroboticsprojects.com June / ) Beginning with Python

Running a C program Compilation Python and C Variables and types Data and addresses Functions Performance. John Edgar 2

Announcements For This Lecture

Lecture 05: Methods. AITI Nigeria Summer 2012 University of Lagos.

CS 11 python track: lecture 3. n Today: Useful coding idioms

CS 349 / SE 382 Scripting. Professor Michael Terry March 18, 2009

Transcription:

Accelerating Information Technology Innovation http://aiti.mit.edu/program/philippines-summer-2012/ Philippines Summer 2012 Lecture 1 Introduction to Python June 19, 2012

Agenda About the Course What is Python? and Why Python? Basic Syntax Strings User Input Useful Data Structures Introduction to Functions 2

About the Course 3

Administrivia Lectures and labs will be posted at: http://aiti.mit.edu/materials/philippines-summer-2012/ We will create an Official Mailing List for the course and announce it on Thursday. Lab sessions are from 6-9pm. We will be available during that time to check your homework. Please do the assigned readings before the class. It will help you understand the material covered in class better. 4

Course Expectations Attend class every day Collaborate Teach others as much as you can Do everything you can in the labs Ask questions! 5

Technical Course Outline Week 1 Python Week 2 Rapid Mobile Web Application Development with Django Week 3 Android App Development Week 4 SMS and IVR Application Development Weeks 5 & 6 Final Project Week 7 Project Showcase 6

What is Python? 7

Python is interpreted. Languages like C/C++ need to translate high-level code to machine code Machine Code High-Level Code a = b + c; Compiler ld $r1, a ld $r2, b add $r3, $r1, $r2 st a, $r3 8

which means that a program has to be compiled separately for each type of machine: program compiler compiler compiler machine code machine code machine code Win Mac Unix 9

Python is Python code is compiled to an intermediate format called bytecode, which is understood by a virtual machine/ interpreter. Python Source (.py) Python Bytecode (.pyc) compiler 10

Python is Win Interpreter Python Program compiler Python bytecode Mac Interpreter Unix Interpreter 11

Why Python? 12

Python because Portable and architecture-agnostic Convenient built-in functions and data structures Syntax is readable and fast to write if (x) { if (y) { a(); } b(); } if x: if y: a() b() 13

Python because Great for rapid prototyping No separate compile step No need to explicitly specify method argument types beforehand (due to dynamic typing) 14

Python for us, because We want each of you to reach millions of users, and don t want to waste time building the pipes and plumbing Python is supported by a number of good frameworks, led by Django Heroku Google AppEngine 15

The (Ideal) Development Cycle Clearly specify the problem: Inputs, input manipulation, outputs Design the solution: E.g. what algorithms, data structures Implementation Test 16

The (Real) Development Cycle As above, but faster. Python, as a dynamically typed, programming language is perfect for rapid prototyping Be prepared to throw away one (or more!) prototypes Often you learn crucial things about the problem as you code which cannot be fixed without starting from scratch. 17

Basic Syntax 18

Syntax Blocks are delimited with whitespace: specifically, four spaces (and no tabs) if x: if y: a() b() count = 0 for i in range(0:5) count += i 19

Syntax Semicolons are only used to separate multiple statements on the same line, which is discouraged: if (x) { a(); b(); } if x: a(); b() if x: a() b() No Yes 20

Syntax Single line comments are denoted with hash (#), multiline with three quotes # This is a comment foo() This is a longer comment foo() 21

Interaction Python has an interactive console which is great for tinkering $ python Python 2.7.1+ (r271:86832, Apr 11 2011, 18:13:53) [GCC 4.5.2] on linux2 Type help, copyright, credits or license for more information >>> a = 1 >>> a 1 >>> type(a) <type int > >>> etc 22

Variables Strings >>> x = Hello World Numerics >>> x = 3.1415 Booleans >>> x = True Lists >>> x = [ Hello, True, 3.1415] And many more 23

Variables Python is a dynamically typed language A variable s data type is not declared. Statically typed languages like Java must declare a variable s data type String x = Hello World ; Get a variable s data type with the type function >>> x = Hello World >>> type(x) <type 'str'> 24

Strings 25

Strings A string is a piece of text. Encase with quotes Single-quotes >>> x = abc Double-quotes >>> x = abc Triple single-quotes or triple double-quotes >>> x = abc >>> x = abc 26

Strings Use double-quotes to encase text containing single-quotes >>> It s a string with a single- quote! What is wrong with this statement? >>> x = abc 27

String as a sequence You can access the characters one at a time using the bracket [] operator 1 fruit = banana 2 letter = fruit[1] 3! print letter index! b a n a n a 0 1 2 3 4 5 28 28

String operators Applied to strings, produce strings 1 str1 = 'kit ' 2 str2 = 'kat ' 3 str3 = str1 + str2 'kit kat ' 4 str4 = str3 * 2 'kit kat kit kat ' 5 c = str1[0] 'k' 6! c = str1[4]!!indexerror: string index out of range! str1! index! k i t 0 1 2 3 29 29

The slicing operator [m : n] Returns the part of the string from the "m-th" character to the "nth" character, including the first but excluding the last. fruit S T R A W B E R R Y index 0 1 2 3 4 5 6 7 8 9 10-10 -9-8 -7-6 -5-4 -3-2 -1 30 1 str1 = fruit[2:5] 2 str1 = fruit[:5] 3 str1 = fruit[5:] 4! str1 = fruit[6:-1]! 'RAW' 'STRAW' 'BERRY' 'ERR'!

User Input 31

User Input raw_input prints a prompt to the user and assigns the input to a variable as a string name = raw_input('what is your name?')! input can be used when we expect the input to be a number age = input('how old are you?')! 32

Control Statements 33

Control statements Conditionals: control which set of statements is executed. if / else Iteration: control how many times a set of statements is executed. while loops for loops 34 34

The if statement any boolean expression if CONDITION: BODY! any set of statements If the condition is True, the body gets executed. Otherwise, nothing happens. indentation is important if x < 0: print 'x is negative'! 35 35

The if/else statement if CONDITION: BODY1 else: BODY2! any set of statements If the condition is True, body1 gets executed. Otherwise, body2 gets executed. if x < 0: print 'x is negative' else: print 'x is positive or zero'! 36

Chained conditionals if CONDITION1: BODY1 elif CONDITION2: BODY2 else: BODY3! another boolean expression any set of statements If the condition1 is True, body1 gets executed. Otherwise, if condition2 is True, body2 gets executed. If neither condition is True, body3 gets executed. 37 37

An example a = False b = True if a and b: print 'I love red.' elif a or b: print 'I love green.' else: print 'I love blue.' print 'I also love purple.'! What does this output? I love green.! 38

An example a = False b = True if a and b: print 'I love red.' elif a or b: print 'I love green.' else: print 'I love blue.' print 'I also love purple.'! What does this output? I love green. I also love purple.! 39

Nested conditionals if is_adult: if is_senior_citizen: print 'Admission $2 off.' else: print 'Full price.' else: print 'Admission $5 off.'! outer conditional inner conditional 40 Can get confusing. Indentation helps to keep the code readable and the python interpreter happy! 40

The while loop while CONDITION: BODY! any boolean expression any set of statements indentation is important As long as the condition is true, the body gets executed repeatedly. The first time the condition is false, execution ends. 41 41

The while loop i = 0 while i < 3: print i i = i + 1! What does this output? 0 1 2! 42

The break statement Immediately exits the innermost loop. while True: line = raw_input('>>> ') if line == 'done': break print line print 'Done!'! >>> not done not done >>> done Done!! 43

Useful Data Structures 44

Lists A list is a sequence of values. Each element (value) is identified by an index. The elements of the list can be of any type. tens = [10, 20, 30, 40] cities= [ Manila', Cebu', Boracay ] empty = []! Lists can have mixed types in them, even other lists (nested). mixed = ['hello', 2.0, 5, [10, 20]]! 45

Creating a list Use the [] brackets list_of_ints = [10,20,30,50]! list_of_ints!10! 20! 30! 50! only one name four int values 46

Accessing list elements Individual elements are accessed using the [] operator. list_of_ints[0] = 17! index Lists are mutable! Assigns the first element to 17 list_of_ints!17! 20! 30! 50! 0 1 2 3! now has value 17 List indexing starts at 0, not 1! new_var = list_of_ints[0]! accesses the value of the first element list_of_ints! 17! 20! new_var! 17! 30! 50! now also has value 17 47

Printing a list We can use the print function to output the contents of the list: cities = [ Manila', Cebu', Boracay ] numbers = [17, 123] empty = [] print cities, numbers, empty! [ Manila', Cebu', Boracay'] [17, 123] [ ]! 48

Lists vs. Strings Lists are mutable - their contents can be modified Strings are immutable name = 'Lenny' name[0] = 'J'! TypeError: object doesn't support item assignment! 49 49

Control Structures 50

The for loop sequence element Sequence of values list, string, etc. for ELEMENT in SEQUENCE: BODY! Example: any set of statements indentation is important for i in [0,1,2,3]: print i! 0 1 2 3! 51 51

Using range index variable generates sequence of n values starting at 0 and incrementing by 1 for INDEX in range(n): BODY! any set of statements What does this output? for i in range(4): sq = i * i print i, sq! 0 0 1 1 2 4 3 9! 52

Using range index variable generates sequence of values start and step are optional for INDEX in range([start], stop, [step]): BODY! What does this output? any set of statements for i in range(1, 7, 2): print i! 1 3 5! 53

For loop and strings Iterating through the characters of a string str1 = 'stressed' for c in str1: print c,! s t r e s s e d! 54 54

For vs While For loop is primarily used for iterating over a sequence of values when we know the number of iterations in advance While loop is primarily used when we don't know the number of iterations in advance (they could be controlled by user input) 55 55

Introduction to Functions 56

Functions A function is a sequence of statements that has been given a name. function name list of function arguments def NAME (PARAMETERS): STATEMENTS! function definition any set of statements function signature 57 57

Now you are all set to work on Lab 1! 58

Lab 1 1. Calculate Fibonacci number fib(n) 2. Display the day of the week given a date zellers() 3. Implement the Rock Paper Scissors game rock_paper_scissors() 4. Encode a given string using the Caesar cipher cipher() 59

Next Class More on Functions Object Oriented Programming Exceptions Regular Expressions How to be a Python Ninja! 60