Python学习笔记~编程小哥令狐
文章目录
- Python学习笔记~编程小哥令狐
- 一.Python运行发生情况
- 二.变量
- 2.1变量引入前说明
- 2.2变量的命名和使用
- 2.3字符串
- 2.3.1使用方法修改字符串大小写
- 2.3.2合并 拼接字符串
- 2.3.3使用制表符或换行来添加空白
- 2.3.4删除空白
- 2.3.5双引号运用
- 2.4数字
- 2.4.1整数
- 2.4.2浮点数
- 2.4.3使用函数str()避免类型错误
- 三.列表
- 3.1元素访问及其打印
- 3.2修改,添加和删除元素
- 3.2.1修改列表元素
- 3.2.2添加元素
- 3.2.3删除元素
- 3.3组织列表
- 3.3.1使用sort()对列表进行永久性排序
- 3.3.2倒着打印列表/永久性排列
- 3.3.3确定列表长度
- 四、操作列表
- 4.1快速入门
- 4.2缩进代码与循环操作
- 4.3创建数值列表
- 4.3.1使用range()创建数字列表
- 4.3.3数字统计计算/最大值/最小值/求和
- 4.3.4列表解析
- 4.4使用列表的一部分
- 4.4.1切片
- 4.4.2遍历切片
- 五、if语句
- 5.1引入例子
- 5.2条件测试
- 5.2.1检查多个条件
- 5.2.2检查特定值是否包含在列表中
- 5.3.2if-else语句
- 5.3.3if-elif-else
- 5.3.4使用多个elif代码块
- 六、字典
- 6.2使用字典
- 6.2.1访问字典中的值
- 6.2.2添加键值对
- 6.2.3创建空字典
- 6.2.4修改字典中的值
- 6.2.5删除键值对
- 6.2.6由类似对象组成的字典
- 6.3遍历字典
- 6.3.1遍历所有的键值对
- 6.3.2遍历字典中的所有键
- 6.3.3按顺序遍历字典中的所有键
- 6.3.4遍历字典中的所有值
- 6.4嵌套
- 6.4.1字典列表
- 6.4.2在字典中存储列表
- 6.4.3在字典中存储字典
- 七、用户输入和while循环
- 7.1函数input
- 7.1.1编写清晰的程序
- 7.1.2使用int()来获取数值输入
- 7.1.3求模运算符
- 7.2while循环简介
- 7.2.1使用while循环
- 7.2.2让用户选择何时退出
- 7.2.3使用标志
- 7.2.4适应break退出循环
- 7.3使用while循环来处理列表和字典
- 7.3.1在列表之间移动元素
- 7.3.2删除包含特定值的所有列表
- 八、函数
- 8.1定义函数
- 8.1.1向函数传递信息
- 8.1.2实参和形参
- 8.2返回值
- 8.2.1让实参变成可选
- 8.3传递列表
- 8.3.1在函数中修改列表
- 8.5传递任意数量的实参
- 8.6将函数存储在模块中
- 8.6.1导入整个模块
- 8.6.2导入特定函数
- 8.6.3使用as给函数指定别名
- 8.6.4使用as给模块指定别名
- 8.6.5导入模块中的所有函数
- 九、类
- 9.1使用和创建类
- 9.1.1根据类创建实例
- 9.2使用类和实例
- 9.2.3修改属性值
- 9.3继承
- 9.3.1子类方法_init_()
- 9.3.3给子类定义属性和方法
一.Python运行发生情况
- 一个
Python
程序是以.py
结尾的文件 - 一个
Python
程序是通过 Python解释器来进行读取和运行的。
二.变量
2.1变量引入前说明
message="Hello world"
print(message)
message="编程令狐"
print(message)
- 在程序中可以随时修改变量的值,Python始终记录变量的最新值。
2.2变量的命名和使用
规则:
- 变量名不能以数字开头,只能以字母,数字,下划线组成。
- 变量名不能包含空格
- 不要使用关键字命名
- 尽量使用小写字母命名变量名
2.3字符串
字符串:就是一系列字符
表示方法:被单引号或双引号包起来的内容
2.3.1使用方法修改字符串大小写
#将字符串的首字母转换成大写,使用title()方法
name="ada lovelace"
print(name.title())
print(name.upper())#转换成大写
print(name.lower())#转换成小写
2.3.2合并 拼接字符串
- 使用 **“+”**号进行直接拼接------拼接法
first_name="ada"
last_name="lovelace"
full_name=first_name+" "+last_name#中间加了一个空格
print(full_name)
#print("Hello"+" "+full_name.title())
2.3.3使用制表符或换行来添加空白
- 制表符就是5个空格
\t
print("\tPython")
- 换行符
\n
print("languages:\npython\nC")
2.3.4删除空白
favorite_language=' python '
print(favorite_language)
favorite_language.rstrip()
print(favorite_language)
name="\tJackiehao\n"
print(name.lstrip())
print(name.rstrip())#末尾没有空白
print(name.strip())
2.3.5双引号运用
- 字符串里面用双引号要加转义字符
\
print("\nAlbert once said,\"Aperson ffff\"sss.")
2.4数字
2.4.1整数
-
整数可以做四则运算
-
用两个
**
表示乘方
Num_1=3**2
print(Num_1)
- 整数的除法
整数除法的结果只包含 整数,小数部分会删除
//
表示Python3整数除法取整。
print(5+3)
print(11-3)
print(4*2)
print(8//1)
2.4.2浮点数
- 带小数点的数字成为浮点数 整数部分,小数部分删除。
3/2=1
print(0.2+0.1)
#0.30000000000000004
2.4.3使用函数str()避免类型错误
- 为什么要使用str()函数呢?
因为23 是数字,也就是非字符串类型的,我们利用str将数字转换成字符型进行输出
age=23
message="happy"+str(age)+"rd Birthday!"
print(message)
如果用以下代码则会报错:
age=23
message="happy"+age+"rd Birthday!"#没有str函数
print(message)
三.列表
3.1元素访问及其打印
-
这个列表非常类似于数组的含义,它是一种有序集合。
-
l列表访问元素的方法与数组类似。
-
列表可以通过调用[-1]直接访问最后一个元素。
bicycles=['trek','cannondable','redline','specialized']
#print(bicycles)
print(bicycles[0].title())
print(bicycles[-1])#访问最后一个元素
name=['张三','李四','郭伟','诸葛亮']
print(name[0])
print(name[1])
print(name[2])
print(name[3])
print("Happy"+name[0].title()+".")
print("Happy"+name[1].title()+".")
print("Happy"+name[2].title()+".")
print("Happy"+name[3].title()+".")
3.2修改,添加和删除元素
3.2.1修改列表元素
- 直接利用索引下标进行修改
motorcycles=['honda','yamaha','suzuki']
print(motorcycles)
motorcycles[0]='ducat'
print(motorcycles)
3.2.2添加元素
- 在列表末尾添加元素
方法: append()
motorcycles=['honda','yamaha','suzuki']
print(motorcycles)
motorcycles.append('ducat')
print(motorcycles)
- 在列表中插入元素
方法:insert()
motorcycles=['honda','yamaha','suzuki']
print(motorcycles)
motorcycles.insert(0,'docat')
print(motorcycles)
3.2.3删除元素
- 方法
del
可以删除任意位置的元素
- 方法
pop()
可以删除最末尾的元素,也可以删除任意位置元素
- 方法
remove()
,根据值删除元素
motorcycles=['honda','yamaha','suzuki']
print(motorcycles)
del motorcycles[0]
print(motorcycles)
motorcycles=['honda','yamaha','suzuki']
print(motorcycles)
print(motorcycles.pop())
print(motorcycles.pop(0))#删除任意位置元素
print(motorcycles)
motorcycles=['honda','yamaha','suzuki']
print(motorcycles)
motorcycles.remove('honda')
print(motorcycles)
- 什么时候使用del语句,什么时候使用Pop语句?
- 答案:如果你要删除一个元素,且不再用它,则用del语句;反之亦然。
3.3组织列表
3.3.1使用sort()对列表进行永久性排序
- 按字母大小写顺序进行升序排列/逆序排列【永久性的】
cars=['bmw','audi','toyota','subaru']
升序排列:
cars.sort()
print(cars)
逆序排列:
cars.sort(reverse=True)
print(cars)
- 临时性的排序
cars=['bmw','audi','toyota','subaru']
print("Here is the original list:")
print(cars)
print("Here is the sorted list:")
print(sorted(cars))
print("Here is the original list again:")
print(cars)
3.3.2倒着打印列表/永久性排列
利用方法: Reverse()
cars=['bmw','audi','toyota','subaru']
print(cars)
cars.reverse()
print(cars)
3.3.3确定列表长度
方法:len()
cars=['bmw','audi','toyota','subaru']
print(len(cars))
四、操作列表
4.1快速入门
- 循环列表 magicans执行操作后,将其打印在新变量 magican,在打印一遍新变量
magicians=['alice','david','carolina']
for magician in magicians:
print(magician)
4.2缩进代码与循环操作
- for循环语句以下的缩进代码会被循环执行操作,没有缩进的代码不会被循环操作
magicians=['alice','david','carolina']
for magician in magicians:
print(magician.title()+",that was a great trick")
print("I can not wait to see your next trick,"+magician.title()+"\n")
#这行代码没有缩进所以不会被循环操作
print("I can not wait to see your next trick,"+magician.title()+"\n")
4.3创建数值列表
- 方法:
Range()
- 循环打印数字不是从1到5,而是从1到4!!!
for value in range(1,5):
print(value)
4.3.1使用range()创建数字列表
- 使用
list()
将range()
结果转换为列表。
numbers=list(range(1,6))
print(numbers)
numbers=list(range(2,11,2))
print(numbers)
squares=[]
for value in range(1,11):
square=value**2
squares.append(square)
print(squares)
4.3.3数字统计计算/最大值/最小值/求和
digits=[1,2,3,4,5,6,7,8,9,0]
print(min(digits))
print(max(digits))
print(sum(digits))
4.3.4列表解析
- 先遍历赋值在乘方
squares=[value**2 for value in range(1,11)]
print(squares)
4.4使用列表的一部分
4.4.1切片
切片就是列表的一部分内容元素。
- 获取列表的2~4个元素
motorcycles=['honda','yamaha','suzuki','name','fff']
print(motorcycles[1:4])
- 获取列表从表头开始
motorcycles=['honda','yamaha','suzuki','name','fff']
print(motorcycles[:4])
- 获取列表从表尾结束
motorcycles=['honda','yamaha','suzuki','name','fff']
print(motorcycles[2:])
4.4.2遍历切片
方法: for
循环+切片
五、if语句
5.1引入例子
cars=['audi','bmw','subaru','toyota']
for car in cars:
if car=='bmw':
print(car.upper())
else:
print(car.title())
5.2条件测试
- 每条if语句的核心就是一个值
true
或false
。
5.2.1检查多个条件
- 使用 and检查多个条件,相当于“&&”
age_0=22
age_1=18
print(age_0>=21 and age_1>21)
- 使用 or检查多个条件,相当于“||”
age_0=22
age_1=18
print(age_0>=21 or age_1>21)
5.2.2检查特定值是否包含在列表中
- 关键字
in
requested_toppings=['mushrooms','onions','pineapple']
print('mushrooms' in requested_toppings)
- 在if语句中,缩进的作用与for循环中相同,如果测试通过了,将执行if语句后面所有缩进的代码,否则将忽略他们。
5.3.2if-else语句
age=17
if age>=18:
print("you are oil enough to vote")
print("you are oil enough to vote123456")
else:
print("sorry you can ")
print("sorry you can please register ")
5.3.3if-elif-else
age=12
if age<4:
print("your admission cost is 0$")
elif age<18:
print("your admission cost is 5$")
else:
print("your admission cost is 0$")
5.3.4使用多个elif代码块
age=12
if age<14:
price=0
elif age<18:
price=5
elif age<65:
price=10
else:
price=5
print("your admission cost is $"+str(price)+".")
六、字典
- 字典就是能够存储互不相联的信息
alien_0={'color':'green','points':5}
print(alien_0['color'])
print(alien_0['points'])
6.2使用字典
- 字典是一系列的 键------值对 组成的。我们可以通过键访问值,也可以通过值访问键。
6.2.1访问字典中的值
alien_0={'color':'green','points':5}
new_points=alien_0['points']
print("you just earned "+str(new_points)+"points!")
6.2.2添加键值对
- 字典是一种动态结构,可以随时添加键值对。
alien_0={'color':'green','points':5}
print(alien_0)
alien_0['x_position']=0
alien_0['y_position']=25
print(alien_0)
6.2.3创建空字典
alien_0={}
alien_0['color']='green'
alien_0['points']=5
print(alien_0)
6.2.4修改字典中的值
alien_0={'color':'green'}
print("The alien is"+alien_0['color']+".")
alien_0['color']='yellow'
print("The alien is now"+alien_0['color']+".")
alien_0={'x_position':0,'y_position':25,'speed':'medium'}
print("Original x-position:"+str(alien_0['x_position']))
#向右移动外星人
#据外星人当前速度决定其移动多远
if alien_0['speed']=='slow':
x_increment=1
elif alien_0['speed']=='medium':
x_increment=2
else:
#这个外星人的移动速度一定很快
x_increment=3
#新位置等于老位置加上增量
alien_0['x_position']=alien_0['x_position']+x_increment
print("New x-position:"+str(alien_0['x_position']))
6.2.5删除键值对
alien_0={'color':'green','points':5}
print(alien_0)
del alien_0['points']
print(alien_0)
6.2.6由类似对象组成的字典
favorite_languagres={
'jen':'python',
'sarah':'C',
'edward':'ruby',
'phil':'python',
}
print("Saras facorite language is"+favorite_languagres['sarah'].title()+".")
6.3遍历字典
6.3.1遍历所有的键值对
items()
方法可以返回字典里的键和值得元素
user_0={
'username':'efermi',
'first':'enrico',
'last':'fermi',
}
for key,value in user_0.items():
print("\nkey:"+key)
print("value:"+value)
6.3.2遍历字典中的所有键
- 在不需要使用字典中的值时,方法
key()
很有用。遍历所有键值。
favorite_languages={
'jen':'python',
'sarah':'c',
'edward':'ruby',
'phil':'python',
}
for name in favorite_languages.keys():
print(name.title())
favorite_languages={
'jen':'python',
'sarah':'c',
'edward':'ruby',
'phil':'python',
}
friends=['phil','sarah']
for name in favorite_languages.keys():
print(name.title())
if name in friends:
print("Hi"+name.title()+",I see your favorite languages is"+favorite_languages[name].title()+"!")
6.3.3按顺序遍历字典中的所有键
favoirte_languages={
'jen':'python',
'sarah':'c',
'edward':'ruby',
'phil':'python',
}
for name in sorted(favoirte_languages.keys()):
print(name.title()+",thank you for taking the poll")
6.3.4遍历字典中的所有值
favoirte_languages={
'jen':'python',
'sarah':'c',
'edward':'ruby',
'phil':'python',
}
print("The following languages have been menthioned:")
for language in favoirte_languages.values():
print(language.title())
6.4嵌套
- 将字典存储在列表中叫做 嵌套
6.4.1字典列表
#字典
alien_0={
'color':'green',
'points':5,
}
alien_1={
'color':'red',
'points':15,
}
alien_2={
'color':'yellow',
'points':25,
}
aliens=[alien_0,alien_1,alien_2]#列表
for alien in aliens:
print(alien)
6.4.2在字典中存储列表
pizza={
'crust':'thick',
'toppings':['mushrooms','extra cheese'],
}
print("you ordered a "+pizza['crust']+"-crust pizza"+"with the following toppings:")
for topping in pizza['toppings']:
print("\t"+topping)
6.4.3在字典中存储字典
users={
'aeinstein':{
'first':'albert',
'last':'einstein',
'location':'princetion',
},
'mucire':{
'first':'marie',
'last':'curie',
'location':'princetion',
},
}
for username,user_info in users.items():
print("\nusername:"+username)
full_name=user_info['first']+" "+user_info['last']
location=user_info['location']
print("\tFull name:"+full_name.title())
print("\tLocation:"+location.title())
七、用户输入和while循环
7.1函数input
- 这是一个输入函数
message=input("tell me something and I will repeat it back to you:")
print(message)
7.1.1编写清晰的程序
name=input("please enter your name:")
print("Hello"+name+"!")
7.1.2使用int()来获取数值输入
int()
可以将字符串转换成数字
age=input("How old are you?")
age=int(age)
if age>18:
print("\n you are tall enough to ride")
else:
print("\n you .....")
7.1.3求模运算符
number=input("Enter a number ,and I will tell you if it is even or odd")
number=int(number)
if number%2==0:
print("\nThe number"+str(number)+"is even")
else:
print("\nThe number "+str(number)+"is odd")
7.2while循环简介
7.2.1使用while循环
current_number=1
while current_number<=5:
print(current_number)
current_number+=1;
7.2.2让用户选择何时退出
- 可以使用while循环让程序在用户愿意时不断运行。我们在其中定义一个退出值,只要用户输入的不是这个值,程序接着运行。
prompt="\n Tell me something and i will repeat it back to you:"
prompt+="\n Enter 'quit' to end the program"
message=""
while message !='quit':
message=input(prompt)
print(message)
7.2.3使用标志
- 使用标志有点类似与旗帜变量。赋予它一个状态,当状态发生改变时,循环结束。
prompt="\n Tell me something and i will repeat it back to you:"
prompt+="\n Enter 'quit' to end the program"
active=True
while active:
message=input(prompt)
if message=='quit':
active=False
else:
print(message)
7.2.4适应break退出循环
- 要退出while循环,不在执行接下来的代码,直接使用
break
prompt="\n Tell me something and i will repeat it back to you:"
prompt+="\n Enter 'quit' to end the program"
while True:
city=input(prompt)
if city=='quit':
break
else:
print("I love to go to "+city.title()+"!")
7.3使用while循环来处理列表和字典
7.3.1在列表之间移动元素
#首先创建一个带验证的用户列表
#和一个用于存储已经验证的用户列表
unconfirmed_users=['alice','brain','candace']
confirmed_users=[]
#验证每个用户,直到没有未验证的用户为止
#将每个经过验证的列表都移动到已经验证后的用户列表中
while unconfirmed_users:
current_user=unconfirmed_users.pop()
print("Verfing user:"+current_user.title())
confirmed_users.append(current_user)
#显示所有已经验证的用户
print("\nThe following users have beeen confimede:")
for confirmed_user in confirmed_users:
print(confirmed_user.title())
7.3.2删除包含特定值的所有列表
pets=['dog','cat','dog','goldfish','cat','rabbit','cat']
print(pets)
while 'cat' in pets:
pets.remove('cat')
print(pets)
八、函数
8.1定义函数
- 使用关键字
def
def greeter_user():
print("Hello!")
greeter_user()
8.1.1向函数传递信息
- 函数内可以包含参数,我们 在调用函数的时候可以自定义参数值进行传递
def greeter_user(username):
print("Hello!"+username.title())
greeter_user('jesse')
8.1.2实参和形参
- 调用函数传递的参数叫实参,因为它发挥了实际作用。
- 定义函数的参数叫形参,只是一个摆设而已,可有可无,所以叫形参。
def describe_pet(animal_type,pet_name):
print("\nI have a "+animal_type+".")
print("my"+animal_type+"name is"+pet_name.title()+".")
describe_pet('hasmter','harry')
8.2返回值
- 函数并非是直接输出显示,相反,他可以处理一些数据,返回一个或一组值。函数返回的值被称为返回值、
def get_formatted_name(first_name,last_name):
full_name=first_name+' '+last_name
return full_name.title()
muscian=get_formatted_name('jimi','hendix')
print(muscian)
8.2.1让实参变成可选
def get_formatted_name(first_name,last_name,middle_name=''):
if middle_name:
full_name=first_name+''+middle_name+''+last_name
else:
full_name=first_name+''+last_name
return full_name.title()
muscian=get_formatted_name('jimi','hendrix')
print(muscian)
muscians=get_formatted_name('jimi','hooker','lee')
print(muscians)
8.3传递列表
- 函数实参为列表
def greet_users(names):
for name in names:
msg="Hello,"+name.title()+"!"
print(msg)
usernames=['hanana','ty','margot']
greet_users(usernames)
8.3.1在函数中修改列表
#首先创建一个列表,其中一些包含要打印的设计
unprinted_designs=['iphone case','robot pendant','dodecahedron']
completed_models=[]
#模拟打印这个设计,知道未打印的设计为止
#打印每个设计后,都将其移动到completed_models中
while unprinted_designs:
current_design=unprinted_designs.pop()
#模拟根据设计制作3D打印的过程:
print("Printing model:"+current_design)
completed_models.append(current_design)
#显示并打印好所有的模型:
print("\nThe following models have been printed:")
for completed_model in completed_models:
print(completed_model)
8.5传递任意数量的实参
- 形如
*topping
的参数我们称为一个元组。 - 元组可以接受多个实参,这样做的好处就是形参不用写多个来匹配了!
def make_pizza(*toppinhs):
print(toppinhs)
make_pizza('peperoni')
make_pizza('mushrooms','green peppers','extra cheese')
def make_pizza(*toppings):
print("\n making a pizza with following toppings:")
for topping in toppings:
print("-"+topping)
make_pizza('peperoni')
make_pizza('mushrooms','green peppers','extra cheese')
8.6将函数存储在模块中
8.6.1导入整个模块
- 将函数存储在被称为模块的独立文件中,再将模块导入到主程序中。
- 关键字
import
pizza.py:
def make_pizza(size,*toppings):
print("\n making a"+str(size)+
"-inch pizza with the following toppings:")
for topping in toppings:
print("-"+topping)
making_pizzas.py:
import pizza
pizza.make_pizza(16,'pepperoni')
pizza.make_pizza(12,'mushroom','pepperoni','green peppers','extra cheese')
8.6.2导入特定函数
from
模块名import
函数名
from pizza import make_piza
make_pizza(16,"peopperonic")
make_pizza(12,'mushroom','pepperoni','green peppers','extra cheese')
8.6.3使用as给函数指定别名
- 将函数进行重命名
from pizza import make_pizza as mp
mp(16,'people')
mp(12,'mushroom','pepperoni','green peppers','extra cheese')
8.6.4使用as给模块指定别名
- 通过给指定的简短的别名,让我们更轻松的调用模块中的函数。
import pizza as p
p.make_pizza(16,'people')
p.make_pizza(12,'mushroom','pepperoni','green peppers','extra cheese')
8.6.5导入模块中的所有函数
- 使用
*
运算符可以让 Python导入模块的 所有函数
from pizza import *
make_pizza(16,'people')
make_pizza(12,'mushroom','pepperoni','green peppers','extra cheese')
九、类
9.1使用和创建类
self
是自动创建的一个形参,可以访问自己创建的属性
class Dog():
def __init__(self,name,age):
self.name=name
self.age=age
def sit(self):
print(self.name.title()+"is now sitting.")
def roll_over(self):
print(self.name.title()+"roll over!")
9.1.1根据类创建实例
class Dog():
my_dog=Dog('willie',6)
print("my dog name is"+my_dog.name.title()+".")
print("my dog is"+str(my_dog.age)+"year ole ")
-
访问属性
class Dog(): def __init__(self, name, age): self.name = name self.age = age def sit(self): print(self.name.title() + "is now sitting.") def roll_over(self): print(self.name.title() + "roll over!") my_dog=Dog('willie',6) print("\n"+my_dog.name)
-
调用方法
class Dog():
def __init__(self, name, age):
self.name = name
self.age = age
def sit(self):
print(self.name.title() + "is now sitting.")
def roll_over(self):
print(self.name.title() + "roll over!")
my_dog=Dog('willie',6)
my_dog.sit()
my_dog.roll_over()
- 创建多个实例
class Dog():
def __init__(self, name, age):
self.name = name
self.age = age
def sit(self):
print(self.name.title() + "is now sitting.")
def roll_over(self):
print(self.name.title() + "roll over!")
my_dog=Dog('willie',6)
your_dog=Dog("lucky",3)
print("my dog name is"+my_dog.name.title()+".")
print("my dog is"+str(my_dog.age)+"years old")
9.2使用类和实例
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)+' '+self.make+' '+self.model
return long_name.title()
def read_odometer(self):
print("This car has"+str(self.odometer_reading)+"miles on it")
my_new_car=Car('audi','a4',2016)
print(my_new_car.get_descriptive_name())
my_new_car.read_odometer()
9.2.3修改属性值
- 直接修改
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)+' '+self.make+' '+self.model
return long_name.title()
def read_odometer(self):
print("This car has"+str(self.odometer_reading)+"miles on it")
my_new_car=Car('audi','a4',2016)
print(my_new_car.get_descriptive_name())
my_new_car.odometer_reading=23
my_new_car.read_odometer()
- 通过方法修改属性值
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)+' '+self.make+' '+self.model
return long_name.title()
def update_odometer(self,mileage):
self.odometer_reading=mileage
def read_odometer(self):
print("This car has"+str(self.odometer_reading)+"miles on it")
my_new_car=Car('audi','a4',2016)
print(my_new_car.get_descriptive_name())
my_new_car.update_odometer(23)
my_new_car.read_odometer()
- 通过方法对属性值进行递增
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)+' '+self.make+' '+self.model
return long_name.title()
def update_odometer(self,mileage):
self.odometer_reading=mileage
def increment_odometer(self,miles):
self.odometer_reading+=miles
def read_odometer(self):
print("This car has"+str(self.odometer_reading)+"miles on it")
my_used_car=Car('subaru','outback',2013)
print(my_used_car.get_descriptive_name())
my_new_car=Car('audi','a4',2016)
print(my_new_car.get_descriptive_name())
my_used_car.update_odometer(23)
my_used_car.read_odometer()
9.3继承
- 原有的类称为 父类,新类称为 子类
- 子类继承了父类所有的方法属性,同时还可以定义自己的属性和方法
9.3.1子类方法_init_()
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)+' '+self.make+' '+self.model
return long_name.title()
def read_odometer(self):
print("This 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 roll back an odometer!")
def increment_odometer(self,miles):
self.odometer_reading+=miles
class ElectricCar(Car):
def __init__(self,make,model,year):
super().__init__(make,model,year)
my_tesla=ElectricCar('tesla','model',2016)
print(my_tesla.get_descriptive_name())
9.3.3给子类定义属性和方法
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)+' '+self.make+' '+self.model
return long_name.title()
def read_odometer(self):
print("This 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 roll back an odometer!")
def increment_odometer(self,miles):
self.odometer_reading+=miles
class ElectricCar(Car):
def __init__(self,make,model,year):
super().__init__(make,model,year)
self.battery_size=70
def describe_battery(self):
print("This car has a "+str(self.battery_size)+"-kwh battery")
my_tesla=ElectricCar('tesla','model',2016)
print(my_tesla.get_descriptive_name())
my_tesla.describe_battery()
an odometer!")
def increment_odometer(self,miles):
self.odometer_reading+=miles
class ElectricCar(Car):
def init(self,make,model,year):
super().init(make,model,year)
my_tesla=ElectricCar(‘tesla’,‘model’,2016)
print(my_tesla.get_descriptive_name())
### 9.3.3给子类定义属性和方法
```python
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)+' '+self.make+' '+self.model
return long_name.title()
def read_odometer(self):
print("This 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 roll back an odometer!")
def increment_odometer(self,miles):
self.odometer_reading+=miles
class ElectricCar(Car):
def __init__(self,make,model,year):
super().__init__(make,model,year)
self.battery_size=70
def describe_battery(self):
print("This car has a "+str(self.battery_size)+"-kwh battery")
my_tesla=ElectricCar('tesla','model',2016)
print(my_tesla.get_descriptive_name())
my_tesla.describe_battery()