python快速入门
第一章、01-初识python




第一章、02-什么是编程语言


第一章、03-Python环境安装(Windows)








第一章、04-Python环境安装(Mac)
略
第一章、05-Python环境安装(Linux)
安装依赖

命令:
yum install wget zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make zlib zlib-devel libffi-devel -y

下载



注:在linux操作系统,是需要源码编译的,这里下载源码选第一个,右键,复制下载地址。
![]()
命令:
wget https://www.python.org/ftp/python/3.10.14/Python-3.10.14.tgz
wget https://www.python.org/ftp/python/3.12.11/Python-3.12.11.tgz
解压python软件包


查看软件包
命令:
ls -l
解压软件包
tar -xvf Python-3.10.4.tgz
安装
进入python目录并查看目录
ls -l
cd Python-3.12.11/

配置python编译参数
#配置编译后完成后的安装路径
./configure --prefix=/usr/local/python3.12.11

编译安装
make && make install
查看编译安装结果
cd /usr/local/python3.12.11/
ls -l

进入bin目录(该目录下都是可执行文件)
cd bin/
ls -l

在linux上默认安装有python
/usr/bin/python

注意:但是不是我们想要的版本,所以,我们要顶替linux默认安装的老版本python。
输入"exit()"退出python命令行。
exit()
删除系统自带的老版本(python2)的软链接
rm -f /usr/bin/python
![]()
创建软链接(方便使用)
ln -s /usr/local/python3.12.11/bin/python3.12 /usr/bin/python
![]()
在终端任意位置输入python测试是否为新版本python

修改yum相关依赖(在linux操作系统中,yum这个程序本质上使用的是python老版本的依赖,我们刚才顶替了python的老版本,导致yum不能正常运行)

# 1. 删除现在的裸软链,不是python3
[root@localhost bin]# rm -f /usr/bin/python
# 2. 注册到 alternatives(最后的 50 是优先级)
[root@localhost bin]# alternatives --install /usr/bin/python python /usr/local/python3.12.11/bin/python3.12 50
# 3.(推荐)固定为手动模式,防止以后装包自动切走
[root@localhost bin]# alternatives --set python /usr/local/python3.12.11/bin/python3.12
验证是否正常
[root@localhost bin]# alternatives --display python
[root@localhost bin]# ls -l /usr/bin/python
[root@localhost bin]# python --version
预期结果:
python - status is manual.
link currently points to /usr/local/python3.12.11/bin/python3.12
/usr/local/python3.12.11/bin/python3.12 - priority 50
Current `best' version is /usr/local/python3.12.11/bin/python3.12.
# ← 不再是裸链,由 alternatives 接管
lrwxrwxrwx. 1 root root 24 Jun 3 14:51 /usr/bin/python -> /etc/alternatives/python
Python 3.12.11
---
说明
- 改完后链路变成:/usr/bin/python → /etc/alternatives/python → /usr/local/python3.12.11/bin/python3.12,这才是 RHEL 系发行版管理多版本命令的标准方式。
- 第 3 步为什么推荐:如果将来你 dnf install python-unversioned-command,那个包也会通过 alternatives 注册 /usr/bin/python(指向 3.9)。用 --set 锁成手动模式后,alternatives 不会自动切换,你的 3.12 优先级稳固。
- 完全不影响 yum/dnf:它们走 /usr/bin/python3(→3.9),跟 /usr/bin/python 没关系。
注意:

这段命令不用执行!
第一章、06-第一个Python程序


第一章、07-Python解释器


第一章、08-PyCharm开发工具的安装



第一章、09-PyCharm的基础使用








第二章、01-字面量




第二章、02-注释



第二章、03-变量


第二章、04-数据类型




第二章、05-数据类型转换


第二章、06-标识符










第二章、07-运算符





第二章、07-字符串的三种定义方式




第二章、08-字符串的拼接



正确写法:
name = '黑马程序员'
address = '厦门'
tel = 4242
print("我是:" + name + ",我的电话是:" + str(tel))
第二章、09-字符串格式化






第二章、10-字符串格式化的精度控制





第二章、11-字符串格式化的方式2


重点:
这种快速格式化方式,不限制类型,同时也不做精度控制。

第二章、12-对表达式进行格式化




第二章、13-数据输入(input语句)





第三章、01-布尔类型和比较运算符








第三章、02-if语句的基本格式





第三章、03-if else组合判断语句




第三章、04-if_elif_else组合使用的语法


第三章、05-判断语句的嵌套



第四章、01-while循环的基础应用





第四章、02-while循环的嵌套应用





第四章、03-for循环的基础语法




第四章、04-range语法 (*)







第四章、05-for循环临时变量作用域



第四章、06-for循环的嵌套使用




第四章、07-continue和break




注意:这里,continue只会影响到内部for循环的语句3,对外部循环的语句4没有影响。








第五章、01-函数的初体验




第五章、02-函数的基础定义语法



第五章、03-函数的传入参数





第五章、04-函数的返回值定义语法


第五章、05-函数返回值之None类型(*)


无返回值

主动返回None


None用于if判断

None用于声明无初始内容的变量


第五章、06-函数的说明文档


显示效果



第五章、07 -函数的嵌套使用



第五章、08 -变量在函数中的作用域






解释:
在test_b()方法内的num,是函数内的局部变量,跟外部的num没有关系,所以最终输出外部num还是200.
现在有个需求,就是要修改掉testb内部的num,可以通过global关键字:



第六章、01 -数据容器入门



第六章、02 -列表的定义语法


重点: 列表可以同时存储不同类型元素。




第六章、03 -列表的下标索引(*)



取法:list[1][0]



第六章、04 -列表的常用操作方法(*)











区别:
1)del 仅仅可以删除元素;
2)pop不仅可以删除元素,还可以返回被删除的元素;







第六章、05 -列表的循环遍历






第六章、06 -元祖的定义和操作(*)



注意: 定义单个元素的元祖,需要在括号内单个元素后面加个逗号,否则就不是元祖了,类型是是str


由于元祖的不可修改特性,所以元祖的操作是比较少的!





元祖不支持修改元祖的内容,但是可以修改元祖内list的内容:





第六章、07 -字符串的定义和操作(*)

















第六章、08 -数据容器(序列)的切片(*)

注意:对序列的操作,不会影响序列本身,而是会得到一个新的序列(列表、元祖、字符串等)




注意:这种写法,-1代表从后向前取,等同于将序列反转了。



第六章、09 -集合的定义和操作(*)


























第六章、10 -字典的定义(*)









![]()




第六章、11 -字典的常用操作(*)













第六章、12 -类数据容器的总结对比



第六章、13 -数据容器的通用操作(*)


















正向排序(reverse默认=False)


反向排序(reverse=True)



第六章、14 -字符串大小比较的方式





第七章、01 -函数的多返回值(*)



第七章、02 -函数的多种参数使用形式(*)






重点:
如果入参要设置默认值,需要放到定义参数的最后面!







第七章、03 -函数作为参数传递


看一下这两块代码区别:
def test_func(compute):
result = compute(1,2)
print(result)
def compute(x,y):
return x+y
test_func(compute)
# 另一个代码
def test_func():
result = compute(1,2)
print(result)
def compute(x,y):
return x+y
test_func()
主要区别
┌──────────────────────┬──────────────────────────┬──────────────────────┐
│ │ 第一块 │ 第二块 │
├──────────────────────┼──────────────────────────┼──────────────────────┤
│ test_func 是否有参数 │ 有形参 compute │ 无参数 │
├──────────────────────┼──────────────────────────┼──────────────────────┤
│ compute 从哪来 │ 调用方传进来(依赖注入) │ 直接用全局的 compute │
├──────────────────────┼──────────────────────────┼──────────────────────┤
│ 调用方式 │ test_func(compute) │ test_func() │
├──────────────────────┼──────────────────────────┼──────────────────────┤
│ 运行结果 │ 3 ✅ │ 3 ✅ │
└──────────────────────┴──────────────────────────┴──────────────────────┘
关键点
1. 两块现在都能跑,结果一样都是 3。
2. 设计思想不同(这是真正的区别):
- 第一块:把 compute 当参数传进去。test_func 用哪个函数计算由外部决定 —— 更灵活,可以随时换成别的函数,也更好做单元测试。
test_func(lambda a,b: a*b) # 比如想换成乘法,直接传别的函数即可,输出 2
- 第二块:test_func 写死去找全局的 compute,外部无法替换 —— 耦合更紧,但写起来简单。
3. 第二块依赖「全局作用域里恰好有一个叫 compute 的函数」。如果哪天全局的 compute 改名或删掉,test_func 就会 NameError;而第一块不依赖全局名字,更稳健。
一句话总结:功能结果相同,区别在于「函数从参数传入(解耦、灵活)」 vs 「直接用全局函数(简单、耦合紧)」。
第七章、04 -lambda匿名函数(*)



注意: lambda定义的匿名函数,函数体只能写一行。

第八章、01 -文件编码概念





第八章、02 -文件的读取操作







注意: 在同一个程序中,多次读取同一个文件,下一次读取文件起始,是接上一次读取文件结尾!











第八章、03 -文件的写出操作


注意:close()方法内置了flush()方法,在关闭文件前,将内存中积攒的内容,写入到硬盘的文件中。所以,代码还可以改成下面代码:


第八章、04 -文件的追加写入操作



第九章、01 -了解异常




第九章、02 -异常的捕获(*)













第九章、03 -异常的传递性


第九章、04 -模块的概念和导入












第九章、05 -自定义模块并导入










注意:这里只是引用了my_module1模块,但是my_module1中有测试代码,所以测试代码就直接执行了。
我们可以通过给my_module1设置main入口,意思是只有在my_modele1文件中执行run,才会触发my_module1文件的main入口。

这样,我们在外部导入my_module1模块时,就不会运行my_module1模块中的test函数。


注意:不是这个_all_,导入的是所有的,写了_all_导入的就是指定的。
不写__all__


写上__all__


发现test_b()就用不了了。

第九章、06 -自定义Python包


有__init__.py就是python包,没有就是普通文件夹!









因为__all__,只写了'my_module1'!

第九章、07 -安装第三方包



但是发现网络比较慢,可以使用国内镜像源

命令:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple numpy



如果网络比较慢:


第九章、08 -异常-模块-包-综合案例讲解
更多推荐






所有评论(0)