Python学习笔记(1)—B站黑马程序员
Python学习笔记(2)—B站黑马程序员
Python学习笔记(3)—B站黑马程序员
Linux基础
在评论区找到的讲义:
B站的Python课程讲义
Python基础
一、Python介绍
001-Python的起源
002-为什么选择Python?
003-Python 特点
004-Python 的优缺点
二、第一个Python 程序
001-第一个HelloPython程序
我使用的是Cent OS,不是Ubuntu。
使用python2(默认不支持中文):
使用python3(默认支持中文):
我的CentOS没有python3命令要安装
CentOS-python3命令安装
002- python 2.x 和 3.x版本介绍
003-执行 Python程序的三种方式
3.1 解释器 python / python3
3.2 交互式运行 python程序
1)交互式运行 python的优缺点
2)退出官方的解释器
3)IPython
我的centos7里没有ipython和ipython3命令,百度搜了一下安装。
3.3 Python 的 IDE —— PyCharm
004-PyCharm的初始设置
我没有把PyCharm下载到虚拟机上使用,直接下载到了本机。
下载了自动补全插件:
TabNine插件
Kite插件
设置解释器版本:
三、开始基础学习
001-注释
(1)单行注释
以#开头,规定:#后空一格再写注释
错误写法:
正确写法:
(2)多行注释
一对连续的三个引号(单引号,双引号都可以)
002-算数运算符
算数运算符的优先级:
003-程序执行原理
(1)计算机中的三大件:
(2)程序执行原理
python程序的执行原理:
(3)程序的作用
程序用来处理数据,变量用来存储数据
004-变量
(1)变量的定义
变量的定义: 变量名 = 值 每个变量在使用前必须赋值,每个变量赋值之后该变量才会被创建
(2)变量的类型
在python中,定义变量是不需要指定变量的类型的; 在运行的时候,pyrhon解释器会根据赋值语句等号右边的数据,自动推导出变量中保存的数据的数据类型。
A. 变量类型演练——个人信息
B. 变量的类型
可以使用函数 type(变量名) 判断变量的数据类型 在python 2.x 里 分int 和 long 在python 3,x 里只有int
C. 不同类型变量之间的计算
D. 变量的输入
E. 变量的格式化输出(重要)
(3)变量的命名
A. 标识符
B. 关键字
C. 变量的命名规则
python中不建议使用驼峰命名规则
005-判断 if 语句
(1)基本语法
演练:
if语句和下面所有带缩进的代码是一个完整的代码块,都包括在if条件语句内。
如何判断if语句内有哪些代码:点旁边的减号- 加号+
(2)else处理条件不满足的情况
演练:
input 返回str类型,要进行类型转换
(3)逻辑运算符
A. and
B. or
C. not
(4)if 语句进阶
A. elif
B. if 语句嵌套
多行同时缩进:选中多行+Tab
缩进多了,往前退:shift+Tab
(5)综合应用——石头剪刀布
生成随机数
006-运算符
(1)算数运算符
(2)比较(关系)运算符
(3)逻辑运算符
(4)赋值运算符
(5)运算符的优先级
007-循环
(1)程序的三大流程
(2)while循环基本语法
(3)python中的计数方法
养成习惯,计数从0开始
(4)break
(5)continue
(6)while循环嵌套
(7)while循环嵌套演练——九九乘法表
print()函数默认在输出完之后换行 如果不希望换行,添加 end=“” print(“…”, end=“”) end=“这里也可以写东西” 单纯的换行可以:print() print(" * " ,end=“”) —>可以改为—>print(end=" * ") 同样是不换行输出
字符串中的转义字符(重要)
\t 转义字符的功能是可以在不使用表格的情况下在 垂直方向 按列对齐文本
008-函数
(1)函数的基本使用
A. 函数的定义
B. 函数的调用
PyCharm的调试工具
函数的文档注释
函数的文档注释: 写在函数定义的下方第一行,该行开头空4个空格; 然后六个引号,在引号之间写注释; 如果该函数有参数,也要给参数进行注释,在第三个引号后回车,就会出现注释; 在函数调用位置使用快捷键 ctrl+Q 就可以看到函数的注释信息。
比如:
(2)函数的参数
A. 函数参数的使用
B. 参数的作用
C. 形参和实参
(3)函数的返回值
注意:return表示返回,该函数中的后续代码都不会被执行。
(4)函数的嵌套调用
(5)使用模块中的函数
A. 模块概念
B. 第一个模块体验
C. 模块名也是一个标识符
D. Pyc文件(了解)
009-高级变量类型
(1)列表
A. 列表的定义
B. 列表的常用操作
del 关键字:
在日常开发中,从列表中删除数据,使用列表提供的方法,不使用 del
对于某个方法不知道怎么用:可以将鼠标放在该方法上,再按下 Ctrl+Q 就好了
C. 列表的循环遍历
D. 列表的应用场景
(2)元组
A. 元组的定义
元组定义之后,不能对元组进行增删改操作,即元组的元素不能修改。 虽然列表可以存储不同类型的数据,但是一般是在列表中存储相同类型的数据; 元组中可以存储不同类型的数据。
B. 元组的常用操作
C. 元组的循环遍历
一般对于元组进行循环遍历的操作不是很多,因为元组中的数据类型可以不同,无法进行具体的操作。
D. 元组的应用场景
E. 元组和列表之间的转换
(3)字典
A. 字典的定义
B. 字典的常用操作
C. 字典的循环遍历
D. 字典的应用场景
(4)字符串
A. 字符串的定义
B. 字符串的常用方法
空白字符:空格,\t,\r,\n,等看不见的字符
poem_str.strip()返回一个新的字符串,再.center()居中对齐
C. 字符串的切片
(5)上面四种数据类型的公共方法
A. python内置函数
字符串,列表,字典,可以使用max() min() max()和min()函数对于字典只针对key比较
python 3.x取消了 cmp() 函数 比较两个数
但是可以使用比较运算符比较 数字,字符串,列表,元组,但是两个字典之间无法进行比较。
B.切片
C.运算符
字符串,列表,元组,都可以利用 * 进行重复:
字符串,列表,元组,可以使用 + 进行拼接合并:
列表的extend()方法,append()方法,也可以实现上述效果:
但是extend()方法,append()方法,修改的是原列表,而 + 会生成一个新列表。
原列表.extend(列表)方法,会将列表的元素追加到原列表尾部;
原列表.append(元素/列表)方法:
添加元素/列表到原列表,如果参数是列表,会将该列表看作是一个元素添加到原列表中
成员运算符:in,not in,可以作用于 字符串,列表,元组,字典。
但是字典,只能作用于字典的key。
D.完整的 for 循环语法
当for循环结束之后,会执行else下的代码; 当循环体代码中出现break时,else下的代码不会执行。
010-综合应用——名片管理系统
(1)框架搭建
在cards_tools中,写一个函数来实现欢迎界面:
再在cards_main中导入cards_tools模块,使用函数。
1.3 在cards_tools模块中再新增另外三个功能的函数的框架
再在cards_main中导入cards_tools模块,使用其中的函数。
(2)保存名片数据的结构
(3)实现新增名片功能
如何同时修改多次出现的一个变量名? 右键变量名—>Refactor—>Rename—>Rname code occurrences
(4)实现显示所有名片功能
(5)实现查询功能
(6)实现 处理查找到的名片记录
如何快速给一个函数添加注释:鼠标放在函数名上,点击小灯泡, 点击 Insert a doucmentation string stub
(7)在Linux中如何不使用解释器来执行文件
一般在命令终端输入命令:python3 文件名
来执行文件
python3 就是解释器
也可以不使用解释器执行文件:切换到文件目录,输入 ./文件名
为什么这样也可以?
在要执行的文件的第一行加上:
#! python3解释器的路径
然后给该文件加上可执行权限
就可以使用 ./文件名 的方式 运行这个文件
011-变量进阶
(1)变量的引用
(2)可变和不可变类型
不可变数据类型,在内存中的数据不能被修改;
可变数据类型,可以使用append()等方法,改变内存中的数据,但是该内存的地址不会被修改。
但是使用 = 赋值语句,内存地址是不一样的:
如 a = [1,2,3]
和 a = [3,2,1]
这两个a保存的内存地址是不一样的。
字典的key只能使用不可变数据类型:数字,字符串,元组
不能使用可变数据类型:列表,字典
value可以使用任意类型的数据
hash()函数只接收一个不可变类型的数据作为参数
(3)局部变量和全局变量
012-函数进阶
(1)函数的参数和返回值的作用
(2)函数的返回值 进阶
返回多个结果可以使用元组;如果函数返回的类型是元组,小括号可以省略。
如果函数返回的类型是元组,同时希望单独处理元组中的元素; 可以使用多个变量,一次接收函数的返回结果。
(3)函数的参数 进阶
A. 不可变和可变的参数
无论传递的参数类型是 可变 还是 不可变,在函数内部针对参数使用 赋值语句,不会影响调用函数时传递的实参变量。
如果传递的参数是 可变类型,在函数内部,使用 方法 修改了参数,外部实参同样会改变。
对于列表变量:
列表1 = 列表1 + 列表1 ---> 正常的赋值 (函数内部的参数变化不会影响函数外部的参数)
列表1 += 列表1 ----> += 相当于 extend()方法 (函数内部的参数变化会影响函数外部的参数)
这两个是不一样的。
对于其他类型的变量,列表1 += 列表1 和 列表1 = 列表1 + 列表1 是一样的。
---> 正常的赋值 (函数内部的参数变化不会影响函数外部的参数)
B.缺省参数
gender = True
C.多值参数(知道)
为什么不直接传一个元组?
如果直接传一个元组:
def sum_numbers(agrs):
...
print(sum_numbers((1,2,3)))
这样更麻烦。
demo(*gl_nums, **gl_dict) 与 demo(1, 2, 3, name="小明", age=18) 输出结果相同
(4)递归函数
|