Lecture 4: Strings and documentation

Size: px
Start display at page:

Download "Lecture 4: Strings and documentation"

Transcription

1 Lecture 4: Strings and documentation Introduction for Linguists (LT2102) Markus Forsberg SprΣakbanken University of Gothenburg September 17, 2010

2 FAQ: How do I get the highest grade on the course? You need a pass on the assignments. The exam decides you final grade. However, the assignments may influence your grade in the following ways: if you are close to pass or pass with distinction on the exam, then your work on the assignments may tip you one way or the other; if you work hard on the assignments, you shouldn t have a problem with the exam.

3 Comments Comments are used to inactivate code: # def function(): # print hello and, more importantly, to explain code: x = x+1 # increment x by 1 NO! x = x+1 # keep track of number of entries YES! num_of_entries = num_of_entries + 1 # self-documenting name

4 Module interface A Module interface gives an overview of what a module contains without giving any implementation details. # test.py def print_name(name): print name >>> import test >>> help(test)... >>> dir(test) [..., print_name ]

5 Adding documentation to the interface We use documentation strings to add documentation to the interface. A documentation string is just ordinary strings placed on specific places in the code. # test.py """This is a test module""" def print_name(name): """Doc-string for print_name""" print name >>help(test)

6 Escape characters We use escape characters to write special characters, such as newlines, and to cancel a character s formal meaning. >>> print "tab: \t newline: \n next line" tab: newline: next line >>> print "\" is an escaped double quote" " is an escaped double quotation >>> print \ is an escaped single quote is an escaped single quotation

7 Characters in a computer There are no characters in a computer, only numbers representing characters. Character encoding: what numbers are used to represent what characters. We have to know the character encoding of a text to be able to display a text properly.

8 ASCII table In the beginning was English (7 bits = 128 characters):

9 Extended ASCII table (latin1) And then they though of other languages close by and some symbols (8 bits = 256 characters):

10 Unicode And then they decided to go for every character. Every character gets a number. However, this mapping is abstract, not the actually character encoding.

11 Unicode character encodings Encodings to represent Unicode: UTF-8, UTF-16, UTF-32 UTF-8 is popular since are the same as ASCII (English text is valid). UTF-8 has started to replace Latin1 as the default encoding.

12 Unicode in Python Python has a special kind of strings called unicode strings. >> type(u this is a unicode string ) <type unicode > We use s.decode(encoding), to decode a string s encoded with ENCODING into a Python unicode string. We use s.encode(encoding) for doing the reverse.

13 Reading a file with Cyrillic characters >>> with open( cyrillic.txt ) as f:... s = f.read() >>> print s Письмо В июне 1935 года я на полгода вернулся в Англию с моего ранчо в Южной Америке. Жизнь... >>> print type(s), length:, len(s) <type str > length: 637 >>> print s.upper() # doesn t work Письмо В июне 1935 года я на полгода вернулся в Англию с моего ранчо в Южной Америке. Жизнь в Америке сложилась для нас непросто. Вместе со всеми мы страдали от последствий мирового кризиса. В Англии у меня был ряд дел, которые, как мне представлялось, требовали для своего разрешения моего личного присутствия. Моя жена осталась управлять нашим ранчо.

14 Reading a file with Cyrillic characters (cont.) >>> s_unicode = s.decode( UTF-8 ) >>> print type(s_unicode), length:, len(s_unicode) <type unicode > length: 353 >>> print s_unicode.upper() # works! ПИСЬМО В ИЮНЕ 1935 ГОДА Я НА ПОЛГОДА ВЕРНУЛСЯ В АНГЛИЮ С МОЕГО РАНЧО В ЮЖНОЙ АМЕРИКЕ. ЖИЗНЬ В АМЕРИКЕ СЛОЖИЛАСЬ ДЛЯ НАС НЕПРОСТО. ВМЕСТЕ СО ВСЕМИ МЫ СТРАДАЛИ ОТ ПОСЛЕДСТВИЙ МИРОВОГО КРИЗИСА. В АНГЛИИ У МЕНЯ БЫЛ РЯД ДЕЛ, КОТОРЫЕ, КАК МНЕ ПРЕДСТАВЛЯЛОСЬ, ТРЕБОВАЛИ ДЛЯ СВОЕГО РАЗРЕШЕНИЯ МОЕГО ЛИЧНОГО ПРИСУТСТВИЯ. МОЯ ЖЕНА ОСТАЛАСЬ УПРАВЛЯТЬ НАШИМ РАНЧО. >>> with open( cyrillic_upper.txt,mode= w ) as f:... f.write(s_unicode.upper())... Traceback (most recent call last): File "<stdin>", line 2, in <module> UnicodeEncodeError: ascii codec can t encode characters in position 0-5: ordinal not in range(128)

15 Reading a file with Cyrillic characters (cont.) >>> s_unicode_utf8 = s_unicode.upper().encode( UTF-8 ) >>> with open( cyrillic_upper.txt,mode= w ) as f:... f.write(s_unicode_utf8)... >>> $ cat rus_upper.txt ПИСЬМО В ИЮНЕ 1935 ГОДА Я НА ПОЛГОДА ВЕРНУЛСЯ В АНГЛИЮ С МОЕГО РАНЧО В ЮЖНОЙ АМЕРИКЕ. ЖИЗНЬ В АМЕРИКЕ СЛОЖИЛАСЬ ДЛЯ НАС НЕПРОСТО. ВМЕСТЕ СО ВСЕМИ МЫ СТРАДАЛИ ОТ ПОСЛЕДСТВИЙ МИРОВОГО КРИЗИСА. В АНГЛИИ У МЕНЯ БЫЛ РЯД ДЕЛ, КОТОРЫЕ, КАК МНЕ ПРЕДСТАВЛЯЛОСЬ, ТРЕБОВАЛИ ДЛЯ СВОЕГО РАЗРЕШЕНИЯ МОЕГО ЛИЧНОГО ПРИСУТСТВИЯ. МОЯ ЖЕНА ОСТАЛАСЬ УПРАВЛЯТЬ НАШИМ РАНЧО.

16 Reading and writing UTF-8 files def read_file_utf8(filename): with open(filename) as f: s = f.read() return s.decode( UTF-8 ) def write_file_utf8(filename,unicode_str): utf8_str = unicode_str.encode( UTF-8 ) with open(filename,mode= w ) as f: f.write(utf8_str)

17 codecs module import codecs def read_file_utf8(filename): with codecs.open(filename,encoding= utf-8 ) as f: s = f.read() return s def write_file_utf8(filename,unicode_str): with codecs.open(filename,mode= w,encoding= utf-8 ) as f: f.write(unicode_str)

18 String literals # unicode_ex.py alphabet_murders = u"письмо В июне 1935 года я на полгода вернулся\ в Англию с моего ранчо в Южной Америке." >>> import unicode_ex Traceback (most recent call last): File "<stdin>", line 1, in <module> File "unicode_ex.py", line 3 SyntaxError: Non-ASCII character \xd0 in file unicode_ex.py on line 3, but no encoding declared; see for details # unicode_ex.py # -*- coding: utf-8 -*- alphabet_murders = u"письмо В июне 1935 года я на полгода вернулся\ в Англию с моего ранчо в Южной Америке."

19 Solving a problem Top-down (divide-and-conquer) Start with the top function, and analyze what needs to be done by giving subtasks function names (without defining the functions first). Iteratively continue with the subtasks until you end up with trivial subtasks that you solve right away. Bottom-up Start with writing help functions that solves problems that you know must be solved in order to solve the whole problem. Use the help functions to build new functions until you have solved the whole problem.

20 What is a good solution? A problem of some complexity has a large number of solutions, so which one is to be preferred? Readability is extremely important. Scary example of the opposite: print filter(none,map(lambda y:y*reduce( lambda x,y:x*y!=0,map(lambda x,y=y:y%x, range(2,int(pow(y,0.5)+1))),1),range(2,1000))) Using the idioms of current programming language. Reasonable efficiency. Reusability.

21 Zen of Python >>> import this The Zen of Python, by Tim Peters Beautiful is better than ugly. Explicit is better than implicit. Simple is better than complex. Complex is better than complicated. Flat is better than nested. Sparse is better than dense. Readability counts. Special cases aren t special enough to break the rules. Although practicality beats purity. Errors should never pass silently. Unless explicitly silenced. In the face of ambiguity, refuse the temptation to guess. There should be one-- and preferably only one --obvious way to do it. Although that way may not be obvious at first unless you re Dutch. Now is better than never. Although never is often better than *right* now. If the implementation is hard to explain, it s a bad idea. If the implementation is easy to explain, it may be a good idea. Namespaces are one honking great idea -- let s do more of those!

22 Top-down: Downey, exercise 9.8 This question is based on a Puzzler that was broadcast on the radio program Car Talk: Give me a word with three consecutive double letters. I ll give you a couple of words that almost qualify, but don t. For example, the word committee, c-o-m-m-i-t-t-e-e. It would be great except for the i that sneaks in there. Or Mississippi: M-i-s-s-i-s-s-i-p-p-i. If you could take out those i s it would work. But there is a word that has three consecutive pairs of letters and to the best of my knowledge this may be the only word. Of course there are probably 500 more but I can only think of one. What is the word? Write a program to find it.

23 Solution def is_triple_duplicate(word): for i in range(0,len(word)-5): if (word[i] == word[i+1] and word[i+2] == word[i+3] and word[i+4] == word[i+5]): return True return False def exercise1(): with open( words.txt ) as f: for word in f: if is_triple_duplicate(word): print *, word,

24 Bottom-up: Downey, exercise 9.8 Here s another Car Talk Puzzler: I was driving on the highway the other day and I happened to notice my odometer. Like most odometers, it shows six digits, in whole miles only. So, if my car had 300,000 miles, for example, I d see Now, what I saw that day was very interesting. I noticed that the last 4 digits were palindromic; that is, they read the same forward as backward. For example, is a palindrome, so my odometer could have read One mile later, the last 5 numbers were palindromic. For example, it could have read One mile after that, the middle 4 out of 6 numbers were palindromic. And you ready for this? One mile later, all 6 were palindromic! The question is, what was on the odometer when I first looked? Write a Python program that tests all the six-digit numbers and prints any numbers that satisfy these requirements.

25 Solution def palindrome(s): return s == s[::-1] def string_of_numbers(n): return str(n).zfill(6) def exercise2(): for n in range(0, ): last_four = string_of_numbers(n)[2:6] last_five = string_of_numbers(n+1)[1:6] middle = string_of_numbers(n+2)[1:5] all_six = string_of_numbers(n+3) if (palindrome(last_four) and palindrome(last_five) and palindrome(middle) and palindrome(all_six)): print string_of_numbers(n) print evidence: 4:%s, 5:%s, m:%s, 6:%s % (last_four, last_five,middle,all_six)

LECTURE 1. Getting Started with Python

LECTURE 1. Getting Started with Python LECTURE 1 Getting Started with Python ABOUT PYTHON Development started in the 1980 s by Guido van Rossum. Only became popular in the last decade or so. Python 2.x currently dominates, but Python 3.x is

More information

OOP and Scripting in Python

OOP and Scripting in Python DIEE - Università degli Studi di Cagliari OOP and Scripting in Python Introduction Giuliano Armano DIEE Univ. di Cagliari Python Roots... Object Oriented Programming (C++, Modula-3, ABC, Icon) Scripting

More information

1 Decorators. 2 Descriptors. 3 Static Variables. 4 Anonymous Classes. Sandeep Sadanandan (TU, Munich) Python For Fine Programmers July 13, / 19

1 Decorators. 2 Descriptors. 3 Static Variables. 4 Anonymous Classes. Sandeep Sadanandan (TU, Munich) Python For Fine Programmers July 13, / 19 1 Decorators 2 Descriptors 3 Static Variables 4 Anonymous Classes Sandeep Sadanandan (TU, Munich) Python For Fine Programmers July 13, 2009 1 / 19 Decorator Pattern In object-oriented programming, the

More information

Learning R via Python...or the other way around

Learning R via Python...or the other way around Learning R via Python...or the other way around Dept. of Politics - NYU January 7, 2010 What We ll Cover Brief review of Python The Zen of Python How are R and Python the same, and how are they different

More information

CSC 221: Introduction to Programming. Fall 2013

CSC 221: Introduction to Programming. Fall 2013 CSC 221: Introduction to Programming Fall 2013 Python data, assignments & turtles Scratch programming review Python & IDLE numbers & expressions variables & assignments strings & concatenation input &

More information

SD314 Outils pour le Big Data

SD314 Outils pour le Big Data Institut Supérieur de l Aéronautique et de l Espace SD314 Outils pour le Big Data Functional programming in Python Christophe Garion DISC ISAE Christophe Garion SD314 Outils pour le Big Data 1/ 35 License

More information

Inverse Ray Shooting Tutorial. Jorge Jiménez Vicente Dpto. Física Teórica y del Cosmos Universidad de Granada Spain

Inverse Ray Shooting Tutorial. Jorge Jiménez Vicente Dpto. Física Teórica y del Cosmos Universidad de Granada Spain Inverse Ray Shooting Tutorial Jorge Jiménez Vicente Dpto. Física Teórica y del Cosmos Universidad de Granada Spain Final goal Session I Introduction to Python Solving the lens equation Ray shooting basics

More information

Coding Styles for Python

Coding Styles for Python Wintersemester 2007/2008 1 The Zen of Python 2 Style Guide for Python Code 3 Whitespace in Expressions and Statements 4 Naming Conventions 5 References The Zen of Python Python 2.4.2 (#2, Sep 30 2005,

More information

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

Intro to Programming. Unit 7. What is Programming? What is Programming? Intro to Programming Intro to Programming Unit 7 Intro to Programming 1 What is Programming? 1. Programming Languages 2. Markup vs. Programming 1. Introduction 2. Print Statement 3. Strings 4. Types and Values 5. Math Externals

More information

CS Programming Languages: Python

CS Programming Languages: Python CS 3101-1 - Programming Languages: Python Daniel Bauer (bauer@cs.columbia.edu) October 15 2014 Daniel Bauer CS3101-1 Python - 06 - Testing, Debugging/Decorators/Numpy/Scipy 1/41 Contents Debugging and

More information

Python for Non-programmers

Python for Non-programmers Python for Non-programmers A Gentle Introduction 1 Yann Tambouret Scientific Computing and Visualization Information Services & Technology Boston University 111 Cummington St. yannpaul@bu.edu Winter 2013

More information

The Practice of Computing Using PYTHON. Chapter 4. Working with Strings. Copyright 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley

The Practice of Computing Using PYTHON. Chapter 4. Working with Strings. Copyright 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley The Practice of Computing Using PYTHON William Punch Richard Enbody Chapter 4 Working with Strings 1 Copyright 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Sequence of Characters We

More information

Representing text on the computer: ASCII, Unicode, and UTF 8

Representing text on the computer: ASCII, Unicode, and UTF 8 Representing text on the computer: ASCII, Unicode, and UTF 8 STAT/CS 287 Jim Bagrow Question: computers can only understand numbers. In particular, only two numbers, 0 and 1 (binary digits or bits). So

More information

CS 374 Fall 2014 Homework 2 Due Tuesday, September 16, 2014 at noon

CS 374 Fall 2014 Homework 2 Due Tuesday, September 16, 2014 at noon CS 374 Fall 2014 Homework 2 Due Tuesday, September 16, 2014 at noon Groups of up to three students may submit common solutions for each problem in this homework and in all future homeworks You are responsible

More information

CIS192: Python Programming

CIS192: Python Programming CIS192: Python Programming Introduction Harry Smith University of Pennsylvania January 18, 2017 Harry Smith (University of Pennsylvania) CIS 192 Lecture 1 January 18, 2017 1 / 34 Outline 1 Logistics Rooms

More information

Working with Lists 4

Working with Lists 4 CS 61A Lecture 10 Announcements Lists ['Demo'] Working with Lists 4 Working with Lists >>> digits = [1, 8, 2, 8] 4 Working with Lists >>> digits = [1, 8, 2, 8] >>> digits = [2//2, 2+2+2+2, 2, 2*2*2] 4

More information

Sequence of Characters. Non-printing Characters. And Then There Is """ """ Subset of UTF-8. String Representation 6/5/2018.

Sequence of Characters. Non-printing Characters. And Then There Is   Subset of UTF-8. String Representation 6/5/2018. Chapter 4 Working with Strings Sequence of Characters we've talked about strings being a sequence of characters. a string is indicated between ' ' or " " the exact sequence of characters is maintained

More information

Lecture 10: Repetition

Lecture 10: Repetition Lecture 10: Repetition Introduction for Linguists (LT2102) Markus Forsberg Språkbanken University of Gothenburg October 19, 2010 Assignment 3 Revision: word_tokenize and sent_tokenize are too broken for

More information

Advanced Computer Programming

Advanced Computer Programming Hazırlayan Yard. Doç. Dr. Mehmet Fidan VARIABLE TYPES Integral Types: In C#, an integral is a category of types. For anyone confused because the word Integral sounds like a mathematical term, from the

More information

A polyglot day: learning from language paradigms. Benson Joeris Kathleen Dollard

A polyglot day: learning from language paradigms. Benson Joeris Kathleen Dollard A polyglot day: learning from language paradigms Benson Joeris Kathleen Dollard What if you understood all the paradigms that define modern languages? You could program better in your base language, choose

More information

Intro. Scheme Basics. scm> 5 5. scm>

Intro. Scheme Basics. scm> 5 5. scm> Intro Let s take some time to talk about LISP. It stands for LISt Processing a way of coding using only lists! It sounds pretty radical, and it is. There are lots of cool things to know about LISP; if

More information

Introduction to Python (All the Basic Stuff)

Introduction to Python (All the Basic Stuff) Introduction to Python (All the Basic Stuff) 1 Learning Objectives Python program development Command line, IDEs, file editing Language fundamentals Types & variables Expressions I/O Control flow Functions

More information

Lecture 9: GUI and debugging

Lecture 9: GUI and debugging Lecture 9: GUI and debugging Introduction for Linguists (LT2102) Markus Forsberg Språkbanken University of Gothenburg October 12, 2010 Assignment 2 I have now corrected all assignments. If you have not

More information

Working with Strings. Husni. "The Practice of Computing Using Python", Punch & Enbody, Copyright 2013 Pearson Education, Inc.

Working with Strings. Husni. The Practice of Computing Using Python, Punch & Enbody, Copyright 2013 Pearson Education, Inc. Working with Strings Husni "The Practice of Computing Using Python", Punch & Enbody, Copyright 2013 Pearson Education, Inc. Sequence of characters We've talked about strings being a sequence of characters.

More information

Administrativia. CS107 Introduction to Computer Science. Readings. Algorithms. Expressing algorithms

Administrativia. CS107 Introduction to Computer Science. Readings. Algorithms. Expressing algorithms CS107 Introduction to Computer Science Lecture 2 An Introduction to Algorithms: and Conditionals Administrativia Lab access Searles 128: Mon-Friday 8-5pm (unless class in progress) and 6-10pm Sat, Sun

More information

Princeton University. Computer Science 217: Introduction to Programming Systems. Data Types in C

Princeton University. Computer Science 217: Introduction to Programming Systems. Data Types in C Princeton University Computer Science 217: Introduction to Programming Systems Data Types in C 1 Goals of C Designers wanted C to: Support system programming Be low-level Be easy for people to handle But

More information

Slide Set 2. for ENCM 335 in Fall Steve Norman, PhD, PEng

Slide Set 2. for ENCM 335 in Fall Steve Norman, PhD, PEng Slide Set 2 for ENCM 335 in Fall 2018 Steve Norman, PhD, PEng Electrical & Computer Engineering Schulich School of Engineering University of Calgary September 2018 ENCM 335 Fall 2018 Slide Set 2 slide

More information

Lecture 3. Strings, Functions, & Modules

Lecture 3. Strings, Functions, & Modules Lecture 3 Strings, Functions, & Modules Labs this Week Lab 1 is due at the beginning of your lab If it is not yet by then, you cannot get credit Only exception is for students who added late (Those students

More information

Variables, Constants, and Data Types

Variables, Constants, and Data Types Variables, Constants, and Data Types Strings and Escape Characters Primitive Data Types Variables, Initialization, and Assignment Constants Reading for this lecture: Dawson, Chapter 2 http://introcs.cs.princeton.edu/python/12types

More information

Python: Its Past, Present, and Future in Meteorology

Python: Its Past, Present, and Future in Meteorology Python: Its Past, Present, and Future in Meteorology 7th Symposium on Advances in Modeling and Analysis Using Python 23 January 2016 Seattle, WA Ryan May (@dopplershift) UCAR/Unidata Outline The Past What

More information

2/12/17. Goals of this Lecture. Historical context Princeton University Computer Science 217: Introduction to Programming Systems

2/12/17. Goals of this Lecture. Historical context Princeton University Computer Science 217: Introduction to Programming Systems Princeton University Computer Science 217: Introduction to Programming Systems The C Programming Language Part 1 For Your Amusement C is quirky, flawed, and an enormous success. While accidents of history

More information

Python Print Decode Error - Output Not Utf-8

Python Print Decode Error - Output Not Utf-8 Python Print Decode Error - Output Not Utf- 8 The following error occurs when you try to print non-utf-8 stuff with Python via Sublime Text: (Decode error - output not utf-8). The same code, executed via

More information

Princeton University Computer Science 217: Introduction to Programming Systems The C Programming Language Part 1

Princeton University Computer Science 217: Introduction to Programming Systems The C Programming Language Part 1 Princeton University Computer Science 217: Introduction to Programming Systems The C Programming Language Part 1 C is quirky, flawed, and an enormous success. While accidents of history surely helped,

More information

Programming Fundamentals and Python

Programming Fundamentals and Python Chapter 2 Programming Fundamentals and Python This chapter provides a non-technical overview of Python and will cover the basic programming knowledge needed for the rest of the chapters in Part 1. It contains

More information

CSI33 Data Structures

CSI33 Data Structures Outline Department of Mathematics and Computer Science Bronx Community College October 24, 2018 Outline Outline 1 Chapter 8: A C++ Introduction For Python Programmers Expressions and Operator Precedence

More information

CMSC 201 Fall 2016 Lab 09 Advanced Debugging

CMSC 201 Fall 2016 Lab 09 Advanced Debugging CMSC 201 Fall 2016 Lab 09 Advanced Debugging Assignment: Lab 09 Advanced Debugging Due Date: During discussion Value: 10 points Part 1: Introduction to Errors Throughout this semester, we have been working

More information

Advanced Programming Techniques. Python. Christopher Moretti

Advanced Programming Techniques. Python. Christopher Moretti Advanced Programming Techniques Python Christopher Moretti PYTHON PYTHON And the ten minutes striking up a conversation with that strange kid in homeroom sometimes matters more than every other part of

More information

If Statements, For Loops, Functions

If Statements, For Loops, Functions Fundamentals of Programming If Statements, For Loops, Functions Table of Contents Hello World Types of Variables Integers and Floats String Boolean Relational Operators Lists Conditionals If and Else Statements

More information

LECTURE 1. Getting Started with Python

LECTURE 1. Getting Started with Python LECTURE 1 Getting Started with Python ABOUT PYTHON Development started in the 1980 s by Guido van Rossum. Only became popular in the last decade or so. Python 2.x currently dominates, but Python 3.x is

More information

CS 1124 Media computation. Lecture 9.1, October 20, 2008 Steve Harrison

CS 1124 Media computation. Lecture 9.1, October 20, 2008 Steve Harrison CS 1124 Media computation Lecture 9.1, October 20, 2008 Steve Harrison Where were we? Backwards (in 3 ways) Strings Where were we? Backwards (in 3 ways) Strings Backwards (1) Reverse the samples: recipe

More information

Recall that strings and tuples are immutable datatypes, while lists are mutable datatypes. What does this mean?

Recall that strings and tuples are immutable datatypes, while lists are mutable datatypes. What does this mean? 6.189 Day 4 Readings How To Think Like A Computer Scientist, chapters 7 and 8 6.01 Fall 2009 Course Notes page 27-29 ( Lists and Iterations over lists ; List Comprehensions is optional); sections 3.2-3.4

More information

Programming with Python

Programming with Python Programming with Python Dr Ben Dudson Department of Physics, University of York 21st January 2011 http://www-users.york.ac.uk/ bd512/teaching.shtml Dr Ben Dudson Introduction to Programming - Lecture 2

More information

Variables and. What Really Happens When You Run hello_world.py

Variables and. What Really Happens When You Run hello_world.py 2 Variables and Simple Data Types In this chapter you ll learn about the different kinds of data you can work with in your Python programs. You ll also learn how to use variables to represent data in your

More information

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

CSC 148 Lecture 3. Dynamic Typing, Scoping, and Namespaces. Recursion CSC 148 Lecture 3 Dynamic Typing, Scoping, and Namespaces Recursion Announcements Python Ramp Up Session Monday June 1st, 1 5pm. BA3195 This will be a more detailed introduction to the Python language

More information

Syntactic Analysis. CS345H: Programming Languages. Lecture 3: Lexical Analysis. Outline. Lexical Analysis. What is a Token? Tokens

Syntactic Analysis. CS345H: Programming Languages. Lecture 3: Lexical Analysis. Outline. Lexical Analysis. What is a Token? Tokens Syntactic Analysis CS45H: Programming Languages Lecture : Lexical Analysis Thomas Dillig Main Question: How to give structure to strings Analogy: Understanding an English sentence First, we separate a

More information

Getting Started. Excerpted from Hello World! Computer Programming for Kids and Other Beginners

Getting Started. Excerpted from Hello World! Computer Programming for Kids and Other Beginners Getting Started Excerpted from Hello World! Computer Programming for Kids and Other Beginners EARLY ACCESS EDITION Warren D. Sande and Carter Sande MEAP Release: May 2008 Softbound print: November 2008

More information

SCHEME 7. 1 Introduction. 2 Primitives COMPUTER SCIENCE 61A. October 29, 2015

SCHEME 7. 1 Introduction. 2 Primitives COMPUTER SCIENCE 61A. October 29, 2015 SCHEME 7 COMPUTER SCIENCE 61A October 29, 2015 1 Introduction In the next part of the course, we will be working with the Scheme programming language. In addition to learning how to write Scheme programs,

More information

SCHEME 8. 1 Introduction. 2 Primitives COMPUTER SCIENCE 61A. March 23, 2017

SCHEME 8. 1 Introduction. 2 Primitives COMPUTER SCIENCE 61A. March 23, 2017 SCHEME 8 COMPUTER SCIENCE 61A March 2, 2017 1 Introduction In the next part of the course, we will be working with the Scheme programming language. In addition to learning how to write Scheme programs,

More information

The UOB Python Lectures: Part 1 - Introduction to Python

The UOB Python Lectures: Part 1 - Introduction to Python The UOB Python Lectures: Part 1 - Introduction to Python Hesham al-ammal University of Bahrain 18/3/2013 Twitter: @heshaaam Blog and slides: heshaaam.wordpress.com 1 1 Feel like flying? Ref: xkcd.com 2

More information

3 The Building Blocks: Data Types, Literals, and Variables

3 The Building Blocks: Data Types, Literals, and Variables chapter 3 The Building Blocks: Data Types, Literals, and Variables 3.1 Data Types A program can do many things, including calculations, sorting names, preparing phone lists, displaying images, validating

More information

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

CSCE 110 Programming I Basics of Python: Variables, Expressions, Input/Output CSCE 110 Programming I Basics of Python: Variables, Expressions, Input/Output Dr. Tiffani L. Williams Department of Computer Science and Engineering Texas A&M University Spring 2011 Python Python was developed

More information

Hello World! Computer Programming for Kids and Other Beginners. Chapter 1. by Warren Sande and Carter Sande. Copyright 2009 Manning Publications

Hello World! Computer Programming for Kids and Other Beginners. Chapter 1. by Warren Sande and Carter Sande. Copyright 2009 Manning Publications Hello World! Computer Programming for Kids and Other Beginners by Warren Sande and Carter Sande Chapter 1 Copyright 2009 Manning Publications brief contents Preface xiii Acknowledgments xix About this

More information

Variables, expressions and statements

Variables, expressions and statements Variables, expressions and statements 2.1. Values and data types A value is one of the fundamental things like a letter or a number that a program manipulates. The values we have seen so far are 2 (the

More information

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

\n is used in a string to indicate the newline character. An expression produces data. The simplest expression Chapter 1 Summary Comments are indicated by a hash sign # (also known as the pound or number sign). Text to the right of the hash sign is ignored. (But, hash loses its special meaning if it is part of

More information

These are notes for the third lecture; if statements and loops.

These are notes for the third lecture; if statements and loops. These are notes for the third lecture; if statements and loops. 1 Yeah, this is going to be the second slide in a lot of lectures. 2 - Dominant language for desktop application development - Most modern

More information

Introduction to Python

Introduction to Python Introduction to Python CB2-101 Introduction to Scientific Computing November 11 th, 2014 Emidio Capriotti http://biofold.org/emidio Division of Informatics Department of Pathology Python Python high-level

More information

Computer Science 1001.py. Lecture 19a: Generators continued; Characters and Text Representation: Ascii and Unicode

Computer Science 1001.py. Lecture 19a: Generators continued; Characters and Text Representation: Ascii and Unicode Computer Science 1001.py Lecture 19a: Generators continued; Characters and Text Representation: Ascii and Unicode Instructors: Daniel Deutch, Amir Rubinstein Teaching Assistants: Ben Bogin, Michal Kleinbort,

More information

CMPS 10 Introduction to Computer Science Lecture Notes

CMPS 10 Introduction to Computer Science Lecture Notes CMPS Introduction to Computer Science Lecture Notes Binary Numbers Until now we have considered the Computing Agent that executes algorithms to be an abstract entity. Now we will be concerned with techniques

More information

Thinking Hard About Python

Thinking Hard About Python Thinking Hard About Python @pydanny Danny: 128,546++ Audrey: 121,871++ http://2scoops.org What I want you to think of me. One Cartwheel of Many Around the World What I m really like. Myself at 13 in front

More information

61A Lecture 2. Friday, August 28, 2015

61A Lecture 2. Friday, August 28, 2015 61A Lecture 2 Friday, August 28, 2015 Names, Assignment, and User-Defined Functions (Demo) Types of Expressions Primitive expressions: 2 add 'hello' Number or Numeral Name String Call expressions: max

More information

CS1 Lecture 3 Jan. 18, 2019

CS1 Lecture 3 Jan. 18, 2019 CS1 Lecture 3 Jan. 18, 2019 Office hours for Prof. Cremer and for TAs have been posted. Locations will change check class website regularly First homework assignment will be available Monday evening, due

More information

Web Design and HTML. Web Page vs Web Site. Navigation. Links. A web page is a single page viewable using web browser. A web site is a set of web pages

Web Design and HTML. Web Page vs Web Site. Navigation. Links. A web page is a single page viewable using web browser. A web site is a set of web pages Web Page vs Web Site Web Design and HTML Lecture 14 COMPSCI111/111G SS 2018 A web page is a single page viewable using web browser Should be visually appealing, informative A web site is a set of web pages

More information

Introduction to: Computers & Programming: Strings and Other Sequences

Introduction to: Computers & Programming: Strings and Other Sequences Introduction to: Computers & Programming: Strings and Other Sequences in Python Part I Adam Meyers New York University Outline What is a Data Structure? What is a Sequence? Sequences in Python All About

More information

Introduction to: Computers & Programming: Strings and Other Sequences

Introduction to: Computers & Programming: Strings and Other Sequences Introduction to: Computers & Programming: Strings and Other Sequences in Python Part I Adam Meyers New York University Outline What is a Data Structure? What is a Sequence? Sequences in Python All About

More information

Programming Lecture 3

Programming Lecture 3 Programming Lecture 3 Expressions (Chapter 3) Primitive types Aside: Context Free Grammars Constants, variables Identifiers Variable declarations Arithmetic expressions Operator precedence Assignment statements

More information

THE INTEGER DATA TYPES. Laura Marik Spring 2012 C++ Course Notes (Provided by Jason Minski)

THE INTEGER DATA TYPES. Laura Marik Spring 2012 C++ Course Notes (Provided by Jason Minski) THE INTEGER DATA TYPES STORAGE OF INTEGER TYPES IN MEMORY All data types are stored in binary in memory. The type that you give a value indicates to the machine what encoding to use to store the data in

More information

CS2304: Python for Java Programmers. CS2304: Sequences and Collections

CS2304: Python for Java Programmers. CS2304: Sequences and Collections CS2304: Sequences and Collections Sequences In Python A sequence type in python supports: The in membership operator. The len() function. Slicing like we saw with strings, s[1:3]. And is iterable (for

More information

CS1 Lecture 3 Jan. 22, 2018

CS1 Lecture 3 Jan. 22, 2018 CS1 Lecture 3 Jan. 22, 2018 Office hours for me and for TAs have been posted, locations will change check class website regularly First homework available, due Mon., 9:00am. Discussion sections tomorrow

More information

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

Introduction to: Computers & Programming: Review prior to 1 st Midterm Introduction to: Computers & Programming: Review prior to 1 st Midterm Adam Meyers New York University Summary Some Procedural Matters Summary of what you need to Know For the Test and To Go Further in

More information

CMSC 201 Computer Science I for Majors

CMSC 201 Computer Science I for Majors CMSC 201 Computer Science I for Majors Lecture 02 Intro to Python Syllabus Last Class We Covered Grading scheme Academic Integrity Policy (Collaboration Policy) Getting Help Office hours Programming Mindset

More information

Python Programming: An Introduction to Computer Science

Python Programming: An Introduction to Computer Science Python Programming: An Introduction to Computer Science Chapter 7 Decision Structures Python Programming, 2/e 1 Objectives æ To understand the programming pattern simple decision and its implementation

More information

(Refer Slide Time: 01:12)

(Refer Slide Time: 01:12) Internet Technology Prof. Indranil Sengupta Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Lecture No #22 PERL Part II We continue with our discussion on the Perl

More information

Outline. CIS 110: Introduction to Computer Programming. What is Computer Science? What is computer programming? What is computer science?

Outline. CIS 110: Introduction to Computer Programming. What is Computer Science? What is computer programming? What is computer science? Outline CIS 110: Introduction to Computer Programming Lecture 1 An introduction of an introduction ( 1.1 1.3)* 1. What is computer science and computer programming? 2. Introductions and logistics 3. The

More information

Python 3000 and You. Guido van Rossum PyCon March 14, 2008

Python 3000 and You. Guido van Rossum PyCon March 14, 2008 Python 3000 and You Guido van Rossum PyCon March 14, 2008 Why Py3k Open source needs to move or die Matz (creator of Ruby) To fix early, sticky design mistakes e.g. classic classes, int division, print

More information

Overview. - General Data Types - Categories of Words. - Define Before Use. - The Three S s. - End of Statement - My First Program

Overview. - General Data Types - Categories of Words. - Define Before Use. - The Three S s. - End of Statement - My First Program Overview - General Data Types - Categories of Words - The Three S s - Define Before Use - End of Statement - My First Program a description of data, defining a set of valid values and operations List of

More information

Announcements For This Lecture

Announcements For This Lecture Lecture 4 Strings Announcements For This Lecture Chapter 8 Readings 8.1, 8.2, 8.4, 8.5 Avoid for-loop sections Next Lab More expression tables Testing functions Assignment 1 Will post it on Monday Need

More information

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

GIS 4653/5653: Spatial Programming and GIS. More Python: Statements, Types, Functions, Modules, Classes GIS 4653/5653: Spatial Programming and GIS More Python: Statements, Types, Functions, Modules, Classes Statement Syntax The if-elif-else statement Indentation and and colons are important Parentheses and

More information

Your First C++ Program. September 1, 2010

Your First C++ Program. September 1, 2010 Your First C++ Program September 1, 2010 Your First C++ Program //*********************************************************** // File name: hello.cpp // Author: Bob Smith // Date: 09/01/2010 // Purpose:

More information

Casabac Unicode Support

Casabac Unicode Support Unicode Support Unicode Support Full Unicode support was added into the GUI Server with build 25_20040105. Before ISO 8859-1 was used for encoding and decoding HTML pages and your system's default encoding

More information

Character Encodings. Fabian M. Suchanek

Character Encodings. Fabian M. Suchanek Character Encodings Fabian M. Suchanek 22 Semantic IE Reasoning Fact Extraction You are here Instance Extraction singer Entity Disambiguation singer Elvis Entity Recognition Source Selection and Preparation

More information

CMSC201 Computer Science I for Majors

CMSC201 Computer Science I for Majors CMSC201 Computer Science I for Majors Lecture 15 File I/O All materials copyright UMBC unless otherwise noted Last Class We Covered Python s tuple data structure Tuples in functions (and as return values)

More information

Syntax Error Malformed Unicode Character Escape Sequence Javascript

Syntax Error Malformed Unicode Character Escape Sequence Javascript Syntax Error Malformed Unicode Character Escape Sequence Javascript Firebug showed a malformed unicode character escape sequence but I have no media on the console and you'll see the syntax error in the

More information

CSCI 2010 Principles of Computer Science. Data and Expressions 08/09/2013 CSCI

CSCI 2010 Principles of Computer Science. Data and Expressions 08/09/2013 CSCI CSCI 2010 Principles of Computer Science Data and Expressions 08/09/2013 CSCI 2010 1 Data Types, Variables and Expressions in Java We look at the primitive data types, strings and expressions that are

More information

CS 115 Lecture 4. More Python; testing software. Neil Moore

CS 115 Lecture 4. More Python; testing software. Neil Moore CS 115 Lecture 4 More Python; testing software Neil Moore Department of Computer Science University of Kentucky Lexington, Kentucky 40506 neil@cs.uky.edu 8 September 2015 Syntax: Statements A statement

More information

cis20.1 design and implementation of software applications I fall 2007 lecture # I.2 topics: introduction to java, part 1

cis20.1 design and implementation of software applications I fall 2007 lecture # I.2 topics: introduction to java, part 1 topics: introduction to java, part 1 cis20.1 design and implementation of software applications I fall 2007 lecture # I.2 cis20.1-fall2007-sklar-leci.2 1 Java. Java is an object-oriented language: it is

More information

The second statement selects character number 1 from and assigns it to.

The second statement selects character number 1 from and assigns it to. Chapter 8 Strings 8.1 A string is a sequence A string is a sequence of characters. You can access the characters one at a time with the bracket operator: The second statement selects character number 1

More information

File Operations. Working with files in Python. Files are persistent data storage. File Extensions. CS111 Computer Programming

File Operations. Working with files in Python. Files are persistent data storage. File Extensions. CS111 Computer Programming File Operations Files are persistent data storage titanicdata.txt in PS06 Persistent vs. volatile memory. The bit as the unit of information. Persistent = data that is not dependent on a program (exists

More information

(Python) Chapter 3: Repetition

(Python) Chapter 3: Repetition (Python) Chapter 3: Repetition 3.1 while loop Motivation Using our current set of tools, repeating a simple statement many times is tedious. The only item we can currently repeat easily is printing the

More information

Lecture Transcript While and Do While Statements in C++

Lecture Transcript While and Do While Statements in C++ Lecture Transcript While and Do While Statements in C++ Hello and welcome back. In this lecture we are going to look at the while and do...while iteration statements in C++. Here is a quick recap of some

More information

University of Texas at Arlington, TX, USA

University of Texas at Arlington, TX, USA Dept. of Computer Science and Engineering University of Texas at Arlington, TX, USA In programming, a string is a sequence of characters. A string is indicated between or The exact kind of quotes must

More information

How to Think Like a Computer Scientist: Learning with Python 3»

How to Think Like a Computer Scientist: Learning with Python 3» How to Think Like a Computer Scientist: Learning with Python 3» previous next index 1. The way of the program The goal of this book is to teach you to think like a computer scientist. This way of thinking

More information

CS1004: Intro to CS in Java, Spring 2005

CS1004: Intro to CS in Java, Spring 2005 CS1004: Intro to CS in Java, Spring 2005 Lecture #16: Java conditionals/loops, cont d. Janak J Parekh janak@cs.columbia.edu Administrivia Midterms returned now Weird distribution Mean: 35.4 ± 8.4 What

More information

Variables and Data Representation

Variables and Data Representation You will recall that a computer program is a set of instructions that tell a computer how to transform a given set of input into a specific output. Any program, procedural, event driven or object oriented

More information

CS1 Lecture 9 Feb. 5, 2018

CS1 Lecture 9 Feb. 5, 2018 CS1 Lecture 9 Feb. 5, 2018 HW 3 available today 5pm, due 9am Monday. Discussion sections this week: loop and string practice HW1 grading done scores posted by noon toeay Common errors: 1) hotel nights,

More information

Computer Science 1001.py. Lecture 19, part B: Characters and Text Representation: Ascii and Unicode

Computer Science 1001.py. Lecture 19, part B: Characters and Text Representation: Ascii and Unicode Computer Science 1001.py Lecture 19, part B: Characters and Text Representation: Ascii and Unicode Instructors: Benny Chor, Amir Rubinstein Teaching Assistants: Amir Gilad, Michal Kleinbort Founding Teaching

More information

Intro to Strings. CSE 231 Rich Enbody. String: a sequence of characters. Indicated with quotes: or " " 9/11/13

Intro to Strings. CSE 231 Rich Enbody. String: a sequence of characters. Indicated with quotes: or   9/11/13 CSE 231 Rich Enbody String: a sequence of characters. Indicated with quotes: or " " 2 1 Triple quotes: preserve both the vertical and horizontal formatting of the string. Allows you to type tables, paragraphs,

More information

Python Programming, bridging course 2011

Python Programming, bridging course 2011 Python Programming, bridging course 2011 About the course Few lectures Focus on programming practice Slides on the homepage No course book. Using online resources instead. Online Python resources http://www.python.org/

More information

CMSC 341 Hashing (Continued) Based on slides from previous iterations of this course

CMSC 341 Hashing (Continued) Based on slides from previous iterations of this course CMSC 341 Hashing (Continued) Based on slides from previous iterations of this course Today s Topics Review Uses and motivations of hash tables Major concerns with hash tables Properties Hash function Hash

More information

Intro to Haskell Notes: Part 5

Intro to Haskell Notes: Part 5 Intro to Haskell Notes: Part 5 Adrian Brasoveanu October 5, 2013 Contents 1 Curried functions and related issues 1 1.1 Curried functions......................................... 1 1.2 Partially applied

More information

Absolute C++ Walter Savitch

Absolute C++ Walter Savitch Absolute C++ sixth edition Walter Savitch Global edition This page intentionally left blank Absolute C++, Global Edition Cover Title Page Copyright Page Preface Acknowledgments Brief Contents Contents

More information