python基础学习(五)

#############函数模块##########

1.什么是模块? 

所有以.py结尾的都可以认为是一个模块,逻辑上组织python代码(函数,变量,类)

2.导入模块的3种方式

- import cacul
print cacul.divi(5,2)

- from cacul import add
print add(2,3)

- from cacul import sub as mysub
print mysub(3,2)

3.导入模块的灵活应用

from cacl import sub,add

4.路径搜索和搜索路径

路径搜索强调搜索的动作

搜索路径强调搜索到的路径

5.添加一路径,让路径搜索时导入相应的自定义模块

import sys

print sys.path

sys.path.append('')

sys.path.insert(0,'')

路径搜索

6.模块的分类

1.内置模块(os,sys,dnspython,socket,time,execl)

2.开源模块(BeautifulSoup,flask,django,css,html,bootstrap,node.js)

3.自定义模块

############面向对象############

class Animals(object):   ##定义类
      cn = 'china'     ##类变量
      def __init__(self,name,age): ##构造函数,后面跟你要传递的参数,实例化过程中执行的操作
    self.name=name        ##self就是实例化的变量名,self.name是实例化属性,静态属性
    self.age=age
    self.__gender=gender    ##私有属性
      def eating(self):            ##方法,与函数唯一的区别self,动态属性
    print '%s is eating..'%self.name
      def drinking(self):
    print '%s is drinking...'%self.name
      def __hello(self):    ##私有方法
    print 'hello ...'
      def __del__(self):    ##数据库断开

    print 'that's all ,game over'

####1.封装性:私有方法和私有属性

####2.继承:子类获得了父类的所有方法

####3.多态:子类和父类的同名方法,只执行子类的进行覆盖
#继承策略:广度优先策略(效率高)
#深度优先: C一直找父类的方法,如果没有找到相应的方法,再去找和C在同一层的类
class A:        # 新式类(object)和经典类
    def hello(self):
        print 'in the A.......'

class B(A):
    def hello(self):
        print 'in the B.......'
    #pass

class C(A):
    pass

    # def hello(self):
    #   print 'in the C.......'   

class D(C,B):
    pass
    # def hello(self):
    #     print 'in the D.......'

d = D()
d.hello()

#######多继承之间的关系

python基础学习(五)python基础学习(五)


##########示例练习:#############

#!/usr/bin/env python
# coding:utf-8
_author_ = 'hxr'


class School(object):
    teacher = []
    courses = []
    classes = []

    def __init__(self, name):
        self.name = name

    def add_clas(self, classes):
        self.classes.append(classes)
        self.classes

    def add_tea(self, teacher):
        self.teacher.append(teacher)

    def add_cours(self, courses):
        self.courses.append(courses)

    def view(self):
        print self.courses


class Course(School):
    def __init__(self, course_name, time='0', price='0', info='0'):
        self.course_name = course_name
        self.time = time
        self.price = price
        self.info = info

    def view(self, course_name):
        for i in self.courses:
            if course_name == i:
                print '''  #####%s#####
        1.上课周期:%s
        2.价格:%s
        3.课程简介信息:%s
        ''' % (self.course_name, self.time, self.price, self.info)
        if i == self.courses:
            print '课程不存在'


class Class(School):
    class_num = {}

    def __init__(self, name, course, teacher='hello'):
        self.name = name
        self.course = course
        self.teacher = teacher

    def add_class_num(self, stu_name, name):
        self.class_num[name] = stu_name


sc1 = ['西安邮电大学', '西安理工大学']
print "选择学校:"
for i, j in enumerate(sc1):
    print '%s  :%s' % (i, j)
choice_sc = raw_input('输入选项;')
if choice_sc == '0':
    flag = 0
    school_post = School(sc1[0])
    school_post.add_cours('Linux')
    school_post.add_cours('Rhce')
    school_post.add_cours('Python')
    print school_post.courses
elif choice_sc == '1':
    flag = 1
    school_math = School(sc1[1])
    school_math.add_cours('C')
    school_math.add_cours('Java')
    print school_math.courses
if flag == 0:
    school_name = school_post
elif flag == 1:
    school_name = school_math

menue = '''  欢迎进入%s
                1.学校视图
                2.讲师视图
                3.学员视图
                4.退出
''' % sc1[int(choice_sc)]
menue_sc = '''  学校视图
选择学校
        1,创建班级
        2,创建讲师
        3,创建课程
'''
menue_te = '''  讲师视图
        1.查看班级
        2.查看班级成员
'''
menue_st = '''  学员视图
        1.注册
        2.报名缴费
        3.选择班级
'''


def sc(num):
    if num == '1':
        clas_nam = raw_input('请输入班级名:')
        school_name.add_clas(clas_nam)
        print '当前存在班级;%s'%school_name.classes
    elif num == '2':
        clas_tec = raw_input('请输入讲师名:')
        school_name.add_tea(clas_tec)
        print '当前存在讲师为:%s'%school_name.teacher
    elif num == '3':
        clas_cou = raw_input('请输入课程名:')
        school_name.add_cours(clas_cou)
        course_name = Course(clas_cou)
        print '当前存在课程为:%s'%school_name.courses
        course_name.view(clas_cou)
        print '创建成功!'

    else:
        print '请输入正确'


def st(num):
    if num == '1':
        print '当前存在班级:%s'%school_name.classes
        name = raw_input('输入姓名:')
        class1 = raw_input('输入班级名称:')
        if class1 in school_name.classes:
            global stu
            stu = Class(name, class1)
            stu.add_class_num(name, class1)
            print '注册成功!'
        else:
            print '该科不存在'
    elif num == '2':
        print '报名缴费成功'
    elif num == '3':
        for i in school_name.classes:
            print '班级名称:%s' % i

    else:
        print '请输入正确'


def te(num):
    test=Class.class_num
    if num == '1':
        for i in school_name.classes:
            print '班级名称:%s' % i
    elif num == '2':
        if test:
            for i, j in stu.class_num.items():
                print '学生名称:%s  班级:%s' % (j,i )
        else:
            print '当前不存在用户'
    else:
        print '请输入正确'


choice = ''
while 1:
    print menue
    choice = raw_input("请输入选项;")
    if choice == '1':
        print menue_sc
        num = raw_input('输入选项:')
        sc(num)
    elif choice == '2':
        print menue_te
        num = raw_input('输入选项:')
        te(num)
    elif choice == '3':
        print menue_st
        num = raw_input('输入选项:')
        st(num)
    elif choice == '4':
        exit()
    else:
        print '请输入正确选项!'