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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

python基础班已经接近尾声,以下是我在上课过程中记录的一些我认为比较重要的知识点,供大家参考。
第一天:
1.什么是python
优点:简单、可读性高、适合短期开发
          解释型语言,跨平台好
缺点:运行速度慢
          中文资料较少
设计哲学:
     简单  优雅  
开源
python是完全面向对象语言
2.写下第一条python语句,hello world!(输入输出)
什么是报错,错误的类型
1.bug  2.手误
单词拼写错误
name error 命名错误
syntax error 语法错误
indentation error 缩进错误  多了空格
报错的原因:每一行代码只负责完成一个动作
python2.xpython3.x区别:python2.x不支持中文
解决方案:第一行代码-*-coding:utf-*-  可以使python2.x可以使用中文
3.python的交互方式---运行方式
1.使用终端命令去运行  cmd进入终端,输入python
2.ipython  有自动补全功能,缺点:不能够保存
   pip install ipython 安装ipython
3.pycharm 集成开发环境 IDE
pycharm 调试工具  debug 断点调试
第二天:
什么是注释
解释说明代码,让其他程序员能够看懂
单行注释
#XXXX   一个#号加注释语句
多行注释
"""XXXX"""  连续敲三个引号,里面添加注释内容
1.定义函数的介绍
2.定义方法的介绍
算术运算符
最普遍的4则运算符  加减乘除 + - * /
// 取整   8//3=2
% 取余   9//3=0
** 幂  2**3=8  2的三次方
变量
变量定义
变量的类型
变量的命名
type函数,可以查看数据类型
变量类型之间的计算
数字类型和数字类型可以相加
字符串和字符串类型可以 +
数字类型之间可以直接相加,包括boolen类型
函数:一个功能代码的封装
目前学习了三个函数
print  输出
type   识别函数类型
input  输入  通过用户输入键盘的内容,input所接受的数据类型都是字符串型
input:输入  
变量名= input("提示信息")
类型转换函数
int()将字符串转换成整数
float()将字符串转换成浮点型
注意:字符串类型不能直接相乘
字符型的数据需要添加双引号“”
格式化输出
%s 表示字符串
%d 表示整型
%f 表示浮点型
%% 表示%
标识符
1.标识符只能由字母数字下划线组成
2.不能以数字开头
3.不能与关键字重名
关键字有哪些:关键字是Python语言提前内置好的标识符,关键字具有特殊的功能和含义,
不能定义与关键字相同名字的关键字
import 导入“工具包”
第三天:
学习目标:判断语句  if ..elif...else
定义:1.如果条件满足,则完成某件事情
2.如果条件不满足,则完成另一件事情,或者什么事情都不做
条件成立,执行A
条件不成立,执行B
注意:代码的缩进为一个Tab键,或者4个空格--建议使用空格
Python开发中,Tab和空格不要混用!
程序格式:
if 要判断的条件:
4个空格  执行的语句
    else  执行的语句
例:if(条件语句):
       输出
    else:  
          输出
比较运算符
==判断是否相等
= 判断是否不相等
===的区别
==是等于的意思
= 是赋值,将等号右边的值赋值给左边
快捷键:ctrl+/  单行注释
运行 shift+ctrl+f10 1
逻辑运算符
  
and  or  not
and:1.两个条件同时满足,返回true
2.只要有一个不满足,就返回false
  or1.两个条件只要有一个满足,返回true
2.两个条件都不满足,返回false
not:取反,原来是真的,变成假的。原来是假的,变为真的。对条件取反。
elif (平级判断)
语法结构:
    if  条件判断语句1
             代码1
    elif 条件判断语句2
              代码2
     elif 条件判断语句3
              代码3
     else 代码4
注意:elifelse都不能单独使用,必须和if一起使用。
if的嵌套语句(在之前条件满足的情况下,再判断下一个条件)
应用场景:在之前的条件满足的前提下,再增加额外的判断
除了缩进不一样,其他都一样
import 导入工具包
random 随机整数
random.randint(a,b) ,随机a<=n<=b之间的数字
1.a=10,b=30,n大于等于10,小于等于30
2.a=10,b=10,n一直等于10
3.a=10,b=5,报错,前面一个数a必须大于后面的数b
第四天:
类是一系列事物的统称,同类事物必定具有相同的特征。
特征分类:
     状态                  变量(成员变量)属性
     行为                  方法(成员方法)函数
                             统称:类的成员
类定义
定义格式一:                  calss  Cat:
                                            pass  (pass代表什么都还没写,类里面为空)
    class 类名:
    ____pass
定义格式二:
      class 类名:
      ____成员
类名命名规范:大驼峰命名规则(例:TypeName  每一个单词首字母大写)
函数命名规则:小驼峰命名规则(例:cater 多个单子组合首字母小写,第二个字母的首字母大写)
创建对象:
   格式:
         变量名 = 类名()
注意:对象不限制数量
类成员包括:
成员变量
成员方法
成员变量的定义与调用
定义格式:
class  类名:
____def ___init__(self)
____  ____self.变量名 = 1
____  ____self.变量名 = 2
____  ____self.变量名 = None
____  ____self.变量名 = None
init(构造方法) 自定义参数
创建对象并进行赋值
       def __init__(self,形参列表):
        self.属性名1 = 形参 1
        self.属性名2 = 形参 2
调用格式:
       取值:对象名.变量名
       赋值:对象名.变量名 =
成员方法定义与调用
定义格式:
class 类名:
____def 方法名(self):
________方法体
调用格式:
对象名.方法名()
定义格式二:
class 类名:
____def 方法名(self,形参1,形参2......)
________方法体
调用格式二:
       对象名.方法名(实参1,实参2......)
str方法
在使用print函数打印对象时,将自动调用__str__()方法。
该方法无需手工调用即可执行
__str__()方法定义格式:
        def__str__(self):
                  return 打印对象时显示的信息字符串
成员方法调用成员变量:
在成员方法中,访问类的成员变量,用self. 进行
注意:self仅在申明时占位,无需传递具体参数
iphone = phone(80)
传递的参数是传递给 init
里面的self代表内存地址
实例化 对象
iphone = phone()
面向对象有三大特性:
1.封装:私有属性,私有方法
通过私有化成员,可以防止类的成员进行访问
私有属性定义格式:
            self.__属性名 =
通过封装,可以对类中设定访问保护的成员开放访问控制权限。
达到保护数据不被非法访问的目的。
封装定义格式
      访问器(get方法)
                  def get_变量名(self):
                                 return__变量名
       修改器(set方法)
                  def set_变量名(self,形参):
                              self.__变量名 = 形参
私有化成员:通过私有化成员,可以防止对类的成员进行访问
私有属性定义格式:
          self._属性名 =
2.继承
3.多态
第五天:
类、继承、多态:
object类是所有类的父类
        class 类名(object
                def 方法名:
                方法体
多继承符合左原则(Father,Mother
继承中,父类的私有变量和私有方法无法被子类继承
鸭子类型(stupidfoolish):对象在语法层面满足调用关系,实际不具有实际的对象形态,称该对象此时具备
鸭子类型
多态:描述对象多态的性质。对象的多态,一个对象有多个方法,必须要有继承的概念在里面,从多个对象继承相应的功能过来
多调用的方法与需要的方法内容不一致,就是鸭子类型。
self 对应的是对象的内存地址
cls  对应的是类的内存地址
面向对象中的三种方法:
类方法、成员方法、静态方法
类方法格式:
@classmethod
def 方法名(cls:
        方法体
成员方法:
def  方法名(self:
        方法体
静态方法:
@staticmethod
def 方法名(形参)
        方法体
类方法注意事项:
类方法中不允许使用成员变量和成员方法
成员方法中允许使用类变量和类方法,推荐使用类名调用
类名.方法名()
第六天:
tuple 元组
True向数字方向延展 是1,向字符串方向延展是 字符串"True"
强制类型转换bool 字符串里面什么都没有“”转换成False,
字符串里面有数据" sss"转换成True
字典的命名规则是  key value合一,简称键值
{"name": "李红", "age": "21"}
range(步调数)
创建格式一:
range(m)      生成0 m-1的整数列表
创建格式二:
range(m,n)     生成m n-1的整数列表 (m<=x<n
创建格式三:
range(m,n,s)    生成m n-1 的整数列表,每个间隔s(1.3..5.7)
range作用
配合for循环构造指定次数的循环
for  _  in range(....):
_____循环执行的代码
7天:
切片语法:
公共语法3
列表推导式:
(表达式  for循环 if 判断)
list1=[i for i in range(a,100)]
print(list1)
if i5%2 ==0 and i%7 ==0
print(list1)
字典中 item 是键值对
字符串判断操作
is判断方法
startswitch   判断是否是哪个字符开头 (结果是true or False
例子:name = "张三丰"
print(name.startswith(""))
endswitch   判断是否是哪个字符结尾(结果是true or False
例子:filename = "1.jpg"
if filename.endswith(".jpg")  or filename.endswitch(".png")
print("这是一个图片")
格式转换类型
经常使用,有注意,使用性比较强
strip(占位符)    去字符串左右两侧占位符(用户输入数据有可能误操作,输入空格,这个时候就可以使用)
lstrip(占位符)    去字符串左侧占位符
ljust(长度,占位符)   左占位右侧补占位符
rjust(长度,占位符)   右占位左侧补占位符
center(长度,占位符)  两侧补占位符
zfill(长度)          左侧补0
注意: 省略占位符,默认为空白占位符
查询操作(判断语句的重点)
find 语句,没有找到返回 -1
8天:
函数的参数(形参、实参)
1.*args   可变参数
2. sep 分隔符
     print(a,"b","c",sep="+")
结果:a+b+c
3.字典参数(**kw args
形参里面没有的形参,在实参中出现,用 **kwargs,输出为字典格式
作用:函数/方法多层级调用间的关键字参数传递
递归函数:
函数体内出现对自身函数的调用
递归的终止条件叫递归出口
函数调用的最大层级是1000
引用:查看数据在内存中的存储位置
print(id())
-5256python中的常用地址
在内存中已经分配好,不需要再分配地址,其他数字在赋值时要重新分配内存地址
__sizeof__查看内存占用的size空间
可变类型和不可变类型
可变类型:        不可变类型
列表                字符串
集合                元组
字典                数值型
对象                布尔型

0 个回复

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