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)递归函数

  
|