函数input
name = input("This is :")
print(name)
# 等待输入数据,接下来输出结果
使用int()来获取数值输入
while循环
循环输出1-5
number = 1
while number <= 5:
print(number)
number+=1
函数
- 一些可以被重复使用的代码, 可以提取出来放到函数中.
- Python使用def来定义一个函数. 使用return来返回结果.
def Add(x,y):
return x+y
print(Add(1,2))
#输出结果为3
- Python使用()来调用函数
- 理解 “形参” 和 “实参”: 形参相当于数学中 “未知数” 这样的概念. 实参就是给未知数确定具体的数值.
- Python中没有 “重载” 这样的概念. 相同名字的函数, 后面的会覆盖前面的.
def fun():
print("aaa")
def fun():
print("bbb")
fun()
#输出结果为bbb
返回字典
- 函数可以返回任意类型的值,包括列表和字典等
def name_num(a,b):
name = {'first':a,'last':b}
return name
name = name_num('C','oys')
print(name)
#输出结果:{'first': 'C', 'last': 'oys'}
传递任意数量的实参
- 形参名top中的星号让Python创建一个名为top的空元组
def coffee(*top) :
print(top)
coffee('coffee')
coffee('milk','coffee','suger')
#可以借助循环更好的输出结果
函数也是 “对象”. 一个函数和一个数字, 字符串一样, 都可以定义 “别名” 来引用它.
类
# 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()+"rolled over!")
# """三引号可以当注释"""
#
# my_dog = Dog('WILLe',6)
# print("my dog's name is "+my_dog.name.title()+".")
# print("My dog is " + str(my_dog.age) + "years.old.")
class Car(object):
"""一次模拟汽车的简单尝试"""
def __init__(self,make,model,year):
self.make = make
self.model = model
self.year = year
self.oldmeter_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.oldmeter_reading)+"miles on it")
def updata_odmeter(self,mileage):
if mileage >= self.oldmeter_reading:
self.oldmeter_reading = mileage
else:
print("You can't roll back an odomter!")
def increment_odometer(self,miles):
self.oldmeter_reading += miles
# my_car = Car('audi','64',2016)
# print(my_car.get_descriptive_name())
# init函数为什么使用__就没有报错,而使用_就发生了报错?
# 结论:init函数前后个有两个下划线
# 继承
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 s',2016)
print(my_tesla.get_descriptive_name())
my_tesla.describe_battery()
重写
class Car():
"""一次模拟汽车的简单尝试"""
def __init__(self,make,model,year):
self.make = make
self.model = model
self.year = year
self.oldmeter_reading = 0
def get_descriptive_name(self):
long_name = str(self.year)+' '+self.make+' '+self.model
return long_name.title()
# 对于父类的方法,只要它不符合子类模拟实物的行为,都可以对其重写
# 为此,可在子类定义一个与要重写的方法同名的方法
# 这样python将不会考虑父类方法,而只关注子类的方法
# 将实例作为属性
class Battery():
"""一次模拟电动汽车电瓶的简单尝试"""
def __init__(self, battery_size=70):
"""初始化电瓶的属性"""
self.batterya_size = battery_size
def describe_battery(self):
"""打印一条描述电瓶容量的信息"""
print("This car has a " + str(self.batterya_size) + "-kwh battery")
class ElectricCar(Car):
"""电动汽车的独特之处"""
def __init__(self,make,model,year):
"""初始化父类的属性"""
super().__init__(make,model,year)
"""初始化电动汽车特有的属性"""
self.battery = Battery()
my_tesla = ElectricCar('tesla','model s',2016)
print(my_tesla.get_descriptive_name())
my_tesla.battery.describe_battery()