Presentation is loading. Please wait.

Presentation is loading. Please wait.

Introduction to Scripting Languages: Python Some slides are based upon Python Documentation - Extended.

Similar presentations


Presentation on theme: "Introduction to Scripting Languages: Python Some slides are based upon Python Documentation - Extended."— Presentation transcript:

1 Introduction to Scripting Languages: Python Some slides are based upon Python Documentation - http://www.python.org/doc/http://www.python.org/doc/ Extended System Programming Laboratory (ESPL) CS Department @ BGU Fall 2013/2014 Abed Asi

2  C and Assembly – Efficient code with access to OS services  Shell Scripts – connecting Unix utilities by I/O redirection and pipes 2

3  In practice, programs output needs pre-processing  Usually an interpreted scripting language  Useful for writing and maintaining:  custom commands for a command shell  wrapper programs for executables  C/Java VS. Python 3

4 4 import java.io.IOException; import java.io.FileReader; import java.io.BufferedReader; class numlines { public static void main(String[] args) throws IOException { BufferedReader inp = new BufferedReader(new FileReader(args[0])); String line; for(int i=1;;++i) { line = inp.readLine(); if(line==null) break; System.out.printf("%3d: %s\n", i, line); } inp.close(); } } ------------------------------------------------------------------------------------------- import sys i = 1 for line in file(sys.argv[1]): print "%3d: %s" % (i, line), i+= 1

5  An open source interpreted programming language  High-level language  Object-Oriented  Functional Programming  Suitable for scripting  Practical ( VS. Efficiency )  Dynamic language 5

6  No need to declare  Not typed greeting = "hello world" greeting = 12**2 print greeting  Need to assign (initialize) ▪ use of uninitialized variable raises exception 6

7  "hello"+"world" "helloworld"# concatenation  "hello"*3"hellohellohello" # repetition  "hello"[0]"h"# indexing  "hello"[-1]"o"# (from end)  "hello"[1:4]"ell"# slicing  len("hello")5# size  "hello" < "jello"1# comparison  "e" in "hello"1# search 7

8 [ ] >>> my_list = ['Hello', 1, 2.2, 'world'] >>> len(my_list) 4 >>> my_list[0] ‘Hello’ >>> my_list.append(‘espl’) >>> my_list >>> ['Hello', 1, 2.2, 'world‘,’espl’] >>> del my_list[0] [1, 2.2, 'world‘,’espl’] >>> my_list.index(‘espl’) >>> 4 >>> ‘espl141’ in my_list >>> False 8

9  Hash tables, "associative arrays"  d = {"duck": "eend", "water": "water"}  Lookup:  d["duck"] -> "eend"  d["back"] # raises KeyError exception  Keys, values, items:  d.keys() -> ["duck", "back"]  d.values() -> ["duik", "rug"]  d.items() -> [("duck","duik"), ("back","rug")]  Presence check:  d.has_key("duck") -> 1; d.has_key("spam") -> 0 9

10  key = (lastname, firstname)  point = (x, y, z) # parentheses optional  a,b,c = point # unpack  lastname = key[0]  sort of an immutable list TypeError: 'tuple' object does not support item assignment  key[1] = ‘Abed’ # TypeError: 'tuple' object does not support item assignment 10

11 def ( ): def factorial(n): fact = 1 for i in range(1, n): fact = fact * i return fact 11

12 class student: def __init__(self, id): self._id = id self._grades = {} def update_grade(self, subject, grade): self._grades[subject] = grade #Comment, Main: s = student('233445598') s.update_grade('heshbon', 80) s.update_grade('handasa', 49) 12

13 >>> from math import * >>> sin(30*3.14/180) >>> from math import sin >>> sin(30*3.14/180) >>> from math import sin as sinus >>> sinus(30*3.14/180) 13

14  Control structures  If statement  While  For  …. 14


Download ppt "Introduction to Scripting Languages: Python Some slides are based upon Python Documentation - Extended."

Similar presentations


Ads by Google