一切皆对象
面向对象的三大要素
- 封装:同一功能的放一起
- 继承
- 多态:多种形态
类
class Classname
调用:class = Classname()
函数的写法
//标识 函数名字():
def funName():
//有冒号就要缩进一个Tab,或四个空格
......
//在Python中所有的函数都有返回值,如果你没有给予return则默认返回出None,
//如果你给予了,则返回你给予的值
return.....
//标识 类名
class Classname(object):
......
- 例如:输入一个数字,返回这个数字的平方
def joker(x):
return x ** 2
print(joker(100))
- 进度条
import time
def joker():
for i in range(1,101):
time.sleep(1)
print('%d'%i)
print('%d%%\r'%('#'i,i),end=" ",flush=Ture)
joker()
知识点
- 导入库,import+库名
- for循环 计数情况则使用 range(start,end,[step])
range的区间是一个前闭后开:例如1-100 写成(1,101)
time.sleep(1) //沉睡一秒 - 格式化输出
(1)%——$%() %d后接整型,%f接浮点型,%s接字符串
(2){}——format(),它可以直接传入任何类型,然后格式化输出 - print 控制台(terminal)打印
(1)end 以…方式结尾,默认以换行符"\n"结尾
(2)flush刷新缓冲区
//类中的函数可以有自己的参数
//当你想共享这个参数的时候,那么就打上"self"的印记.
class A(object):
def __init__(self,a):
self.a = a
def B(self,b):
self.b = b
print(b)
def C(self):
print(self.b)
J = A(1000)
J.B(10)
J.C()
定义类
- 要点:
object不是一个参数
self只是一个标识
class Student(object):
def __init__(self,name):
# 多个打印用","进行分隔.
print(name)
Student(100)
- 定义类只有两步:
(1) 使用标识符class ClassName(object):
(2) 重写__init__函数,但是需要记住,一定要打上一个"self"的标记
因为后面会学到继承,当在继承的时候可能就会有函数名相撞的情况.
或者说,类中会含有多个变量,多个函数,那么就需要使用"self"手段去区分.
(3)类的传参是在__init__函数中的.需要注意的是,如果你的参数可能被多个函数都使用,那么
你才在__init__函数中去定义参数- 例:输入两个数,打印这两个数的和,差,乘,除,取余,平方
class func(object): def __init__(self,a,b) print(a+b,a-b,a*b,a/b,a%b,a**2,b**2) func(3,4)
- 例:输入一个年龄,如果年龄大于18,可观岛国片,<=18动画片
def watch_av(self): if self.age < 18: print('%s只能观看《熊出没》.' % self.name) else: print('%s正在观看岛国爱情动作片.' % self.name)
- 要点:
(1) 在Python2中这个object一定要写,但是在Python3中可写可不写(默认就继承了object)
(2) __init__是一个特殊方法用于在创建对象时进行初始化操作
(3)在类中,一切的变量和函数都要印记(self) - 王者荣耀案例:
class hero(object): def __init__(self,mode): self.mode=mode def check1(self): if self.mode == 0: print("人机") elif self.mode == 1: print("多人") else: print("对战") def check2(self): res=input("输入") print(res) def check3(self): print("请选择英雄:典韦,赵云,鲁班") self.mode=input(">>") def check4(self): if self.mode=="典韦": print("典韦:战斗力-2899,防御力-3444") elif self.mode=="赵云": print("赵云:战斗力-3455,防御力-4788") elif self.mode=="鲁班": print("鲁班:战斗力-3232,防御力-3277") def check5(self): import numpy as np res=np.random.choice(["典韦","赵云","鲁班"]) print(res) def check6(self): print("是否开始游戏?") self.mode=input(">>") print(self.mode) if self.mode=="yes": print("正在加载中") else: print("正在退出") name=hero(1) name.check1() name.check2() name.check3() name.check4() name.check5() name.check6()