Python is an interpreted language.
A python script goes through sourcecode --> interpreter --> output.
Whereas languages, like C/C++, java, goes through sourcecode --> compiler --> object code --> executor --> output
1. invoking the interpreter in 2 ways:
$ python
the python interpreter will be evoked.
$ python helloworld.py
the python script helloworld.py will be executed.
2. The interpreter and its encoding
Using the following statement. By default, Python source files are treated as encoded in ASCII
# -*- coding: encoding -*-
# -*- coding: cp1252 -*-
3. Keywords in python:
(32 keywords in python 2.7) if, elif, else, for, while, return, in, is, try, except, raise, break, continue, not, and, or, def, class, import, from, print, yield, pass, exec, global, lambda, assert, as, del, finally, global, with
# the use of lambda
def make_increment(n):
return lambda x: x+n #lambda function
# the use of print
print "Hello, World."
# the use of yield
# the use of exec
# the use of del
li = [2,4,6,67,"t", 12.4]
del li[0] #delete li[0]
del li #delete li
4. Built-in functions in python 2.7, totally 76 built-in functions
abs() divmod() input() open() staticmethod() all() enumerate() int() ord() str() any() eval() isinstance() pow() sum() basestring() execfile() issubclass() print() super() bin() file() iter() property() tuple() bool() #filter(function, iterable): def func: return x%3==0 or x%5==0 filter[f, range(2,25)]
#return a list
len( myvar ) return the length of myvar
range():
bytearray() float() list() raw_input() unichr() callable() format() locals() reduce() unicode() chr() frozenset() long() reload() vars() classmethod() getattr()
# map()
def cube(x):
return x*x*x
map(cube, range(1,11))
# will generate a list of 10 element
repr() xrange() cmp() globals() max() reversed() zip() compile() hasattr() memoryview() round() __import__() complex() hash() min() set() delattr() help() next() setattr() dict() hex() object() slice() dir( myObj ) means show the information of myObj id( myObj ) means return the address of myObj oct() sorted()
True, False (the value of a bool type )
5. Variables and expressions:
comments starts with a # to the end of a line.
A variable should have a type, and use the built-in function type( myObj ) will tell you the type.
numeric operations are +, -, *, **, /, %
logical operators are and, or, not
A new assignment makes an existing variable refer to a new value, and stop referring to the old value.
6. flow control and definition of function/class
# if statement
if <condition>:
<statement>
elif <condition>:
<statement>
else:
<statement>
# for statement
for <element> in <statement>:
<statement>
# while statement
while <condition>:
<statement>
# flow control
break # break out of the innermost enclosing for/while loop
continue # continue with the next iteration of the loop
pass # do nothing
# define a function
def <name> ( <parameter_list> ):
<statement>
# define a class
class <name>:
pass
# define a class inheriting from a parent class
class <name>(<base_class>):
pass
7. string, a built-in type, " xxx " or ' xxx '
single or double-quoted. The string is immutable.
fruit = "banana"
fruit[1] = "c" #Error len(fruit) #the length of string last_ch = fruit[-1] #the last char in the string letter = fruit[2] #the 2nd char in string
slice_piece = fruit[0:3] #print [0,3) that is "ban"
8. list, [ ]
using [ ], the list is mutable which means we can modify/add/delete elements in the list.
list is a data type(data structure) in python, so it has some methods(operations), like append(), insert(), remove(), ...
# the following three squares are the same
squares = [x**2 for x in range(10)
squares = []
for x in range(10):
squares.append(x**2)
squares = map(lambda x:x**2, range(10))
(Actually, the element in the list is the pointer/reference)
li = [0] * 3 # li = [0,0,0]
a = "banana" # reference to a string b = "banana" # reference to the same string id(a) #135044008 id(b) #135044008 c = [1,2,3] d = [1,2,3] id(c) #reference to a list id = 3500264 id(d) #reference to another list id = 3428408
c = d #c and d refer to the same list id = 3428404. the list whose id=3500264 will be discarded.
rst = []
rst.append(3) #rst = [3]
#Passing a list as a parameter to a function passes a reference to the list, not a copy of the list
rst = myFunction(a)
9. Tuple, ( )
Tuple is immutable.
t1 = ('a',) #create a tuple with one single element, DO NOT miss that comma
t2 = ('a') # t2 is a string, not a tuple
a, b = b, a #tuple assignment, the number of left variable should be the same as the number of right
10. Dictionary, {key : value , key2 : value2 }
key-value pairs.
The elements of a dictionary appear in a comma-separated list. { key : value , key2 : value2 } Each element consists of a key-value pair.
Using immutable type as an index.
eng2number = {} # an empty dictionary
eng2number['one'] = 1 #
eng2number['two'] = 2 #
print eng2number # {'one':1,'two':2}
print eng2number['one'] # 1
delete eng2number['one'] #delete a element
11. set, { }
A set is an unordered collection with no duplicate elements. Using curly braces to create a set, or using set() to create a set from a list
basket = ['apple', 'orange', 'berry', 'orange', 'apple'] # a list
fruit = set(basket) # fruit is a set initiated from a list, no duplicate in the fruit
fruit2 = {'apple', 'orange', 'berry', 'apple'} # fruit2 = {'apple', 'orange', 'berry'}
fruit2.add("apple") # add one element
12.Summary:
slice operator [ ]
operator+
assignment operator=
function parameter passing and return value
in operation
not in operation
14. Modules
from <module> import *
from <module> import <function_or_var_or_name>
import <function_or_var_or_name>
dir( <module> ) # see what's in the module
type( <module> ) # see the type of module
15. Class
1. get files in the current directory with the assum that the directory is like this:
a .py
|----dataFolder
|----Myfolder
|----1.csv , 2.csv, 3.csv
# a.py
1 def getFileList(): 2 file_list = [] 3 cur_dir = os.getcwd() 4 for folder in os.walk(cur_dir).next()[1]: 5 f = os.path.join(cur_dir, folder) 6 for filename in os.walk(f).next()[1]: 7 file_path = os.path.join(f, filename) 8 file_list.append(file_path) 9 print "the total files are: ", file_list 10 return file_list
in line 4, get all the folders in the cur_dir.
If want to get all files, in the cur_dir, than use:
for myfiles in os.walk(cur_dir).next()[2]:
2. get all files (only files not including folders) in one directory
os.listdir("some_dir")