python学习之旅
python学习(持续更新)
入门
python作为编写agent的基础,随着AI的发展,传统的码农将会走向没落,所以才开了这篇python学习的帖子,说不定哪天这帖子就写一些agent开发,当然以后还会有一些mcp的建立,ai是个好工具(被ai大人吓哭了),传统的写代码会被AI取代,只有在维度上胜过AI才可以,当然练习与实战是必不可少的(理论结合实战才能学好代码)
工具
python3,idle(python也有自己的devc++,初学时先不用轮椅,这样才能更好锻炼代码能力),pycharm(python自己的vscode,更好用),AI(deepseek, coplit, gemini,chatgptm,AI时代肯定要好好使用AI,让AI成为自己的助手,而不是替代AI让你学习),bilibili,互联网(各种人的blog与帖子),github(找项目与笔记)
1.一切开始之前先说一下程序规范
<一>编码部分
(1)编程
(2)代码规范
缩进、行宽(垂直方向)、引号、空行、编码
(3)import语句
(4)空格
(5)换行
(6)docstring(文档字符串””” “””)
<二>注释
块注释、行注释、建议、文档注释
看看注释,注释肯定分为单行与多行注释
单行注释使用‘#’
1 | # 这是学习python的开始 |
多行注释使用多行字符串(‘’’或者”””,毕竟python与c++不同并不怎么区分“”与‘’的区别)
1 | """ |
<三>命名规范
模块、类名、函数、变量名、常量
1./与c语言/c++不同的是python中的/会产生浮点数(12/6 = 2.0)
1 | print("Hello World!") |
依旧是神秘hello world
基本语法
作为一门语言有词法与语法(语文了一波,遥想当年语文,一直拖后退,最后也是惨淡收场)
编码
一般来说python的编码都是UTF-8编码(8为一个编码单元),所有字符都是Unicode字符
,但是你要想用以前的区域性语言字符集也是可以用Windows1512
1 | # -*- coding: cp-1252 -*- |
字符集、标识符(词法记号)

这下知道イレイナ是怎么样的,当然这是说python与c++不同,python可以有中文的变量
当然关键字并不能是关键字
同时数字还是不能作为标识符的开头
What’s more 还不能有连字符(-)
当然说字符就不得不提python保留字符(关键字)
| and | exec | not |
|---|---|---|
| assert | finally | or |
| break | for | pass |
| class | from | |
| continue | global | raise |
| def | if | return |
| del | import | try |
| elif | in | while |
| else | is | with |
| except | lambda | yield |
| 类别 | 关键字 | 说明 |
|---|---|---|
| 逻辑值 | True | 布尔真值 |
| (bool值) | False |
布尔假值 |
None |
表示空值或无值 | |
| 逻辑运算 | `and | 逻辑与运算 |
or |
逻辑或运算 | |
| `not | 逻辑非运算 | |
| 条件控制 | if |
条件判断语句 |
elif |
否则如果(else if 的缩写) | |
else |
否则分支 | |
| 循环控制 | for |
迭代循环 |
while |
条件循环 | |
break |
跳出循环 | |
continue |
跳过当前循环的剩余部分,进入下一次迭代 | |
| 异常处理 | try |
尝试执行代码块 |
| (逆向上异常处理) | except | 捕获异常 |
finally |
无论是否发生异常都会执行的代码块 | |
raise |
抛出异常 | |
| 函数定义 | def |
定义函数 |
return |
从函数返回值 | |
lambda |
创建匿名函数 | |
| 类与对象 | class |
定义类 |
| (python是oop) | del |
删除对象引用 |
| 模块导入 | import |
导入模块 |
from |
从模块导入特定部分 | |
as |
为导入的模块或对象创建别名 | |
| 作用域 | global |
声明全局变量 |
nonlocal |
声明非局部变量(用于嵌套函数) | |
| 异步编程 | async |
声明异步函数(主线程空闲时再执行) |
await |
等待异步操作完成 | |
| 其他 | assert |
断言,用于测试条件是否为真 |
in |
检查成员关系 | |
is |
检查对象身份(是否是同一个对象) | |
pass |
空语句,用于占位 | |
with |
上下文管理器,用于资源管理 | |
yield |
从生成器函数返回值 |
1 | >>import keyword |
kwlist是个列表
python的行与缩进
关于python其有严格的代码规范,其不用{}来控制类,python最大的特点是用缩进来写块(虽然是特点,我认为这点python不如c/c++灵活)
1 | if True: |
运行得到结
1 |
果
如果缩进有误,迎接你的belike:
SyntaxError: unindent does not match any outer indentation level
(syntax语法,identation行缩进,缺口,unident减少缩进,要学好英语啊,计算机不少报错都是英语,国际交流也要英语,ba国际服要英语(虽然可以繁中),毕业也要四级,保研要6级,当然语文也是博大精深)
多行语句与单行显示多行
如果同一行显示多条语句,语句之间以分号分割
1 | x = 3; x+=2; print(x) |
有一行显示多条语句就有一个语句以多行显示也就是多行语句
1 | x = 3 |
以反斜杠’\‘表示行连续
当然[],{},或者()中的多行语句,并不需要反斜杠
数字(Number)的类型
int(整数),bool(布尔),float(浮点数),复数(complex)
字符串(String)
1.python中的’与“完全相同(c++中字符常量用’’而””用与字符串,’0’与”0”的区别是”0”相当于{‘0’,’\0’})
2.而三引号”””是用于多行字符串
3.转义字符\
4.r可以打印原始字符串
1 | r"man\\" |
大概就是让\变为\转义序列
5.按字面意义关联字符串,可以将几个字符串拼接在一起
python会自动拼接相邻的字符串
print(‘this’’is’’string’)
thisisstring
1 | >>'this''is''string' |
6.+是拼接,乘是复制
7.python的字符串有两种索引方式,从左往右以0开始,从右往左以-1开始
字符串切片str[start:end:step]start包含,end不包含,
代码组
缩进相同一组语句构成一个代码块,称为代码组
if、while、def和class这样的复合语句,首行以关键字开始,以冒号( : )结束,该行之后的一行或多行代码构成代码组。
我们将首行及后面的代码组称为一个子句(clause)。
导入
python用import与from ……import来导入相应的模块
将整个模块(somemodule)导入,格式为import somemodule
从某个模块导入某个函数,from somemodule import somefunction
从某个模块导入多个函数:rom somemodule import firstfunc, secondfunc, thirdfunc
从某个模块导入全部函数:from somemodule import *
数据类型
计算机能处理各种数据,不同数据要定义不同的数据类型
1 | str = "whatcanisay" |
整数
python可以处理个任意大小的整数(而c++要声明不同的数据类型),计算机由于是由二进制组成,所以有时用16进制更方便(0x前缀)
对于很大的数的数可以在数中插入” _ “分隔符
1 | >>c = 10_0000_00 |
浮点数
浮点数就是小数,由于按照科学记数法时小数点的位置可以变化,对于很大或者很小的浮点数要用科学计数法
整数是精准的,但是浮点数可能要4舍5入
