第9章 数据结构
使用列表
#!/usr/bin/python
# Filename: using_list.py
# This is my shopping list
shoplist = [
'apple'
,
'mango'
,
'carrot'
,
'banana'
]
print
'I have'
,
len
(shoplist),
'items to purchase.'
print
'These items are:'
,
# Notice the comma at end of the line
for
item
in
shoplist:
print
item,
print
'\nI also have to buy rice.'
shoplist.append(
'rice'
)
print
'My shopping list is now'
, shoplist
print
'I will sort my list now'
shoplist.sort()
print
'Sorted shopping list is'
, shoplist
print
'The first item I will buy is'
, shoplist[
0
]
olditem = shoplist[
0
]
del
shoplist[
0
]
print
'I bought the'
, olditem
print
'My shopping list is now'
, shoplist
(源文件:
code/using_list.py)
输出
$ python using_list.py
I have 4 items to purchase.
These items are: apple mango carrot banana
I also have to buy rice.
My shopping list is now ['apple', 'mango', 'carrot', 'banana', 'rice']
I will sort my list now
Sorted shopping list is ['apple', 'banana', 'carrot', 'mango', 'rice']
The first item I will buy is apple
I bought the apple
My shopping list is now ['banana', 'carrot', 'mango', 'rice']
使用元组
#!/usr/bin/python
# Filename: using_tuple.py
zoo = (
'wolf'
,
'elephant'
,
'penguin'
)
print
'Number of animals in the zoo is'
,
len
(zoo)
new_zoo = (
'monkey'
,
'dolphin'
, zoo)
print
'Number of animals in the new zoo is'
,
len
(new_zoo)
print
'All animals in new zoo are'
, new_zoo
print
'Animals brought from old zoo are'
, new_zoo[
2
]
print
'Last animal brought from old zoo is'
, new_zoo[
2
][
2
]
(源文件:
code/using_tuple.py)
输出
$ python using_tuple.py
Number of animals in the zoo is 3
Number of animals in the new zoo is 3
All animals in new zoo are ('monkey', 'dolphin', ('wolf', 'elephant', 'penguin'))
Animals brought from old zoo are ('wolf', 'elephant', 'penguin')
Last animal brought from old zoo is penguin
使用字典
#!/usr/bin/python
# Filename: using_dict.py
# 'ab' is short for 'a'ddress'b'ook
ab = {
'Swaroop'
:
'swaroopch@byteofpython.info'
,
'Larry'
:
'larry@wall.org'
,
'Matsumoto'
:
'matz@ruby-lang.org'
,
'Spammer'
:
'spammer@hotmail.com'
}
print
"Swaroop's address is %s"
% ab[
'Swaroop'
]
# Adding a key/value pair
ab[
'Guido'
] =
'guido@python.org'
# Deleting a key/value pair
del
ab[
'Spammer'
]
print
'\nThere are %d contacts in the address-book\n'
%
len
(ab)
for
name, address
in
ab.items():
print
'Contact %s at %s'
% (name, address)
if
'Guido'
in
ab:
# OR ab.has_key('Guido')
print
"\nGuido's address is %s"
% ab[
'Guido'
]
(源文件:
code/using_dict.py)
输出
$ python using_dict.py
Swaroop's address is swaroopch@byteofpython.info
There are 4 contacts in the address-book
Contact Swaroop at swaroopch@byteofpython.info
Contact Matsumoto at matz@ruby-lang.org
Contact Larry at larry@wall.org
Contact Guido at guido@python.org
Guido's address is guido@python.org
使用序列
#!/usr/bin/python
# Filename: seq.py
shoplist = [
'apple'
,
'mango'
,
'carrot'
,
'banana'
]
# Indexing or 'Subscription' operation
print
'Item 0 is'
, shoplist[
0
]
print
'Item 1 is'
, shoplist[
1
]
print
'Item 2 is'
, shoplist[
2
]
print
'Item 3 is'
, shoplist[
3
]
print
'Item -1 is'
, shoplist[
-1
]
print
'Item -2 is'
, shoplist[
-2
]
# Slicing on a list
print
'Item 1 to 3 is'
, shoplist[
1
:
3
]
print
'Item 2 to end is'
, shoplist[
2
:
]
print
'Item 1 to -1 is'
, shoplist[
1
:
-1
]
print
'Item start to end is'
, shoplist[:]
# Slicing on a string
name =
'swaroop'
print
'characters 1 to 3 is'
, name[
1
:
3
]
print
'characters 2 to end is'
, name[
2
:]
print
'characters 1 to -1 is'
, name[
1
:
-1
]
print
'characters start to end is'
, name[:]
(源文件:
code/seq.py)
输出
$ python seq.py
Item 0 is apple
Item 1 is mango
Item 2 is carrot
Item 3 is banana
Item -1 is banana
Item -2 is carrot
Item 1 to 3 is ['mango', 'carrot']
Item 2 to end is ['carrot', 'banana']
Item 1 to -1 is ['mango', 'carrot']
Item start to end is ['apple', 'mango', 'carrot', 'banana']
characters 1 to 3 is wa
characters 2 to end is aroop
characters 1 to -1 is waroo
characters start to end is swaroop
Create a python script----backup files into archives
#!/usr/bin/python
#Filename : backup.py
import os
import time
#source list
source = ['/Users/chengflandy/src/python','/Users/chengflandy/src/lsw/frontend/html']
#target directory
target_dir = "/Users/chengflandy/src/backup/"
#today is the name of the sub backup directory
today = target_dir + time.strftime("%Y%m%d")
#current time is the name of the zip archive
now = time.strftime("%H%M%S")
#take a comment fron the user to create the zp
comment = raw_input("Enter a comment for the archive->")
#create the subdirectory if not exists
if not os.path.exists(today):
os.mkdir(today)
print "Successfully created directory:",today
#the name of the zip file
if len(comment) == 0:
target = today+os.sep+now+".zip"
else:
target = today+os.sep+now+"_"+comment.replace(' ','_')+".zip"
#use the zip command to zip
zip_command = "zip -qr %s %s" % (target,' '.join(source))
#run the command
if os.system(zip_command) == 0:
print "Successful backup to ",target
else:
print "Back failed"
#Filename : backup.py
import os
import time
#source list
source = ['/Users/chengflandy/src/python','/Users/chengflandy/src/lsw/frontend/html']
#target directory
target_dir = "/Users/chengflandy/src/backup/"
#today is the name of the sub backup directory
today = target_dir + time.strftime("%Y%m%d")
#current time is the name of the zip archive
now = time.strftime("%H%M%S")
#take a comment fron the user to create the zp
comment = raw_input("Enter a comment for the archive->")
#create the subdirectory if not exists
if not os.path.exists(today):
os.mkdir(today)
print "Successfully created directory:",today
#the name of the zip file
if len(comment) == 0:
target = today+os.sep+now+".zip"
else:
target = today+os.sep+now+"_"+comment.replace(' ','_')+".zip"
#use the zip command to zip
zip_command = "zip -qr %s %s" % (target,' '.join(source))
#run the command
if os.system(zip_command) == 0:
print "Successful backup to ",target
else:
print "Back failed"
使用类与对象的变量
#!/usr/bin/python
# Filename: objvar.py
class Person:
'''Represents a person.'''
population = 0
def __init__(self, name):
'''Initializes the person's data.'''
self.name = name
print '(Initializing %s)' % self.name
# When this person is created, he/she
# adds to the population
Person.population += 1
def __del__(self):
'''I am dying.'''
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):
'''Greeting by the person.
Really, that's all it does.'''
print 'Hi, my name is %s.' % self.name
def howMany(self):
'''Prints the current population.'''
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()
# Filename: objvar.py
class Person:
'''Represents a person.'''
population = 0
def __init__(self, name):
'''Initializes the person's data.'''
self.name = name
print '(Initializing %s)' % self.name
# When this person is created, he/she
# adds to the population
Person.population += 1
def __del__(self):
'''I am dying.'''
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):
'''Greeting by the person.
Really, that's all it does.'''
print 'Hi, my name is %s.' % self.name
def howMany(self):
'''Prints the current population.'''
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()
使用继承
#!/usr/bin/python
# Filename: inherit.py
class SchoolMember:
'''Represents any school member.'''
def __init__(self, name, age):
self.name = name
self.age = age
print '(Initialized SchoolMember: %s)' % self.name
def tell(self):
'''Tell my details.'''
print 'Name:"%s" Age:"%s"' % (self.name, self.age),
class Teacher(SchoolMember):
'''Represents a teacher.'''
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):
'''Represents a student.'''
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, 30000)
s = Student('Swaroop', 22, 75)
print # prints a blank line
members = [t, s]
for member in members:
member.tell() # works for both Teachers and Students
# Filename: inherit.py
class SchoolMember:
'''Represents any school member.'''
def __init__(self, name, age):
self.name = name
self.age = age
print '(Initialized SchoolMember: %s)' % self.name
def tell(self):
'''Tell my details.'''
print 'Name:"%s" Age:"%s"' % (self.name, self.age),
class Teacher(SchoolMember):
'''Represents a teacher.'''
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):
'''Represents a student.'''
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, 30000)
s = Student('Swaroop', 22, 75)
print # prints a blank line
members = [t, s]
for member in members:
member.tell() # works for both Teachers and Students
http://linux.chinaitlab.com/manual/Python_chinese/ch12.html
转载于:https://blog.51cto.com/flandycheng/347487