A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

计算机的概念:
  计算机俗称电脑,是现代一种用于高速计算的电子机器
计算机的组成:
  硬件系统:运算器 控制器 存储器 输入设备 输出设备
软件系统:系统软件 应用软件
Python语言:
  Python语言:Python语言是一种面向对象的解释型计算机程序设计语言
  Python的优点:简单 开源 丰富的库 可扩展性 可移植性 面向对象 解释性
  Python的缺点:运行速度慢 中文资料较少 构架选择多
第一个程序:Hello python
         Print(“hellopython”)
第一个程序常见的BUG:
针对BUG需要具备以下能力:
         具备识别BUG的能力:多看
         具备分析BUG的能力:多思考 多查阅资料
         具备解决BUG的能力:多尝试 多查阅资料 多记录 多积累
常见BUG类型:
         命名错误:NameError
         缩进错误:IndentationError
         语法错误:SyntaxError
Python基础语法:
Python变量:
  概念:描述计算机中的数据存储空间
  作用:在计算机内存中保存数据
  保存数据的格式:变量名 = 值
  使用的数据格式:变量名
变量命名的规则:
  不能以数字开头
  不能与关键词重名
  只能由数字,字母,下划线组成
  区分大小写
Python注释:
  单行注释:添加/取消快捷键为Ctrl + /
  多行注释:”””说明性文字信息”””
算术运算符:
  +  加   计算两个数的和
  -  减   计算两个数的差
  *  乘   计算两个数的乘积
  /  除   计算两个数的商
  // 整除 两个整数相除后,取结果的整数部分
  %  取余 两个整数相除后,取结果的余数部分
  ** 乘方 计算ab次方
算数运算优先级:
   乘方 > 乘、除、整除、取余 > 加、减
  相同等级的运算顺序为从左到右
  可以使用括号改变运算顺序
变量类型:
  类型特征:变量的类型在变量使用过程中随时发生变化,以最后一次执行 = 操作的结果为准
  类型获取:使用type(数据)即可获取数据对应的类型
类型:
  int 整型  表示所有的整数
  float  浮点型 表示所有的小数
  bool  布尔型  表示逻辑值
  str  字符串  表示字符串信息
赋值运算符:
  =       赋值         a=b,将b的值给a
  +=    加后赋值        a+=b,将a+b的值给a
  -=     减后赋值        a-=b,将a-b的值给a
  *=    乘后赋值        a*=b,将a*b的值给a
  /=     除后赋值        a/=b,将a/b的值给a
  //=   整除后赋值    a//=b,将a//b的值给a
  %=   取余后赋值    a%=b,将a%b的值给a
  **=  次方后赋值    a**=b,将ab次方的值给a
赋值运算符注意事项:
  基本赋值运算 = 操作,左侧只能是变量,右侧可以是任意数据或变量
  特殊赋值运算的左侧只能是变量,右侧可以是变量,也可以是数字
字符串运算:
  字符串连接运算:
      字符串之间可以使用 + 运算符完成多个字符串之间的拼接操作
字符串反复连接:
  字符串可以使用 * 运算符来完成单个字符串的连续拼接操作
字符串使用注意事项:
  字符串连接运算 + 不能在字符串类型与其他类型间进行操作
While循环语句:
  循环概念:循环是程序设计语言中反复执行某些代码的一种计算机处理过程
  While循环的作用:重复执行某些代码
  循环变量:循环变量是用于控制循环执行次数的变量,通常从0开始计数
  死循环:如果循环语句未设置合理的退出条件,则循环语句将构成死循环,程序将永久执行下去
循环的终止和跳出:
  Break:
  break可以用于终止循环的执行,当程序执行到break语句后,程序将跳出循环,执行循环语句后面的代码
Continue:
  continue可以用于提前结束本轮循环的执行,当执行到continue语句后,程序将跳到判定循环是否向下执行的条件处,进行下一轮循环是否执行的判定与后续代码执行
注意事项:
  breakcontinue必须出现在循环体中   
循环嵌套:
  循环嵌套概念:
    while循环中重复执行的代码又包含了另一个while循环。
循环嵌套的基本语法:
         while 条件:                        
                  ____while 条件:                        
                  ________反复执行的代码           
                         ……                     
                      ……      
注意事项:
  break与continue仅能控制其所在的循环结构,不能控制其他循环结构
面向对象:
  面向对象的概念:面向对象是一种编程思想,是对现实世界中的事物进行抽象的方式。应用到代码编程设计中,是一种建立现实世界事物模型的方式
面向对象和面向过程的区别:
  面向过程关注的是完成工作的步骤,面向对象关注的是能完成工作。面向对象是在完成工作的时候关注哪些个体能够完成对应的工作,找到对应的个体即可完成对应任务
类:
  类的概念:
    类是一系列事物的统称,同类必定具有相同的特征。日常事物的特征根据特性分为状态和行为,对应到类中是变量和方法
特征分类:
                  状态 à 变量(成员变量)
                  行为 à 方法(成员方法)
                                    统称:类的成员
类定义语法格式:
Class  类名:
           Pass
说明:
  pass是空语句,不具有任何意义,仅为了保持程序结构完整性
类的命名规则:
  类名命名规范:满足大驼峰命名规则
对象:
  对象的概念:对象是类的具体表现形式,是实际存在的个体。(类是一系列事物的统称)
创建对象语法格式:对象名 = 类名()
成员变量:
  成员变量的概念:成员变量用于描述对象的固有状态或属性
定义成员变量语法格式(公有属性/公有变量):
class 类名:         
def__init__(self):
self.变量名1 = 值1
self.变量名2 = None
公有变量与独有变量的区别:
  公有变量在__init__方法中声明,每个对象都具有该变量
  独有变量在创建对象后声明,只有当前对象具有此变量
  定义对象的独有变量时,如果独有变量名与公有变量名相同,视为修改公有变量的值;如果独有变量名与公有变量名不相同,视为定义新的独有属性
  None含义是为空,表示没有具体的数据
变量的调用格式:
         取值:对象名.变量名
         赋值:对象名.变量名 = 值
成员方法:
  成员方法的概念:成员方法用于描述对象的固有行为
定义成员方法的语法格式:
  格式一(无参方法):
    class 类名:        
        def 方法名(self):
           方法体
  格式二(有参方法)
    class 类名:         
        def 方法名(self,形参1,形参2,…):
           方法体
调用成员方法的语法格式:
    格式一(调用无参方法):
    对象名.方法名()
  格式二(调用有参方法):
    对象名.方法名(实参1,实参2,…)
封装:
  封装的作用:
    封装操作可以对受访问保护的成员进行功能开放的控制,达到保护数据不被非法访问的目的
  定义私有变量语法格式:
    self.__属性名 = 值
  定义私有方法语法格式:
    def __方法名(self,形参1,形参2,…):
      方法体
  标准封装语法格式:
    变量私有化格式:
      self.__属性名 = 值
    提供公共的访问器格式:
      def get_属性名(self):
        return self.__属性名
    提供公共的修改器格式:
      def set_属性名(self,属性名):
        self.__属性名 = 属性名
类变量:
  类变量的概念:
    类变量是定义在类中,不属于某个具体对象的特征,被所有对象共同使用的特征
  定义类变量语法格式:
    class 类名:
      变量名 = 值
  调用类变量语法格式:
    赋值格式:
      类名.类变量名 = 值
    取值格式:
      类名.类变量名(推荐)
        对象名.类变量名(不推荐)
继承:
  继承的概念:
    继承继承描述的是一种类间关系,一个类A从另一个类B获取成员信息,称类A继承自类B。
    提供成员信息的类称父类(基类),获取成员信息的类称子类(派生类)。


  继承的作用:子类可以使用父类的成员(成员变量,成员方法)
  继承语法格式:
    Class 类名 (父类名):
      Pass
  注意事项:
    子类可以添加父类没有的成员

    父类的私有成员不可以被继承
重写:
  重写的概念:
    重写指在子类中定义与父类相同名称的成员方法
  重写的作用:

    子类对父类的成员方法进行重写后,使用子类对象调用该方法时,将执行子类中重写后的方法
在子类中访问父类被重写的方法:
         格式一:
                  父类名.方法名(对象)
格式二:
                  super(本类名,对象).方法名()
格式三:(推荐)
                  super().方法名()

  
多继承:
  多继承的概念:
    一个类同时继承多个类,称为多继承
  定义多继承的语法格式:
    Class类名(父类名1,父类名2…):
      Pass
多继承关系中访问父类成员冲突:
  多继承关系中,当多个父类具有同名的成员,子类调用时先调用继承关系中我一个声明的类的成员

多态:
  多态的概念:
    一个对象具有多种形态,在不同的使用环境中以不同的形态展示其功能,称该对象具有多态特征。

  鸭子类型:
    鸭子类型是一种特殊的调用现象,当对象在语法层面能够满足调用关系,但对象并不具有对应的对象形态,称该对象此时具备鸭子类型
    鸭子类型是一种特殊的多态表现形式


  注意事项:多态通常发生在继承关系的基础之上

列表  列表的概念:    列表是一种存储大量数据的存储模型。  列表的特点    列表具有索引的概念,可以通过索引操作列表中的数据。列表中的数据可以进行添加、删除、修改、查询等操作。  列表的基本语法
       创建列表:        变量名 = [数据1,数据2,……]
获取列表数据:    变量名[索引]

修改列表数据:    变量名[索引] = 值


元组  元组的概念    元组是一种存储固定数据的存储模型。  元组的特点    元组具有索引的概念,可以通过索引操作元组中的数据。元组中的数据可以进行查询操作,但不能进行添加、删除、修改操作。  元组的基本语法
    创建元组:变量名 = (数据1,数据2,……)
    获取元组数据:变量名[索引
注意事项
  元组中的数据如果是非引用类型数据,不允许修改
  元组中的数据如果是引用类型对象,该对象不允许替换,而对象的属性值可以

集合  集合的概念    集合是一种存储大量无序不重复数据的存储模型。  集合的特点    集合没有索引的概念。集合中的数据可以进行添加、删除等操作。  集合的基本语法
                              
    创建集合:变量名 = {数据1,数据2,……}

字典  字典的概念    字典是一种使用“键值对结构”存储数据的存储模型。  字典的特点    字典不具有索引的概念,字典使用键key代替索引,可以通过键操作字典中存储的数据值value。字典可以根据键key进行数据的添加、删除、修改、查询操作。字典的基本语法  创建字典:        变量名 = {键1:值1,键2:值2,……}  添加数据:        变量名[键] = 值   (字典中没有对应的键)    获取数据:        变量名[键]  修改数据:        变量名[键] = 值   (字典中存在对应的键)注意事项:  字典中的键是唯一的




# 老师随机分配办公室的程序题
# 输入办公室个数
# 输入老师的个数
# 然后将了老师分配到办公室,保证每个办公室至少一个
import random
# 定义办公室和老师的初始值
room_nums = 0
teacher_nums = 0
# 判断条件
while True:
   rooms = int(input("请输入办公室的个数:"))
   teachers = int(input("请输入老师的个数:"))
   if rooms <= teachers:
       room_nums = rooms
       teacher_nums = teachers
       break
   print("老师的数量少于办公室的数量,请重新分配")
# 定义办公室列表
room_list = []
while room_nums >= 1:
   room_list.append([])
   room_nums -= 1
# 定义老师的个数
teacher_list = []
while teacher_nums >= 1:
   teacher_list.append("teacher%s" % (teacher_nums + 1))
   teacher_nums -= 1
# 先把每个办公室中各安排一名老师
for room in room_list:
   # 从老师列表中随机取出
   index = random.randint(0, len(teacher_list) - 1)
   # 将取出的老师从列表中删除
   tec = teacher_list.pop(index)
   # 将老师添加到选出的办公室列表中
   room.append(tec)
# 把剩下的老师随机放入办公室中
for teacher in teacher_list:
   # 从办公室列表中随机抽取
   index1 = random.randint(0, len(room_list) - 1)
   # 将老师放入选中的办公室中
   room_list[index1].append(teacher)
print(room_list)



0 个回复

您需要登录后才可以回帖 登录 | 加入黑马