python面向对象基础

类和对象

  简单的说,类是对象的蓝图和模板,而对象是类的实例。这个解释虽然有点像用概念在解释概念,但是从这句话
我们至少可以看出,类是抽象的概念,而对象是具体的东西。在面向对象编程的世界中,一切皆为对象,对象都
有属性和行为,每个对象都是独一无二的,而且对象一定属于某个类(型)。当我们把一大堆拥有共同特征的对
象的静态特征(属性)和动态特征(行为)都抽取出来后,就可以定义出一个叫做“类”的东西。
函数的写法
"""
标识    函数名字 ():
    有冒号就要缩进一个tab
在Python中所有的函数都有返回值,如果你没有给予return则默认返回出None,如果你给予了,则返回你给予的值
""""
def    funcName():
    .....
    return ....
  
"""
标识    类名      ()     :
    有冒号就要缩进一个tab
"""
class  className(object):
    ........
"""
1.导入库, import 库名
2. for 循环,如果计数的情况则使用
        开始  结束  不长
    range的区间是一个前闭后开.
    range(start,end,[step])
3. 格式化输出
3.1 %-->%(),%d后接整型,%f后接浮点,%s后接字符串.
3.2 {}-->format(),它可以直接传入任何类型,然后格式化输出.

4.print 控制台(terminal)打印
4.1 end 以什么方式结尾,默认以换行符"\n"
4.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 不是一个参数

定义类

# object 不是一个参数
"""
定义类只有两步:
1. 使用标识符class ClassName(object):
2. 重写__init__函数,但是需要记住,一定要打上一个"self"的标记
   因为后面会学到继承,当在继承的时候可能就会有函数名相撞的情况.
   或者说,类中会含有多个变量,多个函数,那么就需要使用"self"手段去区分.
3. 类的传参是在__init__函数中的.需要注意的是,如果你的参数可能被多个函数都使用,那么
   你才在__init__函数中去定义参数
"""
class Student(object):
    def __init__(self,name):
      	# 多个打印用","进行分隔.
        print(name)


Student(100)

在Python中可以使用class关键字定义类,然后在类中通过之前学习过的函数来定义方法,这样就可以将对象的动态特征描述出来,代码如下所示。

# 在Python2中这个object一定要写,但是在Python3中可写可不写(默认就继承了object).
# 
class Student(object):
    # __init__是一个特殊方法用于在创建对象时进行初始化操作
    # 通过这个方法我们可以为学生对象绑定name和age两个属性
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def study(self, course_name):
        print('%s正在学习%s.' % (self.name, course_name))

    # PEP 8要求标识符的名字用全小写多个单词用下划线连接
    # 但是很多程序员和公司更倾向于使用驼峰命名法(驼峰标识)
    def watch_av(self):
        if self.age < 18:
            print('%s只能观看《熊出没》.' % self.name)
        else:
            print('%s正在观看岛国爱情动作片.' % self.name

实例

王者荣耀

print("欢迎来到王者荣耀")
import numpy as np
import time
class renji(object):
    def __init__(self):
        res =input("选择模式")
        print(res)
    def renwu(self):
        print('请选择英雄\n','张飞','关羽','赵云')
        res1 = input('>>')
        if res1==('张飞'):
            print('战力:1000  \n防御:600')
        elif res1==('关羽'):
            print('战力:2000  \n防御:350')
        elif res1==('赵云'):
            print('战力:3000  \n防御:750')
        else:
            print("没有该英雄")
    def diannao(self):
        print("电脑人物选择")
        res2 = np.random.choice(['张飞','关羽','赵云'])
        if res2==('张飞'):
            print('张飞\n战力:1000  \n防御:600')
        elif res2==('关羽'):
            print('关羽\n战力:2000  \n防御:350')
        elif res2==('赵云'):
            print('赵云\n战力:3000  \n防御:750')
        else:
            print("没有该英雄")
    def jindutiao(self):
        res3=input(">>")
        if res3==('开始'):
            print('正在进入游戏请稍后')
            for i in range(1,101):
                time.sleep(0.1)
                print('%s%d%% \r'%('>'*i,i),end="",flush=True)
        else:
            print("完成取消")
    def youxi(self):
        print('\n敌军还有五秒到达战场,请做好准备!!!!!!!!!!!!\n 全军出击!!!!!!!!!')

        
        
a= renji()
a.renwu()
a.diannao()
a.jindutiao()
a.youxi()

“”"
计算五角数
“”"

"""
计算五角数
"""
def gan():
    for i in range(1,101):
        a=i*(3*i-1)/2
        print("%5d" % a,end="   ")#打印结果为5位整数,当整数的位数不够5位时,在整数左侧补空格
        if(i % 10 ==0):#打印结果每行显示10个
            print("")
gan()

求一个整数个数字的和


"""
求一个整数个数字的和
"""
def nnn(num):
    return sum(int(i) for i in str(num) if i.isdigit())
    if __name__ == '__main__':
        num = input('请输入一个整数: ')
        print('{} 每位数相加之和是: {}'.format(num, nnn(num)))
nnn(4567)

“”"

3、用户输入三个数字,升序排列

“”"

def number(num1,num2,num3):
    print("Enter three numbers:", num1,num2,num3)
    if num1>num2 and num1>num3:
        if num2>nmu3:
            print("The sorted numbers are:",num3,num2,num1)
        else:
            print("The sorted numbers are:",num2,num3,num1)
    elif num2>num1 and num2>num3:
        if num1>num3:
            print("The sorted numbers are:",num3,num1,num2)
        else:
            print("The sorted numbers are:",num1,num3,num2)
    elif num3>num1 and num3>num2:
        if num1>num2:
            print("The sorted numbers are:",num2,num1,num3)
        else:
            print("The sorted numbers are:",num1,num2,num3)
number(8,56,13)
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值