发现自己对于python的基础掌握的并不是很牢实,利用几天时间把重点写下来,并打算把(《Python编程从入门到实践》试一试)的代码全部敲一遍,如果有不对的地方,请不吝赐教。

目录

第1章 起步

第2章 变量和简单数据类型

第3章 列表简介

第4章 操作列表

第5章 if语句 

第6章 字典

第7章 用户输入和while循环

第8章 函数

第9章 类

第10章 文件和异常

第11章 测试代码


第1章 起步

 我的建议是安装anaconda+pycharm

第2章 变量和简单数据类型

变量名只能包含字母、数字、下划线,不能以数字开头。变量名不能包含空格,不要将python关键字和函数名用作变量名。

title() upper() lower()[用于末尾]
 python使用+来合并字符串
 \t 制表符 \n 换行符
 删除空白 rstrip()后 lstrip()前 strip()全[用于末尾]
 str() 将非字符串值表示为字符串
 注释为#

习题答案

# 2-1
message = "hello"
print(message)

# 2-2
message = "nihao1"
print(message)
message = "nihao2"
print(message)

# 2-3
name = "lihua"
print("Hello "+name+",would you like to learn some Python today")

# 2-4
name = "hua Li"
print(name+"\n"+name.title()+"\n"+name.upper()+"\n"+name.lower())

# 2-5
print('Albert Einstein once said,"A person who never made a mistake never tried angthing new"')

# 2-6
famous_person = "Albert Einstein"
message = '"A person who never made a mistake never tried angthing new"'
print(famous_person+" once said,"+message)

# 2-7
person = "\tli hua\t"
print(person+person.rstrip()+person.lstrip()+person.strip())
num=312

# 2-8
print(5+3)
print(10-2)
print(2*4)
print(16/2)

# 2-9
number = 7
print("I like "+str(number))

# 2-10
# 向大家问好
print("hello")

# 2-11
import this

第3章 列表简介

通过将索引指定为-1,可让python返回最后一个列表元素

列表末尾添加新元素 append('')
 insert(index,'')
 删除 del variable[index]
 pop(index) 删除,可接着使用
 不知位置,只知道值,删除 remove('')
 sort()用于排序 [用于末尾] 可改变顺序 通过sort(reverse=True)
 sorted(variable) 临时排序
 reverse() 翻转列表元素
 len(variable) 获取变量长度

习题答案

# 3-1
names = ['liuda','wanger','zhangsan','lisi']
print(names[0])
print(names[1])
print(names[2])
print(names[3])

# 3-2
message = "hello,"
print(message+names[0])
print(message+names[1])
print(message+names[2])
print(message+names[3])

# 3-3
ty = ['bicycle','car','motorcycle']
sth = "I would like to own a "
print(sth+ty[0])
print(sth+ty[1])
print(sth+ty[2])

# 3-4
person = ['sunyanzi','wuenda','dafenqi','tuling']
print("welcome to my party "+person[0])
print("welcome to my party "+person[1])
print("welcome to my party "+person[2])
print("welcome to my party "+person[3])

# 3-5
print(person[2]+" not go to my party");
person[2]="yaoqizhi"
print("welcome to my party "+person[0])
print("welcome to my party "+person[1])
print("welcome to my party "+person[2])
print("welcome to my party "+person[3])

# 3-6
print("I find a big dining-table")
person.insert(0,'wangfei')
person.insert(2,'jiaying')
person.append('dilireba')
print("welcome to my party "+person[0])
print("welcome to my party "+person[1])
print("welcome to my party "+person[2])
print("welcome to my party "+person[3])
print("welcome to my party "+person[4])
print("welcome to my party "+person[5])
print("welcome to my party "+person[6])

# 3-7
print("I am sorry,I just invite two people")
print("sorry I can't invite you,"+person.pop())
print("sorry I can't invite you,"+person.pop())
print("sorry I can't invite you,"+person.pop())
print("sorry I can't invite you,"+person.pop())
print("sorry I can't invite you,"+person.pop())
print("welcome to my party "+person[0])
print("welcome to my party "+person[1])
del person

# 3-8
travel = ['xinjiang','maerdaifu','weinisi','xianggelila','sanya']
print(travel)
print(sorted(travel))
print(travel)
print(sorted(travel,reverse=True))
print(travel)
travel.reverse()
print(travel)
travel.reverse()
print(travel)
travel.sort()
print(travel)
travel.sort(reverse=True)
print(travel)

# 3-9
print(len(person))

# 3-10
like = ['sunyazi','xiaolongxia','xinjiang','yuedu']
print(like)
print(sorted(like))
like.sort(reverse=True)
print(like)
like.insert(2,'sanbu')
like.append('green')
del like[2]
print(like)
like.pop()
print(like)

# 3-11
error = ['sd','s1']
print(error[2])

第4章 操作列表

for n in ns: for循环 记得缩进
 range(i,j,n) 生成i到j,步长为n的值(不包含j)
 list(range(1,6))可将转换成列表
 min(),max(),sum()
 切片 list[1:3] 表示取出第二个元素到第三个元素

习题答案

# 4-1
pizzas = ['p1','p2','p3','p4','p5']
for pizza in pizzas:
    print("I like "+pizza+" pizzas")
print("I really love pizza!")

# 4-2
animals = ['cat','dog','bird','Hamster','rabbit']
for animal in animals:
    print("A "+animal+" would make a great pet")
print("any of these animals would make a great pet!")

# 4-3
values=list(range(1,21))
for value in values:
    print(value)

# 4-4
values=list(range(1,1000001))
for value in values:
    print(value)

# 4-5
values=list(range(1,1000001))
for value in values:
    print(value)
print(min(values))
print(max(values))
print(sum(values))

# 4-6
values=list(range(1,20,2))
for value in values:
    print(value)

# 4-7
values=list(range(3,31,3))
for value in values:
    print(value)

# 4-8
sq=[]
for value in range(1,11):
    value=value**3
    sq.append(value)
print(sq)

# 4-9
sq = [value**3 for value in range(1,11)]
print(sq)

# 4-10
animals = ['cat','dog','bird','Hamster','rabbit']
print("The first three items in the list are:")
print(animals[0:3])
print("three items from the middle of the list are:")
print(animals[1:4])
print("The last three items in the list are:")
print(animals[2:5])

# 4-11
friend_pizzas=pizzas[:]
pizzas.append('p6')
friend_pizzas.append('f6')
print("My favorite pizzas are:")
for pizza in pizzas:
    print(pizza)
print("My friend's favorite pizzas are:")
for friend_pizza in friend_pizzas:
    print(friend_pizza)

# 4-12
my_foods = ['pizza','falafel','carrot cake']
friend_foods = my_foods[:]
my_foods.append('cannoli')
friend_foods.append('ice cream')
print("My favorite foods are:")
for my_food in my_foods:
    print(my_food)
print("My friend's favorite foods are:")
for friend_food in friend_foods:
    print(friend_food)

# 4-13
foods=('fd1','fd2','fd3','fd4','fd5')
for food in foods:
    print(food)
# foods[0]='fd6'
foods=('fd1','fd2','fd3','fdd4','fdd5')
for food in foods:
    print(food)

# 4-14
# https://www.python.org/dev/peps/pep-0008/

第5章 if语句 

用and,or (区别于&&和||)
 要判断特定的值是否包含在列表中,可使用关键字in,不在not in
 if-elif-else结构

习题答案

# 5-1
car = 'subaru'
print("\ncar == 'subaru'? I predict True.")
print(car == 'subaru')
print("car == 'audi'?I predict Flase.")
print(car == 'audi')
car = 'bwm'
print("\ncar == 'bwm'? I predict True.")
print(car == 'bwm')
print("car == 'luhu'?I predict Flase.")
print(car == 'luhu')
car = 'benchi'
print("\ncar == 'benchi'? I predict True.")
print(car == 'benchi')
print("car == 'fengtian'?I predict Flase.")
print(car == 'fengtian')
car = 'xiandai'
print("\ncar == 'xiandai'? I predict True.")
print(car == 'xiandai')
print("car == 'sangtana'?I predict Flase.")
print(car == 'sangtana')
car = 'byd'
print("\ncar == 'byd'? I predict True.")
print(car == 'byd')
print("car == 'qq'?I predict Flase.")
print(car == 'qq')

# 5-2
print("'Car'=='car'?")
print('Car'=='car')

t='Car'
print(t.lower() == 'car')

print(7<8)
print(7<=8)
print(7==8)
print(7>8)
print(7>=8)

print('car' == 'Car'or'li'=='li')
print('car' == 'Car'and'li'=='li')

cat=['a','b','c']
print('a' in cat)
print('c' not in cat)

# 5-3
alien_color = 'green'
if alien_color == 'green':
    print("you get 5 points")
alien_color = 'red'
if alien_color == 'green':
    print("you get 5 points")

# 5-4
alien_color = 'green'#可换'yellow'
if alien_color == 'green':
    print("you get 5 points")
else:
    print("you get 10 points")

# 5-5
alien_color = 'green'#可换'yellow','red',
if alien_color == 'green':
    print("you get 5 points")
elif alien_color == 'yellow':
    print("you get 10 points")
else:
    print("you get 15 points")

# 5-6
age = 16
if age<2 and age>0:
    print("you are a baby")
elif age>=2 and age<4:
    print("You are toddler")
elif age>=4 and age<13:
    print("you are a child")
elif age>=13 and age<20:
    print("you are a teenager")
elif age>=20 and age<65:
    print("you are an adult")
else:
    print("you are an elder person")

# 5-7
favorite_fruits=['apple','pear','bananas']
if 'apple' in favorite_fruits:
    print("you really like apple")
if 'pear' in favorite_fruits:
    print("you really like pear")
if 'strawberry' in favorite_fruits:
    print("you really like strawberry")
if 'bananas' in favorite_fruits:
    print("you really like bananas")
if 'orange' in favorite_fruits:
    print("you really like orange")

# 5-8
users = ['admin','s1','s2','s3','s4']
for user in users:
    if user == 'admin':
        print("Hello admin,would you like to see a status report")
    else:
        print("hello "+user+",thank you for logging in again")

# 5-9
users = []
if users:
    print("we need to find some users!")

# 5-10
current_users=['a1','A2','a3','D4','a5']
new_users=['a1','b2','c3','d4','E5']
for new_user in new_users:
    for current_user in current_users:
        if new_user.lower()==current_user.lower():
            print(new_user+" has already been used")
            print("please input new username")
            break
        elif current_user=='a5':
            print(new_user+" is not being used")

# 5-11
nums = list(range(1,10))
for num in nums:
    if num==1:
        print(str(num)+"st")
    elif num==2:
        print(str(num)+"nd")
    elif num==3:
        print(str(num)+"rd")
    else:
        print(str(num)+"th")

第6章 字典

字典{} 键-值对
 python不关心键-值对的添加顺序,而只关心键和值之间的关联关系
 del dist['键']即可删除此键-值对
 .items()返回键-值对列表 .keys()返回键(默认) .values()返回值
 set()去除重复的

习题答案

# 6-1
people1={'first_name':'zhang','last_name':'san','age':18,'city':'beijing'}
print(people1)

# 6-2
pn={'p1':6,'p2':1,'p3':7,'p4':13,'p5':3}
for key,value in pn.items():
    print(str(key)+",your favorite number is "+str(value))

# 6-3
bc={'for':'xunhuan','list':'liebiao','array':'shuzu','dist':'zidian','print':'shuchu'}
for key,value in bc.items():
    print(str(key)+":"+str(value))

# 6-4
# 见6-3

# 6-5
hg={'nile':'egypt','changjiang':'china','mississippi':'american'}
for key,value in hg.items():
    print("The "+key.title()+" runs through "+value.title())
for key in hg.keys():
    print(key.title())
for value in hg.values():
    print(value.title())

# 6-6
favorite_languages={'jen':'python','sarah':'c','edward':'ruby','phil':'python'}
people=['jen','sarah','ruby','phil']
for key,value in favorite_languages.items():
    if key in people:
        print(key+",thank your welcome")
    else:
        print(key+",please take our poil")

# 6-7
people1={'first_name':'zhang','last_name':'san','age':18,'city':'beijing'}
people2={'first_name':'wang','last_name':'er','age':33,'city':'shanghai'}
people3={'first_name':'li','last_name':'si','age':18,'city':'hongkong'}
people=[people1,people2,people3]
for pp in people:
    for key,value in pp.items():
        print(key+":"+str(value))
    print()

# 6-8
cat={'name':'cat','type':'t1','owner':'p1'}
dog={'name':'dog','type':'t2','owner':'p2'}
pig={'name':'pig','type':'t3','owner':'p3'}
bird={'name':'bird','type':'t4','owner':'p4'}
pets=[cat,dog,pig,bird]
for pet in pets:
    for key,value in pet.items():
        print(key+":"+str(value))
    print()

# 6-9
x=['changsha','chengdu','hangzhou']
y=['xinjiang','wuhan']
z=['beijing','hongkong']
favorite_places={'x':x,'y':y,'z':z}
for fpk,fpv in favorite_places.items():
    print(fpk+"'s favorite places:")
    for v in fpv:
        print(v)
    print()

# 6-10
p1=[2,5]
p2=[3,13]
p3=[1,8,9]
pn={'p1':p1,'p2':p2,'p3':p3}
for pk,pv in pn.items():
    print(pk+"'s favorite number:")
    for v in pv:
        print(v)
    print()

# 6-11
city1={'country':'c1','population':'pl1','fact':'f1'}
city2={'country':'c2','population':'pl2','fact':'f2'}
city3={'country':'c3','population':'pl3','fact':'f3'}
cities={'city1':city1,'city2':city2,'city3':city3}
for ck,cv in cities.items():
    print(ck)
    for cvk,cvv in cv.items():
        print(cvk+":"+cvv)
    print()

# 6-12
# 略

第7章 用户输入和while循环

用户输入函数input("提示信息")
求摸运算符%
使用break语句立即退出while循环 continue语句返回循环开头,并根据条件测试结果决定是否继续执行循环
ctrl+c 可立马退出循环 pycharm默认为ctrl+f2

习题答案

# 7-1
message=input("What car do you need to rent?")
print("Let me see if I can find you a "+message)

# 7-2
message=input("How many people are there to eat?")
if int(message)>8:
    print("No empty table")
else:
    print("There is a table for you to dine")

# 7-3
message=input("please input a number")
if int(message)%10==0:
    print("This number is an integer multiple of ten")
else:
    print("This number isn't an integer multiple of ten")

# 7-4
pr="Please enter pizza ingredients\nEnter 'quit' to end"
flag=True
while flag:
    message=input(pr)
    if message=='quit':
        break
    else:
        print("We have added ingredients "+message)

# 7-5
pr="Please enter your age\nEnter 'quit' to end"
flag=True
while flag:
    message=input(pr)
    if message=='quit':
        break
    else:
        if int(message)<3:
            print("You watch the movie for free")
        elif int(message)>=3 and int(message)<=12:
            print("It costs $10 to watch a movie")
        else:
            print("It costs $15 to watch a movie.")

# 7-6
# 如上

# 7-7
while True:
    print("gogogogogo")

# 7-8
sandwich_orders=['s1','s2','s3']
finish_sandwiches=[]
while sandwich_orders:
    tt=sandwich_orders.pop()
    print("I make your "+tt+" sandwich")
    finish_sandwiches.append(tt)
print("finish_sandwiches:")
for t in finish_sandwiches:
    print(t)

# 7-9
sandwich_orders=['s1','pastrami','s2','pastrami','s3','pastrami']
print(sandwich_orders)
while 'pastrami' in sandwich_orders:
    sandwich_orders.remove('pastrami')
print("The pastrami is sold out")
print(sandwich_orders)

# 7-10
responses={}
flag=True
while flag:
    name=input("what's your name?")
    response=input("If you could visit one place in the world,where would you go?")
    responses[name]=response
    repeat=input("would you like to let another person respond?(yes/no)")
    if repeat=="no":
        flag=False
print("\n--Result--")
for name,response in responses.items():
    print(name+" want go to "+response)

第8章 函数

使用关键字实参时,务必准确地指定函数定义中的形参名
使用return语句将值返回到调用函数的代码行
切片表示法[:]创建列表的副本

*array中星号让Python创建一个名为array的空元组
 **dir中两个星号让Python创建一个名为dir的空字典
 from...import...导入模块的特定函数
 as给模块指定别名

习题答案

# 8-1
def display_message():
    print("I am learning function")
display_message()

# 8-2
def favorite_book(book):
    print("One of my favorite book is "+book)
favorite_book("Alice in wonderland")

8-3
def make_shirt(size,words):
    print("The T-shirt\nsize:"+size+"\nwords:"+words)
make_shirt(size="s",words="hello")

# 8-4
def make_shirt(size='T',words='I love python'):
    print("The T-shirt\nsize:"+size+"\nwords:"+words)
make_shirt()
make_shirt('M')
make_shirt(words='I love Java')

# 8-5
def describe_city(city,country='China'):
    print(city+" is in "+country)
describe_city('shanghai')
describe_city('beijing')
describe_city('London','English')

# 8-6
def city_country(city,country):
    return city+","+country
c1=city_country("shanghai","China")
c2=city_country("paris","France")
c3=city_country("new York","American")
print(c1)
print(c2)
print(c3)

# 8-7
def make_album(singer,album,song=''):
    albums={'singer':singer,'ablum':album}
    if song:
        albums['song']=song
    return albums
al1=make_album('jay','shuohaobuku')
al2=make_album('jason','It is love')
al3=make_album('sunyanzi','meet','9')
print(al1)
print(al2)
print(al3)

# 8-8
flag=True
while flag:
    singer=input("please input a singer")
    album=input("please input the album")
    alb=make_album(singer,album)
    print(alb)
    tt=input("Do you want to quit(yes/no)")
    if tt=="yes":
        flag=False

# 8-9
def show_magician(magician):
    for n in magician:
        print(n)
magician=['liuqian','xiaom','nos']
show_magician(magician)

# 8-10
def make_magician(magician):
   n=len(magician)
   i=0
   while i<n:
       magician[i]="The great "+magician[i]
       i=i+1
make_magician(magician)
show_magician(magician)

# 8-11
def make_magician(magician,cc):
   n=len(magician)
   i=0
   while i<n:
       cc.append("The great "+magician[i])
       i=i+1
cc=[]
make_magician(magician[:],cc)
show_magician(cc)
print(magician)

# 8-12
def user_sand(**sandw):
    sand={}
    for key,value in sandw.items():
        sand[key]=value
    return sand
p1=user_sand(c1='s1',c2='s2')
p2=user_sand(c3='s3',c4='s4')
p3=user_sand(c5='s5',c6='s6',c7='s7')
print(p1)
print(p2)
print(p3)

# 8-13
def build_profile(first,last,**userinfo):
    profit={}
    profit['first_name']=first
    profit['last_name']=last
    for key,value in userinfo.items():
        profit[key]=value
    return profit
user1=build_profile('xiao','ming',like='guitar',phone='1231',home='7 stress')
print(user1)

# 8-14
def make_car(manufacturer,model,**carinfor):
    car={}
    car['manufacturer']=manufacturer
    car['model']=model
    for key,value in carinfor.items():
        car[key]=value
    return car
car=make_car('subaru','outback',color='blue',two_package=True)
print(car)

# 8-15
# 8-16
# 8-17
# 略 函数调用较易 import即可

第9章 类

方法_init_()是一个特殊的方法,每当你根据类创建新实例时,python都会自动运行它
以self为前缀的变量都可供类中所有的方法使用。
修改属性的值方法:直接修改属性的值,通过方法修改属性的值,通过方法对属性的值进行递增。
子类必须在括号内指定父类的名称
super()函数是个特殊的函数,帮助python将父类和子类关联起来
导入类 同一文件下 from (py文件名) import 类名(* 表示所有的类)
可以导入整个模块,在使用句点表示法访问需要的类

 

# 9.1-9.2
class Restaurant():
    def __init__(self,restaurant_name,cuisine_type):
        self.restaurant_name=restaurant_name
        self.cuisine_type=cuisine_type

    def describe_restaurant(self):
        print(self.restaurant_name+" have "+self.cuisine_type)

    def open_restaurant(self):
        print(self.restaurant_name+" is open")
myRestaurant1=Restaurant('A','a')
myRestaurant2=Restaurant('B','b')
myRestaurant3=Restaurant('C','c')
myRestaurant1.describe_restaurant()
myRestaurant2.describe_restaurant()
myRestaurant3.describe_restaurant()


# 9-3
class User():
    def __init__(self,first_name,last_name):
        self.first_name=first_name
        self.last_name=last_name

    def describe_user(self):
        print("your name is "+self.first_name+" "+self.last_name)

    def greet_user(self):
        print("hello "+self.first_name+" "+self.last_name)

user1=User("zhou","jielun")
user2=User("cai","yilin")
user1.describe_user()
user1.greet_user()
user2.describe_user()
user2.greet_user()



# 9-4
class Restaurant():
    def __init__(self,restaurant_name,cuisine_type):
        self.restaurant_name=restaurant_name
        self.cuisine_type=cuisine_type
        self.number_served=0

    def describe_restaurant(self):
        print(self.restaurant_name+" have "+self.cuisine_type)
        print("The number of diners is " + str(self.number_served))

    def open_restaurant(self):
        print(self.restaurant_name+" is open")

    def set_number_served(self,number_served):
        self.number_served=number_served
        print("The number of diners is " + str(self.number_served))

    def increment_number_served(self,number):
        self.number_served+=number
        print("The number of diners is " + str(self.number_served))

myRestaurant1=Restaurant('A','a')
myRestaurant1.describe_restaurant()
myRestaurant1.set_number_served(5)
myRestaurant1.increment_number_served(3)

# 9-5
class User():
    def __init__(self,first_name,last_name):
        self.first_name=first_name
        self.last_name=last_name
        self.login_attempt=0

    def describe_user(self):
        print("your name is "+self.first_name+" "+self.last_name)

    def greet_user(self):
        print("hello "+self.first_name+" "+self.last_name)

    def increment_login_attempts(self):
        self.login_attempt+=1

    def reset_login_attempts(self):
        self.login_attempt=0

user1=User("zhou","jielun")
print(user1.login_attempt)
user1.increment_login_attempts()
user1.increment_login_attempts()
user1.increment_login_attempts()
print(user1.login_attempt)
user1.reset_login_attempts()
print(user1.login_attempt)

# 9-6
class Restaurant():
    def __init__(self,restaurant_name,cuisine_type):
        self.restaurant_name=restaurant_name
        self.cuisine_type=cuisine_type
        self.number_served=0

    def describe_restaurant(self):
        print(self.restaurant_name+" have "+self.cuisine_type)
        print("The number of diners is " + str(self.number_served))

    def open_restaurant(self):
        print(self.restaurant_name+" is open")

    def set_number_served(self,number_served):
        self.number_served=number_served
        print("The number of diners is " + str(self.number_served))

    def increment_number_served(self,number):
        self.number_served+=number
        print("The number of diners is " + str(self.number_served))

class IceCreamstand(Restaurant):
    def __init__(self,restaurant_name,cuisine_type):
        super().__init__(restaurant_name,cuisine_type)
    def flavors(self):
        icecream=['vanilla','chocolate','Strawberry']
        print("we have")
        for icec in icecream:
            print(icec)

myicecream=IceCreamstand("A","a")
myicecream.describe_restaurant()
myicecream.flavors()


# 9-7
class User():
    def __init__(self,first_name,last_name):
        self.first_name=first_name
        self.last_name=last_name
        self.login_attempt=0

    def describe_user(self):
        print("your name is "+self.first_name+" "+self.last_name)

    def greet_user(self):
        print("hello "+self.first_name+" "+self.last_name)

    def increment_login_attempts(self):
        self.login_attempt+=1

    def reset_login_attempts(self):
        self.login_attempt=0

class Admin(User):
    def __init__(self,first_name,last_name):
        super().__init__(first_name,last_name)
        self.privileges=["can add post","can delete post","can ban user"]
    def show_privileges(self):
        print("your privileges:")
        for myprivileges in self.privileges:
            print(myprivileges)

myAdmin=Admin("zhang","san")
myAdmin.show_privileges()


# 9-8
class Privileges():
    def __init__(self,privileges=["can add post","can delete post","can ban user"]):
        self.privileges=privileges

    def show_privileges(self):
        print("your privileges:")
        for myprivileges in self.privileges:
            print(myprivileges)

class User():
    def __init__(self,first_name,last_name):
        self.first_name=first_name
        self.last_name=last_name
        self.login_attempt=0

    def describe_user(self):
        print("your name is "+self.first_name+" "+self.last_name)

    def greet_user(self):
        print("hello "+self.first_name+" "+self.last_name)

    def increment_login_attempts(self):
        self.login_attempt+=1

    def reset_login_attempts(self):
        self.login_attempt=0

class Admin(User):
    def __init__(self,first_name,last_name):
        super().__init__(first_name,last_name)
        self.privileges=Privileges()

myAdmin=Admin("zhang","san")
myAdmin.privileges.show_privileges()


# 9-9
class Car():
    def __init__(self,make,model,year):
        self.make=make
        self.model=model
        self.year=year
        self.odometer_reading=0

    def get_descriptive_name(self):
        long_name=str(self.year)+" "+str(self.make)+" "+str(self.model)
        return  long_name.title()

    def read_odometer(self):
        print("the car has "+str(self.odometer_reading)+" miles on it")

    def update_odometer(self,mileage):
        if mileage>=self.odometer_reading:
            self.odometer_reading=mileage
        else:
            print("you can't roll back an odometer!")
    def increment_odometer(self,miles):
        self.odometer_reading+=miles

class Battery():
    def __init__(self,battery_size=70):
        self.battery_size=battery_size

    def describe_battery(self):
        print("This car has a "+str(self.battery_size)+" kMh battery")

    def get_range(self):
        if self.battery_size==70:
            range=240
        elif self.battery_size==85:
            range=270
        message = "This car can go approximately "+str(range)
        message += " miles on a full charge"
        print(message)

    def upgrade_battery(self):
        if self.battery_size!=85:
            self.battery_size=85

class ElectricCar(Car):
    def __init__(self,make,model,year):
        super().__init__(make,model,year)
        self.battery=Battery()

my_tesla = ElectricCar("tesla","model s'",2016)
my_tesla.battery.get_range()
my_tesla.battery.upgrade_battery()
my_tesla.battery.get_range()

# 9-10 9-11 9-12 9-13略
# 会使用import即可

# 9-14
from random import randint
class Die():
    def __init__(self,sides=6):
        self.sides=sides
    def roll_die(self):
        print(randint(1,self.sides))
mydie1=Die()
print("Throw the dice 10 times")
for i in range(1,11):
    mydie1.roll_die()
mydie2=Die(10)
print("Throw the dice 10 times")
for i in range(1,11):
    mydie2.roll_die()
mydie3=Die(20)
print("Throw the dice 10 times")
for i in range(1,11):
    mydie3.roll_die()
    
# 9-15略 自行了解

第10章 文件和异常

 

第11章 测试代码