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
2
3
"""
这是一个多行注释
"""

<三>命名规范

模块、类名、函数、变量名、常量

1./与c语言/c++不同的是python中的/会产生浮点数(12/6 = 2.0)

1
print("Hello World!")

依旧是神秘hello world

基本语法

作为一门语言有词法与语法(语文了一波,遥想当年语文,一直拖后退,最后也是惨淡收场)

编码

一般来说python的编码都是UTF-8编码(8为一个编码单元),所有字符都是Unicode字符

,但是你要想用以前的区域性语言字符集也是可以用Windows1512

1
# -*- coding: cp-1252 -*-

字符集、标识符(词法记号)

1

这下知道イレイナ是怎么样的,当然这是说python与c++不同,python可以有中文的变量

当然关键字并不能是关键字

同时数字还是不能作为标识符的开头

What’s more 还不能有连字符(-)

当然说字符就不得不提python保留字符(关键字)

and exec not
assert finally or
break for pass
class from print
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
2
3
>>import keyword
>>c
['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']

kwlist是个列表

python的行与缩进

关于python其有严格的代码规范,其不用{}来控制类,python最大的特点是用缩进来写块(虽然是特点,我认为这点python不如c/c++灵活)

1
2
3
4
if True:
print("man")
else:
print("out")

运行得到结

1

如果缩进有误,迎接你的belike:

SyntaxError: unindent does not match any outer indentation level

(syntax语法,identation行缩进,缺口,unident减少缩进,要学好英语啊,计算机不少报错都是英语,国际交流也要英语,ba国际服要英语(虽然可以繁中),毕业也要四级,保研要6级,当然语文也是博大精深)

多行语句与单行显示多行

如果同一行显示多条语句,语句之间以分号分割

1
x = 3; x+=2; print(x)

有一行显示多条语句就有一个语句以多行显示也就是多行语句

1
2
3
4
5
6
7
x = 3

x = 4 + \
5 + \
6
print(x)

以反斜杠’\‘表示行连续

当然[],{},或者()中的多行语句,并不需要反斜杠

数字(Number)的类型

int(整数),bool(布尔),float(浮点数),复数(complex)

字符串(String)

1.python中的’与“完全相同(c++中字符常量用’’而””用与字符串,’0’与”0”的区别是”0”相当于{‘0’,’\0’})

2.而三引号”””是用于多行字符串

3.转义字符\

4.r可以打印原始字符串

1
2
3
4
5
r"man\\"
'man\\\\'
r"man\n"
'man\\n'

大概就是让\变为\转义序列

5.按字面意义关联字符串,可以将几个字符串拼接在一起

python会自动拼接相邻的字符串

print(‘this’’is’’string’)
thisisstring

1
2
3
4
5
6
7
8
9
>>'this''is''string'
'thisisstring'
>>text = (
"This is "
"a long "
"string"
)
>>text
'This is a long 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
2
3
str = "whatcanisay"
str[0:-1]
'whatcanisa'

整数

python可以处理个任意大小的整数(而c++要声明不同的数据类型),计算机由于是由二进制组成,所以有时用16进制更方便(0x前缀)

对于很大的数的数可以在数中插入” _ “分隔符

1
2
3
4
>>c = 10_0000_00
>>c
10000000

浮点数

浮点数就是小数,由于按照科学记数法时小数点的位置可以变化,对于很大或者很小的浮点数要用科学计数法

整数是精准的,但是浮点数可能要4舍5入