当前位置:首页>python>第四课:Python 速成 —— 看懂 Agent 代码的最小必备

第四课:Python 速成 —— 看懂 Agent 代码的最小必备

  • 2026-06-27 17:54:37
第四课:Python 速成 —— 看懂 Agent 代码的最小必备

🎯 这一课要达成什么:补上一块关键的"过渡台阶"。前三课我们一行代码都没正式写过,但从下一课开始要读懂、修改真正的 Agent 代码了。这一课专门教你恰好够用的 Python——不多不少,刚好让你翻开第五课时每一行都看得懂。

⏱ 预计学习时间:6–10 小时(边读边在电脑上敲,比只看效果好十倍)

📌 难度:⭐⭐☆☆☆(零基础友好,但这一课务必动手敲,不能只用眼睛看)

🧩 前置要求:完成第一课(环境已配好)+ 第二、三课(理解 Agent 概念与提示工程)。


写在最前面:为什么突然插进来一节"学 Python"?

你可能发现了一个落差:

  • • 第二、三课:全是概念和在网页上跟 AI 聊天,标注着"不需要编程基础",跟得很轻松。
  • • 下一课(第五课):难度一下跳到 ⭐⭐⭐,开头就要你"实现第一个真正能运行的 ReAct Agent",满屏代码。

中间这道坎,如果没人扶一把,很多人就在这里放弃了——不是因为笨,而是没人把"从看不懂代码到看得懂代码"这一步铺平

这一课就是那块台阶。我不会教你完整的 Python(那要几个月,也偏离我们的主线)。我只教后面几课 Agent 代码里真正会用到的那几样东西,而且每讲一个语法,都直接告诉你"它在 Agent 代码里长什么样、是干嘛的"。

💡 学习方式很重要:这一课一定要打开电脑、亲手敲。看代码就像看别人游泳,自己不下水永远学不会。用第一课建好的环境,新建一个 learn.py 文件,边读边把例子敲进去运行。

🗺 这一课在课程地图里的位置:第二课讲过 Agent 由"大脑/记忆/工具箱/规划"四件套组成。这一课不属于其中任何一件,它是实现这四件套的基本工具——就像盖房子前要先备好锤子、锯子、卷尺。备齐了它们,下一课才能动手开工。


目录

  1. 1. 先看一眼"终点":下一课的代码长什么样
  2. 2. 变量:给数据起个名字
  3. 3. 字符串与 f-string:处理文字
  4. 4. 列表与字典:装东西的两种容器
  5. 5. 条件判断:让程序会"选择"
  6. 6. 循环:让程序会"重复"
  7. 7. 函数:把一段本领打包命名
  8. 8. import:借用别人写好的工具
  9. 9. try/except:优雅地处理出错
  10. 10. 回到"终点":现在我们逐行读懂下一课的代码
  11. 11. 课后作业
  12. 12. 常见问题解答

1. 先看一眼"终点":下一课的代码长什么样

我们先把第五课一开头会出现的真实代码摆出来。现在看不懂完全正常——这正是这一课要解决的。把它当成"通关目标",学完第 9 节再回来,你会发现每一行都懂了。

def search_web(query: str) -> str:
    """模拟网络搜索工具"""

    mock_results = {
        "北京天气"
: "北京今日:晴,气温 22°C,微风",
        "python"
: "Python 是一种简单易学的编程语言",
    }
    for
 key, value in mock_results.items():
        if
 key in query:
            return
 value
    return
 f"搜索结果:关于'{query}'找到了一些相关信息"

数一数,这短短几行就用到了:函数(def)、参数、字典、for 循环、if 判断、in、return、f-string。这一课我们就一个一个把它们拿下。


2. 变量:给数据起个名字

一句话理解:变量就是给一个数据贴个标签,方便以后反复用它。

name = "小明"          # 把"小明"这段文字,贴上 name 这个标签
age = 25              # 把数字 25 贴上 age 标签
price = 19.9          # 小数也行
is_done = True        # True / False 表示"是/否",叫布尔值

print
(name)           # 屏幕显示:小明
print
(age + 1)        # 屏幕显示:26(变量可以参与运算)

💡 它在 Agent 代码里:你会看到 client = Anthropic(...)goal = "调研最流行的编程语言" 这样的写法,就是把"AI 客户端""任务目标"这些东西贴上标签,后面好反复使用。

三种最常见的数据类型

类型
英文
例子
是什么
字符串
string / str
"你好"
一段文字,要用引号括起来
整数
integer / int
25
整数,不带引号
小数
float
19.9
带小数点的数
布尔值
boolean / bool
True
 / False
真 / 假,只有这两个值

3. 字符串与 f-string:处理文字

AI 程序的本质就是"处理文字"——你发文字给 AI,AI 回文字给你。所以字符串是 Agent 代码里最常见的东西

greeting = "你好"
target = "世界"

# 把两段文字拼起来(用加号)

message = greeting + "," + target      # 结果:"你好,世界"

🌟 f-string:往文字里"塞变量"(重点中的重点)

经常你想说"你好,{某个名字}",这个名字是个变量。用 f-string 最方便——在引号前加个 f,然后把变量用 {} 包起来塞进去:

name = "小明"
score = 95

# 注意引号前的 f

result = f"同学 {name} 这次考了 {score} 分"
print
(result)        # 屏幕显示:同学 小明 这次考了 95 分

💡 它在 Agent 代码里随处可见:比如 return f"搜索结果:关于'{query}'找到了信息",就是把用户搜的关键词 query 塞进一句回复里。你在第一课的迷你 Agent 里也见过 f"第 {round_num} 轮思考"f-string 是你必须形成肌肉记忆的语法。


4. 列表与字典:装东西的两种容器

当你有"一堆"数据要装,Python 给了两种最常用的容器。

📋 列表(list):一排带编号的格子

一句话理解:列表就是一排有顺序的格子,用方括号 [],靠"第几个"来取。

fruits = ["苹果", "香蕉", "橙子"]    # 一个装了 3 样水果的列表

print
(fruits[0])      # 苹果(注意!编号从 0 开始,不是 1)
print
(fruits[1])      # 香蕉
print
(len(fruits))    # 3(len 告诉你列表里有几个)

fruits.append("葡萄") # 在末尾再加一个

⚠️ 新手必踩的坑:编号(叫"索引")从 0 开始。第一个是 [0],第二个是 [1]。这就是为什么 Agent 代码里取 AI 回复要写 message.content[0]——取的是"第 0 个",也就是第一个。

💡 它在 Agent 代码里messages=[{...}, {...}] 就是一个列表,里面按顺序装着你和 AI 的多轮对话。第一课让 AI 记住上文,靠的就是往这个列表里不断 append 新对话。

🗂 字典(dict):贴了标签的储物柜

一句话理解:字典用大括号 {},不靠"第几个",而靠"名字"(叫 key,键)来取东西。就像储物柜,你靠柜子上的名字找,而不是数第几个。

person = {
    "name"
: "小明",     # "name" 是键(key),"小明" 是值(value)
    "age"
: 25,
    "city"
: "北京"
}

print
(person["name"])   # 小明(用键来取值,括号里写键的名字)
print
(person["age"])    # 25

person["job"] = "程序员"  # 新增一对

💡 它在 Agent 代码里极其重要:你发给 AI 的每条消息都是个字典——{"role": "user", "content": "你好"}role 这个键说明"谁说的",content 这个键放具体内容。下一课那个 mock_results 也是字典:键是"搜索词",值是"搜索结果"。

列表套字典:最常见的组合

Agent 代码里,"多轮对话"长这样——一个列表,里面装着多个字典

messages = [
    {"role": "user", "content": "世界最高峰是?"},
    {"role": "assistant", "content": "珠穆朗玛峰"},
    {"role": "user", "content": "那第二高呢?"}
]
# messages[0] 取出第一个字典;messages[0]["content"] 取出它的内容

看懂这个结构,你就看懂了 80% 的 Agent 对话代码。


5. 条件判断:让程序会"选择"

一句话理解if 让程序根据情况走不同的路,就像"如果下雨就带伞,否则不带"。

score = 85

if
 score >= 90:
    print
("优秀")
elif
 score >= 60:        # elif = else if,再判断一个条件
    print
("及格")
else
:
    print
("不及格")
# 这段会输出:及格

⚠️ Python 靠"缩进"分组if 下面那行前面的空格(通常 4 个)不是装饰,是语法!它表示"这行属于 if 管的"。缩进错了程序就报错。这是 Python 和别的语言很不一样的地方,新手一定要注意。

常用的判断符号

写法
意思
==
相等(两个等号,一个等号是赋值!)
!=
不相等
><>=<=
大于、小于、大于等于、小于等于
in
包含 / 在里面

💡 它在 Agent 代码里if key in query: 意思是"如果搜索词里包含这个关键字"。in 在 Agent 代码里很常用,用来检查"某个东西在不在某段文字 / 某个列表里"。


6. 循环:让程序会"重复"

还记得第二课讲的 Agent "感知-思考-行动-观察"循环吗?那个"循环"在代码里就是用 for 或 while 实现的。

🔁 for 循环:把一堆东西挨个处理一遍

fruits = ["苹果", "香蕉", "橙子"]

for
 fruit in fruits:        # 把 fruits 里的每个东西,轮流叫做 fruit
    print
(f"我喜欢吃{fruit}")
# 会依次输出:我喜欢吃苹果 / 我喜欢吃香蕉 / 我喜欢吃橙子

遍历字典(Agent 代码里常见)用 .items(),一次拿到键和值:

person = {"name": "小明", "age": 25}

for
 key, value in person.items():
    print
(f"{key} 是 {value}")
# 输出:name 是 小明 / age 是 25

💡 它在 Agent 代码里:下一课那段 for key, value in mock_results.items(): 就是"把模拟搜索结果里的每一对都翻一遍,看哪个匹配"。

🔢 想重复固定次数:range

for i in range(3):          # range(3) 产生 0, 1, 2
    print
(f"第 {i} 次")

💡 你在第一课的迷你 Agent 里见过 for round_num in range(1, 4):,就是让它思考第 1、2、3 轮。


7. 函数:把一段本领打包命名

一句话理解:函数就是把"一段会做某件事的代码"打包,起个名字,以后想用直接喊名字,不用重写。就像把"泡面步骤"打包成"泡面"这个动作,以后说"泡面"就行。

# 定义一个函数:用 def 开头
def
 greet(name):              # name 是"输入"(叫参数)
    return
 f"你好,{name}!"   # return 是"输出"(把结果交回去)

# 使用(调用)它

message = greet("小明")        # 把"小明"作为输入传进去
print
(message)                # 你好,小明!

看懂带类型标注的函数(下一课的写法)

下一课的函数写得更"正式"一点,多了 : str 和 -> str

def search_web(query: str) -> str:
    return
 f"搜索了:{query}"

逐块翻译:

  • • def search_web → 定义一个叫 search_web 的函数
  • • (query: str) → 它需要一个输入 query: str 是提示这个输入应该是字符串(提示而已,不强制)
  • • -> str → 提示这个函数会返回一个字符串
  • • 中间的 """...""" → 三引号包起来的是文档字符串,给人看的说明,对程序运行无影响

💡 为什么要打类型标注? 纯粹是为了让代码更好读、工具能帮你检查。对你现在来说,看到 : str-> str 知道"哦这是在说输入输出大概是什么类型"就够了,不用纠结。

🤯 一个会让新手震惊的点:在 Python 里,函数本身也能当数据存进字典。下一课会有个 TOOLS = {"search_web": {"function": search_web, ...}} 的写法,就是把 search_web 这个函数当成值存了起来(注意没加括号,加括号是"调用",不加是"把函数本身交出去")。这是 Agent 工具箱机制(回忆第二课四件套之一)的核心技巧,后面讲工具使用和函数调用时会反复用到。现在知道"函数能被存起来、传来传去"即可。


8. import:借用别人写好的工具

一句话理解:你不用什么都自己造。import 就是"把别人写好的工具搬进来用"。

import os                          # 搬进来整个 os 工具箱
from
 datetime import datetime      # 只从 datetime 工具箱里拿 datetime 这一件
from
 anthropic import Anthropic    # 从 anthropic 包里拿 Anthropic 这个工具
from
 openai import OpenAI          # 从 openai 包里拿 OpenAI 这个工具(DeepSeek 用这个)

💡 它在 Agent 代码里:每个 Agent 文件开头那几行 import,就是在把要用的工具(读环境变量的 os、调用 AI 的 anthropic 或 openai、处理时间的 datetime 等)先搬上桌。你在第一课已经见过、也亲手用过了。


9. try/except:优雅地处理出错

一句话理解:有些操作可能会失败(比如算一个非法的式子、网络断了)。try/except 让程序"试一下,万一出错了别崩溃,改走另一条路"。

try:
    result = 10 / 0          # 除以 0 会出错
    print
(result)
except
 Exception as e:        # 万一出错,就跑到这里来
    print
(f"出错了:{e}")
# 程序不会崩溃,而是输出:出错了:division by zero

💡 它在 Agent 代码里很常见:调用 AI、调用工具、算表达式都可能失败。下一课的计算器工具会用 try/except 包住 eval(expression),就是"算一下,算不出来就返回一句友好的错误提示,而不是让整个 Agent 崩掉"。一个健壮的 Agent,必然到处是 try/except


10. 回到"终点":现在我们逐行读懂下一课的代码

学完上面 8 样,我们回到第 1 节那段"看不懂"的代码。现在逐行拆,你会发现全懂了:

def search_web(query: str) -> str:        # ① 定义函数,输入一个字符串 query,返回字符串
    """模拟网络搜索工具"""
                  # ② 文档字符串,给人看的说明
    mock_results = {                       # ③ 一个字典:键是搜索词,值是结果
        "北京天气"
: "北京今日:晴,气温 22°C",
        "python"
: "Python 是一种编程语言",
    }
    for
 key, value in mock_results.items():# ④ for 循环,把字典每一对都翻一遍
        if
 key in query:                   # ⑤ if 判断:如果搜索词里包含这个键
            return
 value                   # ⑥ 就返回对应的值,函数结束
    return
 f"关于'{query}'没找到精确结果"    # ⑦ 都没匹配上,返回一句 f-string 兜底

读懂了吗?这就是这一课的成果——你已经能看懂真实的 Agent 工具代码了。 下一课满屏的代码,骨架都是这八样东西的组合。

🎯 关键心态:你不需要能"凭空默写"出这些代码,能"读懂"和"照着改"就足够开始下一课了。写代码的熟练度是跟着后面几课敲出来的,不是这一课就要练成的。


11. 课后作业

这一课作业必须在电脑上实际运行,不能只看。新建一个 learn.py,把每题的代码敲进去跑。

✅ 必做任务

  • 任务 1:创建一个字典,存你自己的信息(名字、年龄、城市),然后用 f-string 打印成一句话:"我叫 X,今年 X 岁,住在 X"
  • 任务 2:创建一个列表,装 5 个你喜欢的食物,用 for 循环逐个打印"我喜欢吃 X"
  • 任务 3:照着第 10 节的 search_web 函数,自己手敲一遍(不要复制),改成你自己的几个关键词和结果,然后调用它试几个不同的查询
  • 任务 4:写一个函数 is_pass(score),输入分数,用 if/else 返回"及格"或"不及格"

📝 理解题(不用写代码,用自己的话回答)

  1. 1. 列表用 []、靠编号取;字典用 {}、靠键取。各举一个"用列表更合适"和"用字典更合适"的生活例子。
  2. 2. message.content[0] 里的 [0] 为什么是取"第一个"而不是"第零个"?
  3. 3. 函数里的 return 和 print 有什么不一样?(提示:一个是"把结果交回去给程序继续用",一个是"显示给人看")

🌟 选做任务(想多练的同学)

  • 把第一课的 mini_agent.py 代码重新读一遍,这次试着说出每一行用到了这一课学的哪个知识点(变量?f-string?列表?字典?for?……)。这个练习能让你直观感受"概念→代码"是怎么一一对应的。

  • 写一个简单的"工具注册表"字典,仿照下一课会出现的 TOOLS 结构,把你任务 3、4 写的两个函数都登记进去(体会"把函数当值存进字典"):

    TOOLS = {    "search_web": {"function": search_web, "description": "模拟搜索"},    "is_pass":    {"function": is_pass,    "description": "判断及格"},}# 然后试试:TOOLS["is_pass"]["function"](85)

12. 常见问题解答(踩坑急救站)

Q:我必须把这些语法全背下来才能学下一课吗?

A:完全不用背!目标是能读懂、能照着改,不是默写。就像看菜谱做菜,你不需要背下菜谱,能看懂、能跟着做就行。语法的熟练度会在后面几课不断敲代码的过程里自然长出来。


Q:代码报错了,提示一堆英文,怎么办?

A:报错是学编程的日常,不是你做错了。三个办法:(1) 仔细看报错的最后一行,通常最关键;(2) 重点检查缩进(空格对齐)和引号、括号有没有配对,这是新手 90% 的错误来源;(3) 把报错信息直接复制给 AI(Claude/DeepSeek)问"这是什么意思、怎么改"——这其实是真实开发者每天都在做的事。


Q:为什么 Python 这么在意缩进(前面的空格)?

A:别的很多语言用大括号 {} 来分组,Python 选择用缩进来分组,让代码看起来更清爽。代价就是缩进变成了语法的一部分,不能随便加减空格。建议统一用 4 个空格(大多数编辑器按一下 Tab 键会自动变成 4 个空格)。


Q:我是文科生 / 数学不好,能学会编程吗?

A:能。编程和数学好不好关系不大,更像学一门"和电脑沟通的语言"——有它的语法规则,多用就熟。我们这门课用到的数学几乎为零。你已经走到这里,说明完全有能力继续。


Q:这一课学的够用吗?后面会不会还有看不懂的语法?

A:这一课覆盖了 Agent 代码 80% 以上的常见语法,足够你顺利进入第五课起的后续几课。偶尔遇到新语法(比如类 class、装饰器)时,相关课会现场讲解,或者你随手问 AI 即可。不用担心"没学全",编程本来就是用到再查、边做边学。


这一课小结

这一课拿下了(看懂 Agent 代码的最小必备):
✅ 变量 —— 给数据贴标签
✅ 字符串 & f-string —— 处理文字、往文字里塞变量
✅ 列表 [] & 字典 {} —— 两种装东西的容器(重点!对话就是"列表套字典")
✅ if 条件判断 —— 让程序会选择(注意缩进!)
✅ for/while 循环 —— 让程序会重复(Agent 循环的代码本体)
✅ 函数 def —— 把本领打包命名(还能当值存进字典!)
✅ import —— 借用别人写好的工具
✅ try/except —— 优雅地处理出错

最重要的收获:
🌟 你现在能"读懂并修改"真实的 Agent 代码了。
   不求默写,但求看懂——这就足够迈进下一课。

下一课预告:
🔜 第五课:Agent 推理模式(ReAct)
   —— 现在你能看懂代码了,我们来实现第一个
      真正能运行、会"边想边做"的 ReAct Agent!
   —— 第二课讲的"感知-思考-行动-观察"循环,
      这一课终于要从概念变成你电脑上跑起来的真代码了。

📬 完成这一课作业后,把你手敲的 search_web 函数发我看看,再告诉我哪个语法点之前最绕、现在通了没——确认你真的站稳了这块台阶,我们再上第五课!

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-07-03 03:48:10 HTTP/2.0 GET : https://f.mffb.com.cn/a/499026.html
  2. 运行时间 : 0.554923s [ 吞吐率:1.80req/s ] 内存消耗:4,726.66kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=be0c40f3db4a261390b9aaba83cbd7e5
  1. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/database.php ( 2.48 KB )
  34. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/runtime/temp/067d451b9a0c665040f3f1bdd3293d68.php ( 11.98 KB )
  140. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.001188s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001895s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.007594s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.029654s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001501s ]
  6. SELECT * FROM `set` [ RunTime:0.007016s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.002087s ]
  8. SELECT * FROM `article` WHERE `id` = 499026 LIMIT 1 [ RunTime:0.062852s ]
  9. UPDATE `article` SET `lasttime` = 1783021690 WHERE `id` = 499026 [ RunTime:0.004693s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.007381s ]
  11. SELECT * FROM `article` WHERE `id` < 499026 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.013514s ]
  12. SELECT * FROM `article` WHERE `id` > 499026 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.003688s ]
  13. SELECT * FROM `article` WHERE `id` < 499026 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.031153s ]
  14. SELECT * FROM `article` WHERE `id` < 499026 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.128720s ]
  15. SELECT * FROM `article` WHERE `id` < 499026 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.016126s ]
0.558954s