Python学习基础
1、Python基础知识
1.1 认识Python
Python解释器:运行代码,翻译代码的工具;
Windows&IOS操作系统:使用PyCharm代码编辑器,写代码的工具;
1.2 了解编程语言
对编程语言的了解(主流编程语言):
-
前端(HTML、CSS、JavaScript)
- HTML:写网页框架
- CSS:写网页样式
- JavaScript:动态、轮播图
- 前端的作用:
- 1、写网页网站 ---》给用户看的部分
- 2、写程序 ---》给用户看的部分
- 3、写H5程序 ---》H5游戏,各种JS进阶网页
-
Java:市场稳定,学的人多,会的人太多,行业现状,一个字卷;
- 大数据:比较适合处理大量批量数据
- web后台开发:做一个网站的后台
- 大型服务部署:性能更好
-
C/C++:比较难,先学C语言,再递进C++,C++能做硬件开发(芯片、单片机、嵌入式)
- 硬件开发:芯片开发、单片机、嵌入式
- 系统底层的开发/Windows编程:很多操作系统都是C来写的
- 服务器开发
- 逆向开发
- 游戏开发:黑悟空
- 客户端开发:可视化界面开发
- C与C++的区别:C++相当于C的升级版
-
C#:为了取代Java而研发的开发语言,微软公司为了取代Java而研发的编程语言,大部分是模仿了Java和C语言,没有被取代,反而被应用;
- Java能做的,C#基本都能做,基本比Java弱势一点
- 游戏开发
- Windows环境下进行软件开发 ---》性能会更好,更好用
-
go语言(go lang)
- 对标C/C++,主要用来做服务器开发为主的语言,近几年比较强势
-
PHP:曾经(PHP是全世界最好的编程语言),现在(Python是全世界最好的编程语言)
- 小体量的网页网站开发 ---》小型网站 ---》个人博客都可以
- 曾经PHP是全世界最好的编程语言,但是现在Python才是全世界最好的编程语言;
-
Python
- Web后台开发 ---》做一个网站的后台
- 数据分析
- 数据处理,制作数据图表来进行分析和展示
- 数据处理与清洗,确保数据的可靠性
- 爬虫技术
- 自动化程序,用于从互联网上收集和提取信息
- 数据采集(偷数据):爬虫可以从网站上抓取文本、图片、视频等各种类型的数据
- 价格监测:电商平台可以使用爬虫监测竞争对手的价格和库存情况
- 爬取社交媒体平台上的数据,用于舆情分析、市场调研(以前是线下发传单)等等
- 学术研究:研究人员可以使用爬虫收集相关领域的文献、数据集、进行科学调研
- 实时数据监控:监控特定网站的更新情况,及时抓取最新信息
- 自动化测试
- 自动化运维
- 游戏开发:小型或中型游戏项目,Python多个库和框架,可以让你轻松的创建各种类型的邮箱
- 人工智能、机器人
1.3 变量和数据类型
小白需要注意的问题:
- 默认情况下,
print()函数每次都在新行上打印,这是由于Python文档中的print()定义决定的; - 注意:编写代码时必须切换成英文输入状态,否则会报错,特别是标点符号必须在英文输入状态下输入;
- 漏了符号,引号,缩进,空格问题;
print不需要大写,纯小写,且要确保单次拼写正确;
1.3.1 程序员必备修养 -- 注释
-
注释(代码太多,很容易忘记,就可以写上相关注释)
-
注释是给开发人员看的. 不会参与程序的运行
-
python有两种注释方式:
-
单行注释 --> 用#符号表示.在#后面的内容都是注释
-
多行注释 --> 用一对三引号包裹着的内容(单引/双引都可)
python# 创建简单表格 print(""" 被创建之后,能够输出,内容,显示多行内容的作用 ---------个人信息表格--------- 姓名:小明 年龄:18 性别:男 学习:自由大学 兴趣爱好:羽毛球,散步,篮球,驾车 """)输出结果:
python被创建之后,能够输出,内容,显示多行内容的作用 ---------个人信息表格--------- 姓名:小明 年龄:18 性别:男 学习:自由大学 兴趣爱好:羽毛球,散步,篮球,驾车
-
1.3.2 初识变量
- 程序里的变量--》相当于容器,盒子,用来存数据
- 类似于生活中的保险柜、书包...
1.3.2.1 声明变量:
-
语法格式:
变量名 = 变量值
-
实例
python# 变量 home = '云南省曲靖市麒麟区白泥破小康城' number = 199*******2154
1.3.2.2 使用变量
-
语法格式:
print(变量名) -
实例
pythonprint(home) print(number)
1.3.2.3 变量的命名规范
1. 一般是有数字、字母、下划线组成 (中文可以,但不推荐)
2. 首字符不能是数字,不能数字开头
3. 符号只能用下划线,不能用其他符号
4. 不要用/不推荐用关键字,有特别含义的数据命名 强调: 不要给变量命名为 print input这些名字
5. 见名知意 --> 一眼可以看出来,这个数据有什么用
1.3.2.4 常见的变量命名方法
比较好用的命名方式--》驼峰命名法
大驼峰--》每个单词首字母都大写; UserName 用户名
小驼峰--》第一个单词不变,后面的单词首字母大写; userName
下划线--》不同的单词用下划线分割,全部小写; user_name user_age
1.3.3 数据类型
- 在现实生活中,动物是有分类的,人的性别也是有男女区别的,菜也是分为蔬菜和荤菜;
- 如果不定义类型,肯定分辨不清楚,任何东西都有分类,在编程世界中,数据也有分类;
Python3 中常见的数据类型有:
- Number(数字)
- String(字符串)
- bool(布尔类型)
- List(列表)
- Tuple(元组)
- Set(集合)
- Dictionary(字典)
Python的六种数据类型中,不可变数据类型:Number(数字)、String(字符串)、Tuple(元组);可变数据类型:List(列表)、Dictionary(字典)、Set(集合)。
1.3.3.1 数值类型
-
int整型/整数 没有小数点的数据
pythonage = 18 -
float浮点型/小数 带小数的数字
pythonheight = 165.5 -
bool布尔类型,判断类型:布尔类型主要是用来做判断的一种类型,只有两个值,用True表示真.,用False表示假;
python1+1 > 2 #False -
complex(复数)
复数由实数部分和虚数部分构成,可以用 a + bj ,或者 complex(a,b) 表示, 复数的实部 a 和虚部 b 都是浮点型。
pythoncomNumber = 3 + 5j print(comNumber)
基本算数运算符
python
+ - *(乘) /(除)
% 取余数 10%3= 1
// 整除 10//3=3
** 取幂 3**3 --> 3*3*3 = 27
注意:
- 1、Python可以同时为多个变量赋值,如a, b = 1, 2。
- 2、一个变量可以通过赋值指向不同类型的对象。
- 3、数值的除法包含两个运算符:/ 返回一个浮点数,// 返回一个整数。
- 4、在混合计算时,Python会把整型转换成为浮点数。
数值类型实例:
| int | float | complex |
|---|---|---|
| 10 | 0.0 | 3.14j |
| 100 | 15.20 | 45.j |
| -786 | -21.9 | 9.322e-36j |
| 080 | 32.3e+18 | .876j |
| -0490 | -90. | -.6545+0J |
| -0x260 | -32.54e100 | 3e+26J |
| 0x69 | 70.2E-12 | 4.53e-7j |
1.3.3.2 String(字符串)
Python中的字符串用单引号 ' 或双引号 " 括起来,同时使用反斜杠 ** 转义特殊字符。
字符串的截取的语法格式如下:
变量[头下标:尾下标]
索引值以 0 为开始值,-1 为从末尾的开始位置。

加号 + 是字符串的连接符, 星号 ***** 表示复制当前字符串,与之结合的数字为复制的次数。实例如下:
python
strs = 'Runoob' # 定义一个字符串变量
print(strs) # 打印整个字符串
print(strs[0:-1]) # 打印字符串第一个到倒数第二个字符(不包含倒数第一个字符)
print(strs[0]) # 打印字符串的第一个字符
print(strs[2:5]) # 打印字符串第三到第五个字符(不包含索引为 5 的字符)
print(strs[2:]) # 打印字符串从第三个字符开始到末尾
print(strs * 2) # 打印字符串两次
print(strs + "TEST") # 打印字符串和"TEST"拼接在一起
输出结果:
python
Runoob
Runoo
R
noo
noob
RunoobRunoob
RunoobTEST
1.3.3.3 列表(list)
- 列表的表现形式为用[]中括号包裹起来的数据 里面的数据用逗号隔开
- 语法格式:列表名=[数据1,数据2]
- 特点:列表可以修改
python
talk=['美女', 18, True, 22.5]
1.3.3.4 元组(tuple)
- 元组的表示形式为用()小括号包裹起来的数据 里面的数据用逗号隔开
- 语法格式: 元组名=(数据1,数据2)
- 元组名=(数据1,)
- 特点:元组不可以修改
python
tup = (12)
print(tup)
print(type(tup))
tup1 = (12,)
print(tup1)
print(type(tup1))
输出结果:
python
12
<class 'int'>
(12,)
<class 'tuple'>
1.3.3.5 元组与列表
- 元组的用法和列表相似,但是有两个区别:
- 元组是小括号 列表是中括号
- 元组里的数据是不能被修改
1.3.4 序列中取值
1.3.4.1 下标
- 序列类型-->可以存储多个数据的一种类型,里面的数据是有顺序,坐标概念的,称之为下标;
- 在程序中,和生活习惯不一样,程序下标是从0开始进行计算的;
- 下标也支持负数取值,最后一个数为-1,倒数第二个数为-2;

1.3.4.2 索引
Python的索引(Indexing)是访问序列类型(如字符串、列表、元组等)中单个元素的核心机制。
Python的索引从0开始计数:
python
# 索引
text = 'Python'
# 索引: 0 1 2 3 4 5
# 字符: P y t h o n
print(text[0]) # 'P'
print(text[3]) # 'h'
负索引(反向索引):
从末尾开始计数,-1表示最后一个元素:
python
text = 'Python'
# 索引: -6 -5 -4 -3 -2 -1
# 字符: P y t h o n
print(text[-1]) # 'n'
print(text[-3]) # 'h'
可索引的数据类型:
| 类型 | 是否可索引 | 是否可变 |
|---|---|---|
str(字符串) |
✅ | ❌ (不可变) |
list(列表) |
✅ | ✅ |
tuple(元组) |
✅ | ❌ |
bytes(不可变的字节序列) |
✅ | ❌ |
bytearray(可变的字节序列) |
✅ | ✅ |
dict(字典) |
✅ (按键) | ✅ |
set(集合) |
❌ | - |
1.3.4.3 切片(Slicing)
使用 [start:stop:step] 语法获取子序列:
| 语法 | 含义 |
|---|---|
[a:b] |
从索引 a 到 b-1 |
[:b] |
从开头到 b-1 |
[a:] |
从 a 到末尾 |
[::2] |
每隔一个取一个 |
[::-1] |
反转序列 |
切片的细节:
- 切片时.终点值实际是取到它的前一位.不是自身
- 切片时.起点值和终点值可以空着不写. 不写起点默认从头/0开始取数据. 不写终点默认取到最后
python
strs = 'Runoob' # 定义一个字符串变量
print(strs) # 打印整个字符串 Runoob
print(strs[0:-1]) # 打印字符串第一个到倒数第二个字符(不包含倒数第一个字符) Runoo
print(strs[0]) # 打印字符串的第一个字符 R
print(strs[2:5]) # 打印字符串第三到第五个字符(不包含索引为 5 的字符) noo
print(strs[2:]) # 打印字符串从第三个字符开始到末尾 noob
1.4 数据类型转换
Python 的数据类型转换分为隐式转换 (自动)和显式转换(手动)。
类型转换两种类型:自我转换(Bool类型);
强制转换(需要在合法的情况下才能进行转换);
1.4.1 隐式转换(自动)
Python在运算时,通常向更精确的类型转换:
python
# int + float → float
result = 3 + 2.5 # 5.5 (int 自动转为 float)
# int + bool → int (True=1, False=0)
result = 5 + True # 6
# 字符串拼接不会隐式转换
"年龄:" + 25 # ❌ TypeError,需要显式转换
1.4.2 显式转换(强制类型转换)
1.4.2.1 基本类型转换
| 函数 | 说明 | 示例 |
|---|---|---|
int(x) |
转整数 | int("42") → 42 |
float(x) |
转浮点数 | float("3.14") → 3.14 |
str(x) |
转字符串 | str(100) → "100" |
bool(x) |
转布尔值 | bool(0) → False |
python
# 字符串 ↔ 数字
int("100") # 100
int("100", 16) # 256 (按16进制解析)
float("3.14") # 3.14
str(3.14159) # "3.14159"
# 布尔转换(只有0、空值、None为False)
bool(0) # False
bool("") # False
bool([]) # False
bool(None) # False
bool(1) # True
bool("hello") # True
1.4.2.2 序列类型转换
python
# 转列表
list("abc") # ['a', 'b', 'c']
list((1, 2, 3)) # [1, 2, 3]
list({"a": 1, "b": 2}) # ['a', 'b'] (仅取键)
# 转元组
tuple([1, 2, 3]) # (1, 2, 3)
# 转集合(去重)
set([1, 2, 2, 3]) # {1, 2, 3}
# 转字典(需要键值对序列)
dict([("a", 1), ("b", 2)]) # {'a': 1, 'b': 2}
1.4.2.3 二进制数据转换
python
# 字符串 ↔ bytes
"你好".encode('utf-8') # b'\xe4\xbd\xa0\xe5\xa5\xbd'
b'\xe4\xbd\xa0'.decode('utf-8') # '你'
# 其他类型 ↔ bytes
bytes([65, 66, 67]) # b'ABC'
bytearray(b'hello') # bytearray(b'hello')
# 十六进制
bytes.fromhex('48656c6c6f') # b'Hello'
b'Hello'.hex() # '48656c6c6f'
1.4.2.4 高级转换
python
# eval() - 解析字符串为 Python 表达式(⚠️ 有安全风险)
eval("[1, 2, 3]") # [1, 2, 3]
eval("{'a': 1}") # {'a': 1}
# ast.literal_eval() - 更安全的解析
import ast
ast.literal_eval("[1, 2, 3]") # [1, 2, 3]
# json 转换(常用于 API 数据处理)
import json
json.dumps({"a": 1}) # '{"a": 1}' (dict → str)
json.loads('{"a": 1}') # {'a': 1} (str → dict)
1.4.3 常见错误与处理
python
int("3.14") # ❌ ValueError(先转 float 再转 int)
int(float("3.14")) # ✅ 3
int("abc") # ❌ ValueError
int("abc", 16) # ✅ 2748 (按16进制解析)
float("inf") # ✅ inf (无穷大)
float("nan") # ✅ nan (非数字)
1.4.4 快速参考表
python
原始类型 → 目标类型
─────────────────────────
str → int/float int("123") / float("1.5")
int/float → str str(123)
list → tuple/set tuple([1,2]) / set([1,2])
tuple → list/set list((1,2)) / set((1,2))
dict → list list(d) → 所有键
str → list list("abc") → ['a','b','c']
bytes → str b.decode('utf-8')
str → bytes s.encode('utf-8')
python
✅ 2748 (按16进制解析)
float("inf") # ✅ inf (无穷大)
float("nan") # ✅ nan (非数字)
1.4.4 快速参考表
python
原始类型 → 目标类型
─────────────────────────
str → int/float int("123") / float("1.5")
int/float → str str(123)
list → tuple/set tuple([1,2]) / set([1,2])
tuple → list/set list((1,2)) / set((1,2))
dict → list list(d) → 所有键
str → list list("abc") → ['a','b','c']
bytes → str b.decode('utf-8')
str → bytes s.encode('utf-8')
以上的内容,是本人自学Python,写的笔记,如有错误,请留言哦!!!本人会在第一时间及时更正。如果你觉得有用,请关注我,一起学习Python,一起高薪!!
从【2026年4月15日】起,会持续更新关于Python的相关知识,比如《Python数据分析》、《爬虫》、《Python Web开发》等等知识,如果大家有兴趣的话,请点赞+关注,望不负韶华!