We will learn the Python programming language. Why? Because it is easy to learn and many people write programs in Python so we can share.



Similar documents
Introduction to Python

Introduction to Python

CS 1133, LAB 2: FUNCTIONS AND TESTING

Exercise 1: Python Language Basics

University of Hull Department of Computer Science. Wrestling with Python Week 01 Playing with Python

CSCE 110 Programming I Basics of Python: Variables, Expressions, and Input/Output

Computer Science for San Francisco Youth

Computers. An Introduction to Programming with Python. Programming Languages. Programs and Programming. CCHSG Visit June Dr.-Ing.

Informatica e Sistemi in Tempo Reale

Python Lists and Loops

Exercise 4 Learning Python language fundamentals

Unix Shell Scripts. Contents. 1 Introduction. Norman Matloff. July 30, Introduction 1. 2 Invoking Shell Scripts 2

CSE 1223: Introduction to Computer Programming in Java Chapter 2 Java Fundamentals

Python Programming: An Introduction to Computer Science

Welcome to Introduction to programming in Python

Chapter 2 Writing Simple Programs

CS 141: Introduction to (Java) Programming: Exam 1 Jenny Orr Willamette University Fall 2013

Name: Class: Date: 9. The compiler ignores all comments they are there strictly for the convenience of anyone reading the program.

VISUAL GUIDE to. RX Scripting. for Roulette Xtreme - System Designer 2.0

Python Loops and String Manipulation

Python Programming: An Introduction to Computer Science

JavaScript: Introduction to Scripting Pearson Education, Inc. All rights reserved.

Beginning to Program Python

Computational Mathematics with Python

Computational Mathematics with Python

Outline Basic concepts of Python language

Handout 1. Introduction to Java programming language. Java primitive types and operations. Reading keyboard Input using class Scanner.

CS106A, Stanford Handout #38. Strings and Chars

COMSC 100 Programming Exercises, For SP15

Introduction to Python

Sources: On the Web: Slides will be available on:

Introduction to Java

Computer Science 217

PYTHON Basics

BASH Scripting. A bash script may consist of nothing but a series of command lines, e.g. The following helloworld.sh script simply does an echo.

CS 106 Introduction to Computer Science I

Computer Programming I & II*

CS101 Lecture 24: Thinking in Python: Input and Output Variables and Arithmetic. Aaron Stevens 28 March Overview/Questions

High-Level Programming Languages. Nell Dale & John Lewis (adaptation by Michael Goldwasser)

VB.NET Programming Fundamentals

PL / SQL Basics. Chapter 3

Object Oriented Software Design

Moving from CS 61A Scheme to CS 61B Java

Programming Languages CIS 443

Object Oriented Software Design

Java Basics: Data Types, Variables, and Loops

Introduction to the course, Eclipse and Python

Outline. hardware components programming environments. installing Python executing Python code. decimal and binary notations running Sage

Visual Logic Instructions and Assignments

Chapter 2: Elements of Java

Programming Exercises

Hands-On Python A Tutorial Introduction for Beginners Python 3.1 Version

A Python Tour: Just a Brief Introduction CS 303e: Elements of Computers and Programming

Example of a Java program

Writing Simple Programs

First Java Programs. V. Paúl Pauca. CSC 111D Fall, Department of Computer Science Wake Forest University. Introduction to Computer Science

Static vs. Dynamic. Lecture 10: Static Semantics Overview 1. Typical Semantic Errors: Java, C++ Typical Tasks of the Semantic Analyzer

Python. KS3 Programming Workbook. Name. ICT Teacher Form. Do you speak Parseltongue?

River Dell Regional School District. Computer Programming with Python Curriculum

Problem Solving Basics and Computer Programming

Objectives. Python Programming: An Introduction to Computer Science. Lab 01. What we ll learn in this class

Introduction to Computer Science I Spring 2014 Mid-term exam Solutions

CSC 221: Computer Programming I. Fall 2011

Concepts in IP Addressing...

Hands-On UNIX Exercise:

Windows PowerShell Essentials

Keywords are identifiers having predefined meanings in C programming language. The list of keywords used in standard C are : unsigned void

Topics. Parts of a Java Program. Topics (2) CS 146. Introduction To Computers And Java Chapter Objectives To understand:

Computational Mathematics with Python

An introduction to Python for absolute beginners

Encoding Text with a Small Alphabet

Secrets of printf. 1 Background. 2 Simple Printing. Professor Don Colton. Brigham Young University Hawaii. 2.1 Naturally Special Characters

Database Programming with PL/SQL: Learning Objectives

PHP Debugging. Draft: March 19, Christopher Vickery

Practical Programming, 2nd Edition

Python Basics. S.R. Doty. August 27, Preliminaries What is Python? Installation and documentation... 4

Translating to Java. Translation. Input. Many Level Translations. read, get, input, ask, request. Requirements Design Algorithm Java Machine Language

Object-Oriented Design Lecture 4 CSU 370 Fall 2007 (Pucella) Tuesday, Sep 18, 2007

AMATH 352 Lecture 3 MATLAB Tutorial Starting MATLAB Entering Variables

[Refer Slide Time: 05:10]

Lexical analysis FORMAL LANGUAGES AND COMPILERS. Floriano Scioscia. Formal Languages and Compilers A.Y. 2015/2016

6.170 Tutorial 3 - Ruby Basics

WA2099 Introduction to Java using RAD 8.0 EVALUATION ONLY. Student Labs. Web Age Solutions Inc.

Variables, Constants, and Data Types

Computer Programming Tutorial

C# programming. Introduction. By Per Laursen

Python Evaluation Rules

Microsoft Access 3: Understanding and Creating Queries

#820 Computer Programming 1A

Lab 9 Access PreLab Copy the prelab folder, Lab09 PreLab9_Access_intro

The C Programming Language course syllabus associate level

C++ Language Tutorial

Simulation Tools. Python for MATLAB Users I. Claus Führer. Automn Claus Führer Simulation Tools Automn / 65

Understanding class definitions

Introduction to Java Applications Pearson Education, Inc. All rights reserved.

Hands-on Exercise 1: VBA Coding Basics

TIP: To access the WinRunner help system at any time, press the F1 key.

Computer Programming. Course Details An Introduction to Computational Tools. Prof. Mauro Gaspari:

Numbering Systems. InThisAppendix...

Introduction to SQL for Data Scientists

Transcription:

LING115 Lecture Note Session #4 Python (1) 1. Introduction As we have seen in previous sessions, we can use Linux shell commands to do simple text processing. We now know, for example, how to count words. Frequency is an important piece of information. For example, it allows us to estimate how likely it is to see a particular sentence in English. However, what we do with frequencies can be rather too complex to implement with shell commands alone. We want to ask computers to carry out a more complex set of instructions. That is, we want to write programs. A programming language is the language in which we tell the computer what to do. This means what we tell the computer may seem different depending on what the programming language is. For example, the following website is a collection of how to write a program that prints out hello, world in more than 400 programming languages: http://www.roesler-ac.de/wolfram/hello.htm We will learn the Python programming language. Why? Because it is easy to learn and many people write programs in Python so we can share. 2. Python Interpreter Before we learn to program in Python, let me briefly explain what is going on when we write a program and run it by example. Here is how you make the computer print out hello, world with Python. (1) Open your favorite text-editor and type print hello, world (2) Save the file as hello.py and exit the text-editor. (3) Enter python hello.py in the command prompt. OK, so we wrote a program called hello.py and ran it. No? To be precise, we wrote a source code which we named hello.py and ran the Python interpreter program to translate the source code into something that the computer can understand and tell the computer to run the translated code. The source code is what we, the Python programmers can understand, but it is not what the computer can understand. This is different from how we typically run a program. For example, to run ls, we directly enter the name of the program without worrying about whether the computer understands what the program wants it to do. That is because such programs are already compiled: the code is already translated into something that the computer can understand. When people program in languages like C++, they first write the source code, compile the code, and users of the program can directly use the compiled code. For example, see hello.cpp and hello under /home/ling115/python_examples/ : hello.cpp is the source code and hello is the compiled program. We can read and modify the source code but we cannot run it. On the other hand, we can run the compiled program but we cannot really read or modify it. 1

How we develop programs in Python is different: we simply write the source code and let the Python interpreter take care of the rest. In other words, remember to always invoke the Python interpreter to run the program you wrote. There are two ways to do this: (4) Enter the following in the command prompt: ]# python <yourcode>.py (5) Add the following in the first line of your source code: #!/usr/bin/python In (4), we are directly invoking the Python interpreter to translate and run our source code. In (5), we are telling the computer that the rest of the lines of our code need to be translated with the Python interpreter, which is located under /usr/bin/ and named python in our computer. If we follow this approach, we can directly enter the name of our program to run it without invoking the Python interpreter. See hello2.py under /home/ling115/python_examples/ for an example of (5). 2.1. Interactive mode Occasionally, we want to write very short codes. In such cases, it may seem cumbersome to write and save a code with a text-editor and run it afterwards. Rather, we may want to see what happens immediately after we enter a line of code. This can be done by running the Python interpreter in the interactive mode. That is, enter python in the command prompt without any arguments and you should see something like the following: We can immediately see the results of what we enter after >>>. For example, try print hello, world. This can be useful especially if we are not sure how to write a particular instruction in Python since we also see error messages right away if we do something wrong. For example, try print hello,world. with a dot after hello,world. Note, however, that we cannot save what we did in the interactive mode. So if you are writing a code that is not short or if you want to repeatedly use what you wrote, I suggest you use a text-editor to code instead. Hit Ctrl+d to exit and return to the command prompt. 3. Expressions vs. statements A program is a set of instructions. Some instructions are expressions while some are statements. An expression results in a single value. For example, 2+2 is an expression because the outcome of this results in 4. On the other hand, a statement does not result in a single value but performs some action as 2

in print hello, world, for example. There are plenty of examples where we will need to use expressions: adding up the frequencies, converting them to probabilities, to say the least. Anyway, with that distinction between expressions and statements in mind, let s first learn how to write expressions in Python. 4. Expressions It helps to think of expressions as mathematical expressions such as 1, x, f(x), x+1, f(x,y)+2, etc. In its simplest form, an expression consists of a single literal value such as 1, or a single variable such as x which can be thought of as the name of a place-holder for a particular value. An expression may contain a function as its term, where a function performs one or more operations on its arguments and returns a value as in f(x), whatever f(x) may be. The terms of an expression can be combined with one another using operators like + as in x+1 or f(x,y)+2. 4.1. Values and data types Unlike what the above analogy to mathematical expressions suggests, a value in Python can be of any data type. It could be a number, a string (a sequence of characters), a list of values, a dictionary, etc. It is meaningless to talk about all the data types in Python at this point. Instead I will briefly explain four data-types we will use very often in the class: Boolean, numbers, strings, and lists. I will explain more data types as we learn more about Python. 4.1.1. Boolean A Boolean value is either True or False. The use of this data-type will become clear when we study ifstatement below. 4.1.2. Numbers We will mainly use two types of numbers in this class: integers and floating point numbers (decimal numbers). One thing about numbers in Python is that if an expression consists of only integers then the resulting value of the expression is also assumed to be an integer. For example, enter the following in the Python interactive mode and see what happens: 1/3 On the other hand, if an expression includes at least one floating point number, the resulting value of the expression is assumed to be a floating point number. So for example, entering any of the following would give us what we want: 1.0/3 1/3.0 1.0/3.0 4.1.3. Strings 3

A string is a sequence of characters. A string should be enclosed in single-quotes (e.g. water ) or double-quotes (e.g. water ). This means single-quote and double-quote symbols have special meaning in Python: they mark string boundaries. But sometimes we want to treat them as a part of the string as in the following two examples: I don t know He said, I want to go home In such cases, the symbols must be preceded by a backslash as in the following: I don\ t know He said, \ I want to go home\ Another way would be to use single quotes to enclose the string if it contains double-quotes and use double quotes to enclose the string if it contains single quotes. But to prevent confusion in examples such as He said, I don t know, I would recommend using back-slash. As I mentioned before, a string is a sequence of zero or more characters. We can refer to individual characters of a string by index or refer to substrings by specifying a range. For example, let s refer to the string water with a variable named w. How do we point to the second character a in the string? Index of a string in Python starts from zero, incrementing by one after each character. So the second character has an index of one and we can refer to it as w[1]. How do we refer to the substring ate in water? We use the range of indices specified in the following format: [<index of the first character of the substring>:<index of the last character of the string+1>] For example, we would refer to ate in water as w[1:4] You can think of [x:y] in Python as from x to y, as opposed to from x through y. 4.1.4. Lists A list is an ordered listing of any values as in the following example. [1,2,3] The component values need not be of the same type as one another. [1, water ] A list can also be a member of another list. [1, water,[2,3,4]] 4

As with strings, we can refer to the members of a list by index and we can also refer to a sub-list of list by range. Both strings and lists belong to a data type called sequential data type in Python. This means there are many cool things that we can do with lists that we can also do with strings. We will learn about them as we learn more about Python. 4.2. Variables Values can be stored in memory so that we can refer to them later. For example, we may want to remember how often the word language appears up to the last line we saw in a particular file and add one to that value every time we see the word again. A variable in Python is simply a name that you use to call the memory that holds a value. In order to use a variable in Python, we must first assign a value to it. That is, we must define the variable. For example, suppose we wanted to use the name lang_freq for the variable that stores frequency of the word language. We must first define it by assigning some value to it. Since we have not seen any instances of language initially, let s assign zero to it. This is done as follows: lang_freq=0 Obviously, lang_freq is the name or the identifier of the variable. The symbol = is the assignment operator: it assigns the value on the right hand side to the variable on the left hand side. Notice that the operator does not mean equal : the expression above does not mean that the value of lang_freq equals zero. 4.3. Operators Operators combine two or more values (or values of variables or values from a function). We have already seen one instance of an operator: the assignment operator = as in lang_freq=0. There are other operators we need to learn. The individual operators are meant to be used for specific data types. You cannot, for example, divide 3 by the string six. Below is a list of several useful operators for the data types we have learned so far. 4.3.1. Boolean Values The following operators are frequently used in conjunction with one or more Boolean values. and or not conjunction of two Boolean values disjunction of two Boolean values negation of a Boolean value 4.3.2. Numbers The arithmetic operators such as +, -, *, / can be used with numbers and mean what they normally mean: addition, subtraction, multiplication, division. The operator ** means powers as in 2**4 (=16) and the operator % can be used for the modulo function, or the remainder of division as in 23%4 (=3). Obviously, the result of applying these operators is a number. 5

In addition, operators for comparison such as the following can be used: == equal to!= not equal to > greater than >= greater than or equal to < less than <= less than or equal to Keep in mind that the operators for comparison results in a Boolean value: True or False. 4.3.3. Strings What looks like arithmetic operators can be used with strings. <string1> + <string2> <string1> * <number> concatenate <string1> and <string2> repeat <string1> <number> times The result of applying these operators is a string. Operators for comparison mentioned above can also be used with strings. However, greater than or less than in this case really means whether the first string (the string on the left hand side) comes after or before the second string (the string on the right hand side) in alphabetical order as in the following examples: vocabulary < word pen > ink As was the case with numbers, applying these operators for comparison results in a Boolean value. 4.3.4. Lists The aforementioned operators work for lists just like they work for strings. That is, <list1> + <list2> <list1> * <number> concatenate <list1> and <list2> repeat <list1> <number> times Applying these operators results in a list. Applying the operators for comparison on two lists is similar to the case with strings: members of the two lists are compared as if they were characters of two strings. 4.4. Functions A function is a subprogram of a program that is defined in a block of code and that which we can call/use later by its name along with any arguments it may need. For example, suppose we had a function named foo, which takes in a number as its argument and returns a number equal to 2000 times the input. Somewhere in our code we should have this function defined, perhaps as follows: 6

def foo(n): return 2000*n We need not worry about the details of this definition for now. But in brief, def foo(n): means in the next block of code, we are defining a function named foo, which takes one argument, which we decide to call n in the following block. It so happens that the following block consists of a single line return 2000*n, which means multiply n by 2000 and return it as the output of the function. To calculate 2000*100 using this function, we would simply enter foo(100), which will return 200,000. Because the function returns a value, it can be a part of an expression such as foo(100)+300. 5. Statements As I mentioned before, a statement is an instruction to perform some action without resulting in a value. We have already seen three example statements: print, def, return. We will cover def and return statements when we learn about functions. Instead, let s learn three statements that we will use very often: print, for, and if. 5.1. print The print statement simply prints out the value that follows print. The value can be of any data-type: numbers, strings, lists, etc. One thing to keep in mind is that there is a line-break at the end of each print out. That is, if you run print statements twice, the output of the second print statement will begin in a new line. Try the following, for example: print hello, world print hello, ling115 5.2. for We sometimes want our computer to repeat the same set of instructions multiple times. For example, suppose we had a list of words and we wanted to print out all of them one by one. One way to do this in Python is to use a for-loop: implementing a loop with the for statement which has the following form: for E in L: B L can be any sequential data-type such as lists or strings. E is a variable that refers to a member of L. B refers to a block of code/instructions that we want the computer to iterate. Here s what happens. Initially, E refers to the first member of L. Then, B is executed line-by-line. After the last line of B is executed, E is set to refer to the next member of L and then B is executed line-by-line. This process iterates until there is no more member of L for E to refer to. Going back to our example, let s name the list of words word_list and name the member variable word. Here s what we do: 7

for word in word_list: print word In the above example, B consists of a single print statement. Of course, it can consist of multiple expressions and statements. As far as the syntax of for statement is concerned, there are two things to note: the colon after the for statement and the indentation preceding the block of code B. Basically, the colon means run the following block of code. Python identifies the following block of code by indentation: all expressions and statements that begin with one more unit of indentation than the for-statement is that following block of code. As long as you are consistent, it is up to you to decide the unit of indentation: some choose a single tab space, some choose four spaces, etc. 5.3. if We sometimes want to control the flow of instructions. For example, suppose we had a list of words and we wanted to print out only the words that begin with x. Here is what we would do: (6) Go over the list of words one by one (7) If the first character of the word is x, print the word (8) Else, do nothing We learned how to implement (6) using a for-loop. The conditional instructions in (7) and (8) are implemented in Python using the if statement which has the following form: if C1: B1 elif C2: B2 elif C3: B3... else: BX C1, C2, C3, etc. refer to the individual conditions that must be satisfied to run the following block of codes, which are marked B1, B2, B3, etc. It is obvious what if means. The elif in the middle is short for else if, meaning if all previous conditions were not satisfied but the current condition is satisfied. The else at the end means if none of the previous conditions are satisfied. Naturally, the conditions C1, C2, C3, etc. must be expressions that result in a Boolean value. As for syntax, the colon and indentation serves the same purpose as in the for statement. Here s how our example can be implemented in Python using for-statement and if-statement 8

for word in word_list: if word[0]== x : print word else: pass The statement pass in the above example means do nothing. We can also leave out else-statement if there is nothing we want the computer to do. That is, the above is equivalent to the following: for word in word_list: if word[0]== x : print word 9