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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 深渊小虾米 初级黑马   /  2018-8-2 11:58  /  500 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

学习笔记
一、注释
单行注释: # 开头,# 右边的所有东西都被当做说明文字,而不是真正要执行的程序,只起到辅助说明作用
多行注释:要在 Python 程序中使用多行注释,可以用 一对 连续的 三个 引号(单引号和双引号都可以)
二、变量的基本使用
定义: Python 中,每个变量 在使用前都必须赋值,变量 赋值以后 该变量 才会被创建
等号(=)用来给变量赋值
= 左边是一个变量名
= 右边是存储在变量中的值
变量的类型:
数字型:
整型(int) 浮点型(float) 布尔型(bool)真 True 或非0   False 0 复数型complex
非数字型:
字符串(str) 列表(list) 元组(tuple) 字典(dict
不同类型之间的计算
1、数字型变量之间可以直接计算(True = 1 False = 0
2、字符串变量之间使用+拼接字符串
3、字符串变量可以和整数使用*重复拼接相同的字符串
4、数字型变量和字符串之间不能进行其他计算
类型转换函数
函数
说明
int(x)
将 x 转换为一个整数
float(x)
将 x 转换到一个浮点数
变量的格式化输出:
· Python 中可以使用 print 函数将信息输出到控制台
· 如果希望输出文字信息的同时,一起输出 数据,就需要使用到 格式化操作符
· % 被称为 格式化操作符,专门用于处理字符串中的格式
o 包含 % 的字符串,被称为 格式化字符串
o % 和不同的 字符 连用,不同类型的数据 需要使用 不同的格式化字符
格式化字符
含义
%s
字符串
%d
有符号十进制整数,%06d 表示输出的整数显示位数,不足的地方使用 0 补全
%f
浮点数,%.2f 表示小数点后只显示两位
%%
输出 %
· 语法格式如下:
print("格式化字符串" % 变量1)
print("格式化字符串" % (变量1, 变量2...))
三、变量的命名
标识符就是程序员定义的变量名、函数名
· 标示符可以由 字母下划线数字 组成
· 不能以数字开头
· 不能与关键字重名
关键字
· 关键字 就是在 Python 内部已经使用的标识符
· 关键字 具有特殊的功能和含义
· 开发者 不允许定义和关键字相同的名字的标示符
变量的命名规则
在定义变量时,为了保证代码格式,= 的左右应该各保留一个空格
Python 中,如果 变量名 需要由 二个多个单词 组成时,可以按照以下方式命名
a. 每个单词都使用小写字母
b. 单词与单词之间使用 _下划线 连接       
小驼峰命名法:第一个单词以小写字母开始,后续单词的首字母大写
大驼峰命名法:每一个单词的首字母都采用大写字母
四、判断语句
逻辑运算符
and:全真才为真,有假则为假
or: 有真就是真,全假才为假
not: 相反
elif语法
if 条件1:
    条件1满足执行的代码
    ……
elif 条件2:
    条件2满足时,执行的代码
    ……
elif 条件3:
    条件3满足时,执行的代码
    ……
else:
    以上条件都不满足时,执行的代码
    ……
if嵌套语法:
if 条件 1:
    条件 1 满足执行的代码
    ……
   
    if 条件 1 基础上的条件 2:
        条件 2 满足时,执行的代码
        ……   
        
    # 条件 2 不满足的处理
    else:
        条件 2 不满足时,执行的代码
        
# 条件 1 不满足的处理
else:
    条件1 不满足时,执行的代码
随机数处理: improt random  random.randint(0, 100)
五、运算符
算数运算符
运算符
描述
实例
+
10 + 20 = 30
-
10 - 20 = -10
*
10 * 20 = 200
/
10 / 20 = 0.5
//
取整除
返回除法的整数部分(商) 9 // 2 输出结果 4
%
取余数
返回除法的余数 9 % 2 = 1
**
又称次方、乘方,2 ** 3 = 8
比较运算符
运算符
描述
==
检查两个操作数的值是否 相等,如果是,则条件成立,返回 True
!=
检查两个操作数的值是否 不相等,如果是,则条件成立,返回 True
>
检查左操作数的值是否 大于 右操作数的值,如果是,则条件成立,返回 True
<
检查左操作数的值是否 小于 右操作数的值,如果是,则条件成立,返回 True
>=
检查左操作数的值是否 大于或等于 右操作数的值,如果是,则条件成立,返回 True
<=
检查左操作数的值是否 小于或等于 右操作数的值,如果是,则条件成立,返回 True
逻辑运算符
运算符
描述
==
检查两个操作数的值是否 相等,如果是,则条件成立,返回 True
!=
检查两个操作数的值是否 不相等,如果是,则条件成立,返回 True
>
检查左操作数的值是否 大于 右操作数的值,如果是,则条件成立,返回 True
<
检查左操作数的值是否 小于 右操作数的值,如果是,则条件成立,返回 True
>=
检查左操作数的值是否 大于或等于 右操作数的值,如果是,则条件成立,返回 True
<=
检查左操作数的值是否 小于或等于 右操作数的值,如果是,则条件成立,返回 True
赋值运算符
运算符
描述
实例
=
简单的赋值运算符
c = a + b 将 a + b 的运算结果赋值为 c
+=
加法赋值运算符
c += a 等效于 c = c + a
-=
减法赋值运算符
c -= a 等效于 c = c - a
*=
乘法赋值运算符
c *= a 等效于 c = c * a
/=
除法赋值运算符
c /= a 等效于 c = c / a
//=
取整除赋值运算符
c //= a 等效于 c = c // a
%=
(余数)赋值运算符
c %= a 等效于 c = c % a
**=
幂赋值运算符
c **= a 等效于 c = c ** a
成员运算符
运算符
描述
实例
in
如果在指定的序列中找到值返回 True,否则返回 False
3 in (1, 2, 3) 返回 True
not in
如果在指定的序列中没有找到值返回 True,否则返回 False
3 not in (1, 2, 3) 返回 False
六、循环
While语句基本语法
while 条件(判断 计数器 是否达到 目标次数):
    条件满足时,做的事情1
    条件满足时,做的事情2
    条件满足时,做的事情3
    ...(省略)...
   
处理条件(计数器 + 1)
Break和continue
break continue 是专门在循环中使用的关键字
· break 某一条件满足时,退出循环,不再执行后续重复的代码
· continue 某一条件满足时,不执行后续重复的代码
breakcontinue 只针对 当前所在循环 有效
While循环嵌套
while 条件 1:
    条件满足时,做的事情1
    条件满足时,做的事情2
    条件满足时,做的事情3
    ...(省略)...
   
    while 条件 2:
        条件满足时,做的事情1
        条件满足时,做的事情2
        条件满足时,做的事情3
        ...(省略)...
   
        处理条件 2
   
    处理条件 1
# 向控制台输出内容结束之后,不会换行
print("*", end="")
# 单纯的换行
print("")
七、函数基础
· 所谓函数,就是把 具有独立功能的代码块 组织为一个小模块,在需要的时候 调用
· 函数的使用包含两个步骤:
1. 定义函数 —— 封装 独立的功能
2. 调用函数 —— 享受 封装 的成果
· 函数的作用,在开发程序时,使用函数可以提高编写的效率以及代码的 重用
参数的作用
在函数内部,把参数当作变量使用,进行需要的数据处理
函数调用时,按照函数定义的参数顺序,把希望在函数内部处理的数据通过参数传递
形参:定义函数时,小括号中的参数,时用来接收参数用的,在函数内部作为变量使用
实参:调用函数时,小括号中的参数,时用来把数据传递到函数内部用的
Return:哪里调用返回到哪;后面的代码不执行;需要用变量来接
八、高级变量类型
Python 中,所有 非数字型变量 都支持以下特点:
1. 都是一个 序列 sequence,也可以理解为 容器
2. 取值 []
3. 遍历 for in
4. 计算长度最大/最小值比较删除
5. 链接 + 和 重复 *
6. 切片
列表
· List(列表) Python 中使用 最频繁 的数据类型,在其他语言中通常叫做 数组
· 专门用于存储 一串 信息
· 列表用 [] 定义,数据 之间使用 , 分隔
· 列表的 索引 从 0 开始
序号
分类
关键字 / 函数 / 方法
说明
1
增加
列表.insert(索引, 数据)
在指定位置插入数据
列表.append(数据)
在末尾追加数据
列表.extend(列表2)
将列表2 的数据追加到列表
2
修改
列表[索引] = 数据
修改指定索引的数据
3
删除
del 列表[索引]
删除指定索引的数据
列表.remove[数据]
删除第一个出现的指定数据
列表.pop
删除末尾数据
列表.pop(索引)
删除指定索引数据
列表.clear
清空列表
4
统计
len(列表)
列表长度
列表.count(数据)
数据在列表中出现的次数
5
排序
列表.sort()
升序排序
列表.sort(reverse=True)
降序排序
列表.reverse()
逆序、反转
遍历
# for 循环内部使用的变量 in 列表
for name in name_list:
    循环内部针对列表元素进行操作
    print(name)
元组
· Tuple(元组)与列表类似,不同之处在于元组的 元素不能修改
o 元组 表示多个元素组成的序列
o 元组 在 Python 开发中,有特定的应用场景
· 用于存储 一串 信息数据 之间使用 , 分隔
· 元组用 () 定义
· 元组的 索引 从 0 开始
o 索引 就是数据在 元组 中的位置编号
元组中只包含一个元素时,需要在元素后面添加逗号
info_tuple = (50, )
字典
· dictionary(字典) 除列表以外 Python 之中 最灵活 的数据类型
· 字典同样可以用来 存储多个数据
o 通常用于存储 描述一个 物体 的相关信息
· 和列表的区别
o 列表有序 的对象集合
o 字典无序 的对象集合
· 字典用 {} 定义
· 字典使用 键值对 存储数据,键值对之间使用 , 分隔
o key 是索引
o value 是数据
o 之间使用 : 分隔
o 键必须是唯一的
o 可以取任何数据类型,但 只能使用 字符串数字 元组
字符串
· 字符串 就是 一串字符,是编程语言中表示文本的数据类型
· Python 中可以使用 一对双引号 " 或者 一对单引号 ' 定义一个字符串
o 虽然可以使用 \" 或者 \' 做字符串的转义,但是在实际开发中:
§ 如果字符串内部需要使用 ",可以使用 ' 定义字符串
§ 如果字符串内部需要使用 ',可以使用 " 定义字符串
· 可以使用 索引 获取一个字符串中 指定位置的字符,索引计数从 0 开始
· 也可以使用 for 循环遍历 字符串中每一个字符
1) 判断类型 - 9
方法
说明
string.isspace()
如果 string 中只包含空格,则返回 True
string.isalnum()
如果 string 至少有一个字符并且所有字符都是字母或数字则返回 True
string.isalpha()
如果 string 至少有一个字符并且所有字符都是字母则返回 True
string.isdecimal()
如果 string 只包含数字则返回 True,全角数字
string.isdigit()
如果 string 只包含数字则返回 True,全角数字、⑴、\u00b2
string.isnumeric()
如果 string 只包含数字则返回 True,全角数字,汉字数字
string.istitle()
如果 string 是标题化的(每个单词的首字母大写)则返回 True
string.islower()
如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True
string.isupper()
如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True
2) 查找和替换 - 7
方法
说明
string.startswith(str)
检查字符串是否是以 str 开头,是则返回 True
string.endswith(str)
检查字符串是否是以 str 结束,是则返回 True
string.find(str, start=0, end=len(string))
检测 str 是否包含在 string 中,如果 start 和 end 指定范围,则检查是否包含在指定范围内,如果是返回开始的索引值,否则返回 -1
string.rfind(str, start=0, end=len(string))
类似于 find(),不过是从右边开始查找
string.index(str, start=0, end=len(string))
跟 find() 方法类似,不过如果 str 不在 string 会报错
string.rindex(str, start=0, end=len(string))
类似于 index(),不过是从右边开始
string.replace(old_str, new_str, num=string.count(old))
把 string 中的 old_str 替换成 new_str,如果 num 指定,则替换不超过 num 次
3) 大小写转换 - 5
方法
说明
string.capitalize()
把字符串的第一个字符大写
string.title()
把字符串的每个单词首字母大写
string.lower()
转换 string 中所有大写字符为小写
string.upper()
转换 string 中的小写字母为大写
string.swapcase()
翻转 string 中的大小写
4) 文本对齐 - 3
方法
说明
string.ljust(width)
返回一个原字符串左对齐,并使用空格填充至长度 width 的新字符串
string.rjust(width)
返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串
string.center(width)
返回一个原字符串居中,并使用空格填充至长度 width 的新字符串
5) 去除空白字符 - 3
方法
说明
string.lstrip()
截掉 string 左边(开始)的空白字符
string.rstrip()
截掉 string 右边(末尾)的空白字符
string.strip()
截掉 string 左右两边的空白字符
6) 拆分和连接 - 5
方法
说明
string.partition(str)
把字符串 string 分成一个 3 元素的元组 (str前面, str, str后面)
string.rpartition(str)
类似于 partition() 方法,不过是从右边开始查找
string.split(str="", num)
以 str 为分隔符拆分 string,如果 num 有指定值,则仅分隔 num + 1 个子字符串,str 默认包含 '\r', '\t', '\n' 和空格
string.splitlines()
按照行('\r', '\n', '\r\n')分隔,返回一个包含各行作为元素的列表
string.join(seq)
以 string 作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串
切片
切片 方法适用于 字符串列表元组
o 切片 使用 索引值 来限定范围,从一个大的 字符串切出 小的 字符串
o 列表元组 都是 有序 的集合,都能够 通过索引值 获取到对应的数据
o 字典 是一个 无序 的集合,是使用 键值对 保存数据
注意
· 起始 位开始,到 结束位的前一位 结束(不包含结束位本身)
1. 从头开始,开始索引 数字可以省略,冒号不能省略
2. 到末尾结束,结束索引 数字可以省略,冒号不能省略
3. 步长默认为 1,如果连续切片,数字和冒号都可以省略
九、变量进阶
引用:变量中记录数据的地址,就叫做引用
不可变类型:数值型int,bool,float,complex 字符串:str 元组tuple
可变类型: 列表list 字典dict
通过方法改变可变变量,其引用不会改变
· 局部变量 是在 函数内部 定义的变量,只能在函数内部使用
· 全局变量 是在 函数外部定义 的变量(没有定义在某一个函数内),所有函数 内部 都可以使用这个变量
函数在执行时,需要处理变量时会:1)首先查找函数内部是否存在指定名称的局部变量,如果有直接使用。 2)如果没有,查找函数外部是否存在指定的全局变量,如果有,直接使用 3)如果还没有,程序报错
如果在函数中需要修改全局变量,是要使用global进行声明。
[size=14.0000pt]十、函数进阶
Return 可以返回多个返回值
只要针对参数使用赋值语句,会在函数内部修改局部变量的引用,不会影响到外部变量
如果传递的参数是可变类型,在函数内部,使用方法修改了数据的内容,同样会影响到外部的数据
面对对象
面对对象--谁来做?
1. 在完成某一个需求前,首先确定 职责 —— 要做的事情(方法)
2. 根据 职责 确定不同的 对象,在 对象 内部封装不同的 方法(多个)
3. 最后完成的代码,就是顺序地让 不同的对象 调用 不同的方法
类:是对一群具有 相同 特征 或者 行为 的事物的一个统称,是抽象的,不能直接使用
o 特征 被称为 属性
o 行为 被称为 方法
· 对象: 由类创建出来的一个具体存在,可以直接使用
· 哪一个类 创建出来的 对象,就拥有在 哪一个类 中定义的:
o 属性
o 方法
类名:这类事物的名字,满足大驼峰命名法
属性:这类事物具有什么样的特征
方法:这类事物具有什么样的行为
定义类的语法:
class 类名:
def 方法1(self, 参数列表):
pass
def 方法2(self, 参数列表):
Pass
创建对象:对象变量 = 类名()
由哪个对象调用方法,方法内的self就是哪个对象的引用
初始化方法:
· __init__ 方法内部使用 self.属性名 = 属性的初始值 就可以 定义属性
· 定义属性之后,再使用 Cat 类创建的对象,都会拥有该属性
__str__方法:必须返回一个字符串
封装:
1. 封装 是面向对象编程的一大特点
2. 面向对象编程的 第一步 —— 将 属性方法 封装 到一个抽象的
3. 外界 使用 创建 对象,然后 让对象调用方法
4. 对象方法的细节 都被 封装类的内部
is 与 == 区别:
is 用于判断 两个变量 引用对象是否为同一个
== 用于判断 引用变量的值 是否相等
在定义属性或方法时,在属性名或者方法名前增加两个下划线,定义就是私有属性或方法
继承:实现代码的重用,相同的代码不需要重复的编写
继承的概念:子类拥有父类的所有方法和属性。
继承语法:
Class 类名(父类名1,父类名2,....
重写父类的方法:
1、覆盖父类的方法
2、对父类方法进行扩展:在需要的位置使用super().父类方法来调用父类方法的执行
多态:不同的子类对象调用相同的父类方法,产生不同的执行结果
是特殊的对象——类对象,在程序运行时,类对象在内存中只有一份,使用一个类可以创建出很多个对象实例
类属性:就是给类对象中定义的属性,通常用来记录与这个类相关的特征
类方法:需要用修饰器@classmethod来标识,第一个参数应该是cls.
静态方法:需要用修饰器@staticmethod来标识,不需要传递参数
单例:让类创建的对象,在系统中只有唯一的一个实例
Class MusicPlayer(object):
Instance = None
Def __new__(cls, *args, **kwargs)
If cls.instance is None:
Cls.instance = super().__new__(cls)
Return cls.instance
只执行一次初始化工作
Class MusicPlayer(object):
Instance = None
Init_flag = False
Def __new__(cls, *args, **kwargs)
If cls.instance is None:
Cls.instance = super().__new__(cls)
Return cls.instance
Def __init__(self):
If not MusicPlayer.init_flag:
MusicPlayer.init_flag = Ture
异常:
try: # 尝试执行的代码
        pass
except 错误类型1:
# 针对错误类型1,对应的代码处理
pass
except (错误类型2, 错误类型3):
# 针对错误类型2 和 3,对应的代码处理
        pass
except Exception as result:
print("未知错误 %s" % result)
抛出异常:
ex = Exception( )
raise ex
文件
序号
函数/方法
说明
01
open
打开文件,并且返回文件操作对象
02
read
将文件内容读取到内存
03
write
将指定内容写入文件
04
close
关闭文件
访问方式
说明
r
只读方式打开文件。文件的指针将会放在文件的开头,这是默认模式。如果文件不存在,抛出异常
w
只写方式打开文件。如果文件存在会被覆盖。如果文件不存在,创建新文件
a
追加方式打开文件。如果该文件已存在,文件指针将会放在文件的结尾。如果文件不存在,创建新文件进行写入
r+
读写方式打开文件。文件的指针将会放在文件的开头。如果文件不存在,抛出异常
w+
读写方式打开文件。如果文件存在会被覆盖。如果文件不存在,创建新文件
a+
读写方式打开文件。如果该文件已存在,文件指针将会放在文件的结尾。如果文件不存在,创建新文件进行写入

0 个回复

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