@author : istory85

第九章 数据结构

1.字符串的方法
name = \'Swaroop\'
if name.startswith(\'Swa\'):
    print \'Yes, the string starts with \"Swa\"\'
if \'a\' in name:
    print \'Yes, it contains the string \"a\"\'
if name.find(\'war\') != -1:
    print \'Yes, it contains war\'
delimiter = \'_*_\'
mylist = [\'Brazil\', \'Russia\', \'Japan\', \'China\']
print delimiter.join(mylist)

第十章 编写一个python脚本

1. 备份脚本 版本4.0
import os
import time
source = [\'/root/a.txt\', \'/root/b.txt\']
target_dir = \'/root/backup/\'
today = target_dir + time.strftime(\'%Y%m%d\')
now = time.strftime(\'%H%M%S\')
comment = raw_input(\'Enter a comment --> \')
if len(comment)== 0:
    target = today + os.sep + now + \'.zip\'
else:
    target = today + os.sep + now + \'_\' + \\
             comment.replace(\' \', \'_\') + \'.zip\'
if not os.path.exists(today):
    os.mkdir(today)
    print \'Successfully created directory\', today
zip_command = \"zip -qr \'%s\' %s\" %(target, \' \'.join(source))
if os.system(zip_command) == 0:
    print \'Successful backup to\', target
else:
    print \'Backup Failed\'

第十一章 面向对象的编程

1.定义一个简单的人 类
class Person:
    def __init__(self, name):
        self.name = name
    def sayHi(self):
        print \'Hello, my name is\', self.name
p = Person(\'Swaroop\')
p.sayHi()
2.测试一个类
class Person:
    population = 0
    def __init__(self, name):
        self.name = name
        print \'(Initializing %s)\' % self.name
        Person.population += 1
    def __del__(self):
        print \'%s says bye.\' % self.name
        Person.population -= 1
        if Person.population == 0:
            print \'I am the last one.\'
        else:
            print \'there are still %d people left.\' % Person.population
    def sayHi(self):
        print \'Hi, my name is %s.\' % self.name
    def howMany(self):
        if Person.population == 1:
            print \'I am the only person here.\'
        else:
            print \'We have %d persons here.\' % Person.population
swaroop = Person(\'Swaroop\')
swaroop.sayHi()
swaroop.howMany()
kalam = Person(\'Abdul Kalam\')
kalam.sayHi()
kalam.howMany()
swaroop.sayHi()
swaroop.howMany()
kalam.__del__()
kalam.howMany()
swaroop.__del__()
swaroop.howMany()
3.继承 ,由学校成员类继承出老师类和学生类
class SchoolMember:
    def __init__(self, name, age):
        self.name = name
        self.age = age
        print \'(Initialized SchoolMemeber: %s)\' % self.name
    def tell(self):
        print \'Name:\"%s\" Age:\"%s\"\' % (self.name, self.age)
class Teacher(SchoolMember):
    def __init__(self, name, age, salary):
        SchoolMember.__init__(self, name, age)
        self.salary = salary
        print \'(Initialized Teacher: %s)\' % self.name
    def tell(self):
        SchoolMember.tell(self)
        print \'Salary: \"%d\"\' % self.salary

class Student(SchoolMember):
    def __init__(self, name, age, marks):
        SchoolMember.__init__(self, name, age)
        self.marks = marks
        print \'(Initialized Student: %s)\' % self.name
    def tell(self):
        SchoolMember.tell(self)
        print \'Marks: \"%d\"\' % self.marks
t = Teacher(\'Mrs. Shrividya\', 40, 3000)
s = Student(\'Swaroop\', 22, 75)
print   #prints a blank line
members = [t, s]
for member in members:
    member.tell()

第十二章 文件的输入,输出

1.一首简单小诗歌的打印
poem = \'\'\'\\
Programing is fun
when the work is done
if you wanna makeyour work also fun:
        use Python!
\'\'\'
f = file(\'poem.txt\', \'w\')
f.write(poem)
f.close()
f = file(\'poem.txt\')
while True:
    line = f.readline()
    if len(line) == 0:
        break
    print line,
f.close()
2.储存器
import cPickle as p
shoplistfile = \'shoplist.data\' #name
shoplist = [\'apple\', \'mango\', \'carrot\'] #thing
f = file(shoplistfile, \'w\') #read
p.dump(shoplist, f) #store
f.close() #close
del shoplist  #del thin
f = file(shoplistfile) #read
storedlist = p.load(f) #load and read
print storedlist #show

第十三章 异常

1.处理异常
import sys
try:
    s = raw_input(\'Enter something --> \')
except EOFError:
    print \'\\nWhy did you do an EOF on me?\'
    sys.exit()
except:
    print \'\\nSome error/exception occurred.\'
print \'Done\'
2.如何引发异常
class ShortInputException(Exception):
    \'\'\'A user-defined exception class.\'\'\'
    def __init__(self, length, atleast):
        Exception.__init__(self)
        self.length = length
        self.atleast = atleast
try:
    s = raw_input(\'Enter something --> \')
    if len(s) < 3:
        raise ShortInputException(len(s), 3)
except EOFError:
    print \'\\nWhy did you do an EOF on me?\'
except ShortInputException, x:
    print \'ShortInputException: The input was of length %d, \\
was expecting at least %d\' % (x.length, x.atleast)
else:
    print \'No exception was raised\'
3.运行过程中手动中止,ctr-c,会发生键盘中断异常
import time
try:
    f = file(\'poem.txt\')
    while True:
        line = f.readline()
        if len(line) == 0:
            break
        time.sleep(2)
        print line,
finally:
    f.close()
    print \'Cleaning up...closed the file\'

第十四章 python标准库

1.sys模块 — 命令行参数
import sys
def readfile(filename):
    \'\'\'Print a file to the standard output.\'\'\'
    f = file(filename)
    while True:
        line = f.readline()
        if len(line) == 0:
            break
        print line,
    f.close()
if len(sys.argv) < 2:
    print \'No action specified.\'
    sys.exit()
if sys.argv[1].startswith(\'--\'):
    option = sys.argv[1][2:]
    if option == \'version\':
        print \'Version 1.2\'
    elif option == \'help\':
        print \'\'\'\\
This program prints files to the standard output.
Any number of files can be specified.
Options include:
  --version  :  Prints the version number
  --help     :  Display this help\'\'\'
    else:
        print \'Unkown option.\'
    sys.exit()
else:
    for filename in sys.argv[1:]:
        readfile(filename)
2.os 模块
os.name --指示当前使用平台  对windows, 返回\'nt\',对于linux等,返回\'posix\'.
os.getcwd()得到当前工作目录 os.getenv()/putenv()  读取和设置环境变量
os.listdir()返回指定目录下的所有文件和目录名    os.remove()
os.system()运行shell脚本    os.sep取代了当前系统的路径分隔符
os.linesep给出当前平台的行终止符   os.path.split()返回一个路径的目录名和文件名
os.path.isfile()/isdir()判断给出的路径是一个文件还是一个目录
os.path.existe()检验给出的路径是否真实的存在

第十五章 更多python的内容

1.特殊的方法
__init__    __del__     __str__     __lt__
__getitem__ __len__
2.单语句块 / 列表综合
listone = [2, 3, 4,100]
listtwo = [2*i for i in listone if i > 2]
print listtwo
3.在函数中接受元组和列表,*前缀存储为一个元组,**前缀则存储为一个字典的键值对
def powersum(power, *args):
    \'\'\'Return the sum of each argument raised to
specified power.\'\'\'
    total = 0
    for i in args:
        total += pow(i, power)
    return total
print powersum(2, 3, 4)
print powersum(2, 10)
4.lambda 形式 lambda参数:表达式
def make_repeater(n):
    return lambda s: s*n
twice = make_repeater(2)
print twice(\'word\')
print twice(5)
5.exec和eval语句 exec来执行储存在字符串和文件中的python语句。
eval来计算存储在字符串中的有效python表达式
exec \'print \"Hello World\"\'
print eval (\'2*3\')
6.assert语句 用来声明某个条件是真的
mylist = [\'item\']
assert len(mylist) >= 1
mylist.pop()
assert len(mylist) >= 1
7.repr函数,用来取得对象的规范字符串表示
i = []
i.append(\'item\')
print `i`
print repr(i)