当前位置:首页>python>《嵌入式AI筑基笔记01:Python语法,一个C视角的翻译》

《嵌入式AI筑基笔记01:Python语法,一个C视角的翻译》

  • 2026-03-12 02:00:08
《嵌入式AI筑基笔记01:Python语法,一个C视角的翻译》

《嵌入式AI筑基笔记01:Python语法,一个C视角的翻译》

前言

写了十几年的 C 语言,天天跟内存、指针、寄存器打交道,我早已习惯了“没有轮子自己造”的生活。

  • • 项目要实时?没问题,我跑裸机,用中断保底。
  • • 要复杂功能?没问题,我上 Linux,内核自己裁剪。
  • • 启动太慢?继续裁,裁到能用的最小系统。
  • • 成本要压?再难也得想办法——因为这就是嵌入式工程师的日常。

我们这行,最不怕的就是困难。因为困难本身就是工作的一部分

学习的本质是让新知识与我们已有的知识建立联系,最后融入到我们的知识体系,内化成我们的知识。 这就需要我们带着主动的学习态度去研究,不断提出问题,思考问题,最后解决问题。

毕竟学了十几年 C,脑子里早已有一套固定的“知识体系”。我现在要做的是想办法将新知识挂上去。所以开始学 Python 之前,我给自己列了个问题清单:

  • • 指针去哪了? 内存是我自己管还是别人管?
  • • 效率怎么保证? 时间复杂度、空间复杂度?
  • • 都说 Python 简洁,简洁在哪? 跟 C 比,跟 C++ 比?
  • • 有什么“特殊的地方”要注意? 关键字、运算符、数据类型、操作方法……
  • • 三大结构(顺序、循环、分支),写法变了吗?

带着这些问题,我开始了 Python 的第一课。

学了一段时间,不得不说:Python 确实简洁。能写一行的,绝不写两行;能省掉的符号,一个不留。对于我这种强迫症,这点很舒服。但新的问题又冒出来了:内存谁管?效率谁保证? 好像……没人在乎?大家只关心“能不能跑”,“跑得快不快”是编译器的事。也许这就是两种思维方式的差异:我们习惯了自己把控一切,而 Python 的世界里,很多事仿佛交给“环境”就行了

以下让我们带着问题正式开始 Python 语言的学习,一步步揭开它的神秘面纱。

注:每一条语法,我都尽量用 C 程序员的视角看一眼——“这个和 C 一样”,“这个和 C 不一样”,“这个比 C 方便”,“这个得小心”。


注释

行注释,使用 # 号段注释,使用 ''' ''' 或 """ """

# 行注释,使用 #print('hello')  # 打印 'hello' 字符串    hello# 段注释,使用 ''''''或""" """'''多行注释 1多行注释 2'''""" 多行注释 3多行注释 4"""

C 程序员的视角:

  • • 行注释:Python 用 #,C 语言用 //
  • • 块注释:Python 用 ''' 或 """,C 语言用 /* */

注意:Python 的块注释其实是“没被赋值的字符串”,不是真正的注释语法,但用起来效果一样。


行结束

• 行结束不用 ;
• 多条语句在同一行时,用 ; 隔开,不推荐这种写法
# 行结束不用 ;print(123)      # 123print("word")   # word# 多条语句在同一行时,用 ; 隔开,不推荐这种写法print(100);print("word")    # 不推荐   100\n word

C 程序员的视角:

  • • 语句结束:Python 换行即可,C 语言必须用 ;

注意:别贪图“一行多语句”,Python 的哲学是“可读性优先”。


输入输出

输入 input

• 输入类型默认为 string
• 通过强转获得其它类型数据
# 输入类型默认为 strings = input("input:")         # input:5print(s, type(s))           # 5 <class 'str'># 通过强转获得其它类型数据n = int(input("input:"))    # input:21print(n, type(n))           # 21 <class 'int'>f = float(input("input:"))  # input:3.14print(f, type(f))           # 3.14 <class 'float'>

C 程序员的视角:

  • • 输入函数:Python 用 input(),C 语言用 scanf()
  • • 类型处理:Python 默认字符串需强转,C 语言用格式控制符指定类型

注意:C 的 scanf 用 %d%f 指定类型,Python 用 int()float() 事后转换。


输出 print

原型:print(self, *args, sep=' ', end='\n', file=None)

  • • 分隔符 sep:默认为 ' ' 空格
  • • 结束符 end:默认为 '\n' 换行符

示例:

  • • 打印空行:print()
  • • 打印文本:print("内容")
  • • 打印变量的值:print(变量名)
  • • 打印多个内容,空格连接:print(内容1,内容2)
  • • 打印多个内容,指定符号连接:print(内容1, 内容2,sep='符号')
  • • 打印内容,在结尾加上指定符号:print(内容, end='符号')
# 分隔符 sep, 默认为 ' ' 空格# 结束符 end, 默认为 '\n' 换行符print()         # 打印空行 \nprint("hello")  # 打印文本  hellotmp = 100print(tmp)      # 打印变量的值    100print("feng", 100)      # 打印多个内容,默认空格隔开 feng 100print("feng", 100, sep="---")   # 打印多个内容,使用'---'分割  feng---100print("feng", end="==") # 打印内容,结尾加上'=='   feng==

C 程序员的视角:

  • • 输出函数:Python 用 print(),C 语言用 printf()
  • • 分隔符控制:Python 用 sep 参数,C 语言需手动加空格
  • • 结尾控制:Python 用 end 参数,C 语言需手动控制 \n

注意:默认会换行,不想换行要指定 end=''


占位符

% 占位符(类C风格)

• %s 字符串
• %d 整数
• %f 浮点数
  • • 默认保留 6 位小数
    • %.nf 指定保留 n 位小数
# % 占位符# %s 字符串  %d 整数   %f 浮点数name = "feng"age = 20score = 99.55# 默认保留 6 位小数, 我是feng,今年20岁,得了99.550000分print("我是%s,今年%d岁,得了%f分" %(name, age, score))# 指定保留 1 位小数,我是feng,今年20岁,得了99.550000分print("我是%s,今年%d岁,得了%.1f分" %(name, age, score))

C 程序员的视角:

  • • 占位符语法:Python 用 % 格式化,C 语言用 printf 的 %
  • • 字符串:%s 相同
  • • 整数:%d 相同
  • • 浮点数:%f 相同

注意:%d%f%s 与 C 语言一样。


{} 占位符 .format(Python 风格)

• 基础用法:print("{},{}".format(参数1, 参数2))
• 带编号的用法:print("{0},{1}{0}".format(参数1, 参数2))
• 带名字的用法:print("{参数1名},{参数2名}".format(参数1=值, 参数2=值))
• 小数精度控制:print("{:.nf}".format(参数))
# {}占位符.formatname = "feng"age = 20score = 99.55# 基础用法,参数顺序填入前面占位   我是feng,今年20岁print("我是{},今年{}岁".format(name, age))# 带编号用法,可重复使用,依据编号填入前面占位    我是feng,今年20岁,他们叫我fengprint("我是{0},今年{1}岁,他们叫我{0}".format(name, age))# 带名字用法,依据名字填入前面占位  我是seven,今年18岁,他们叫我sevenprint("我是{name},今年{age}岁,他们叫我{name}".format(name="seven", age=18))# 精确小数位 1 位     分数99.5print("分数{:.1f}".format(score))

C 程序员的视角:

  • • 占位符:Python 用 {},C 语言无对应
  • • 参数顺序:Python 可按顺序或编号,C 语言必须按顺序

注意:编号和名字可以重复用,不用像 C 那样传好几遍。


f-string(Python 3.6+,最推荐)

• 基础用法:print(f'{参数1}{参数2}')
• 直接做运算:print(f'{参数1+参数2}')
• 精确小数位:print(f'{参数:.1f}')
• 控制宽度(n)与对齐:
  • • 右对齐:print(f'{参数:>n}')
    • 左对齐:print(f'{参数:<n}')
    • 居中对齐:print(f'{参数:^n}')
  • • 千位分隔符:print(f'{参数:,}')
  • • 显示百分号:print(f'{参数:.0%}')
# f-stringname = "feng"age = 20score = 99.55# 基础用法  我是feng,今年20岁print(f'我是{name},今年{age}岁')# 直接做运算 20 + 1 = 21print(f'{age} + 1 = {age + 1}')# 精确小数位 1 位 分数99.5print(f'分数{score:.1f}')# 控制宽度和对齐,占6个字符宽度print(f"姓名:{name:>6}")   # 右对齐  姓名:  fengprint(f"姓名:{name:<6}")   # 左对齐  姓名:fengprint(f"姓名:{name:^6}")   # 居中对齐 姓名: feng# 千位分隔符(处理大数字很有用)number = 1234567890print(f"{number:,}")  # 1,234,567,890# 显示百分号num = 0.85print(f"正确率:{num:.%}")   # 正确率:85.0%print(f"正确率:{num:.0%}")  # 正确率:85%

C 程序员的视角:

  • • 变量嵌入:Python 可直接 {变量名},C 语言无对应
  • • 表达式:Python 可直接 {age+1},C 语言无对应

注意:这是最推荐的写法


变量

定义

• Python 是弱类型语言,不需要声明变量类型
• 支持多个变量一起定义
# 定义,python 是弱类型语言,不需要声明变量类型a = 10str = "3.5"print(type(a), type(str))  # <class 'int'> <class 'str'># 支持多变量一起定义a, b = 10, 3.3print(a, type(a), b, type(b))  # 10 <class 'int'> 3.3 <class 'float'>m, n = 12, "hello"print(m, type(m), n, type(n))  # 12 <class 'int'> hello <class 'str'>

C 程序员的视角:

  • • 变量声明:Python 不需要,C 语言必须 int a;
  • • 类型检查:Python 运行时确定,C 语言编译时确定

注意:Python 是“看值定类型”,你赋什么值,它就是什么类型。变量定义不用写 intchar 了,直接 a=10 就行。支持多变量同时赋值。


获取变量类型

• type()
# 获取变量类型 type()val = 10print(val, type(val))   # 10 <class 'int'>

C 程序员的视角:

  • • 查看类型:Python 用 type(),C 语言用 sizeof() 只能看大小,不能看类型

注意:C 里你没法在运行时问“这个变量是什么类型”,Python 可以。


类型转换

• 强转为整型:int()
• 强转为浮点型:float()
• 强转为字符串:str()
# 强转数据为整型f = 10.5s = "12"print(int(f), int(s))       # 强转为整型 10 12# 强转为浮点数m = 5s = "5.67"print(float(m), float(s))   # 强转为浮点数 5.0  5.67# 强转为字符串f = 3.14print(str(f), type(str(f))) # 强转为字符串 3.14 <class 'str'>

C 程序员的视角:

  • • 类型转换:Python 用 int()float() 等函数,C 语言用隐式转换或强制 (int)

注意:强转与 C 语言类同,C 语言没有字符串转换函数,int("12") 可以把字符串转数字,但如果字符串是 "12.5" 会报错,得先转 float。


命名

• 与 C 语言一致,支持数字、字母、下划线,不能数字开头
• 区分大小写
• 中文也可以,但是不建议
• 命名可保留现在习惯,全小写用 _ 分割,如 my_teacher
# 变量命名# 与C语言一致,支持数字、字母、下划线,不能数字开头d = 12_x = 3.12x12 = 5.65print(d, _x, x12)   # 12 3.12 5.65# 区分大小写str = "hello"Str = "feng"print(str, Str)     # hello feng# 中文也可以,但是不建议你好 = 3print(你好, type(你好)) # 3 <class 'int'># 命名可保留现在习惯,全小写用_分割,如my_teacher

删除

• 删除变量:del()
# 删除变量 dela = 10print(a)    # 10del aprint(a)    # 报错 NameError: name 'a' is not defined

关键字

• 获取关键字:keyword.kwlist
# 关键字# 获取所有关键字''' ['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']"'''import keywordprint(keyword.kwlist)   # 获取所有关键字

关键字列表:['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']


交换两数的值

• 交换两数的值:a, b = b, a
# 交换两数的值a, b = 10, 12a, b = b, a     # 这写法比 C 语言简单多了print(a, b)     # 12 10

C 程序员的视角:

  • • 交换变量:Python 用 a, b = b, a,C 语言需要临时变量 t = a; a = b; b = t;

注意:我看到这,沉默了......


运算符

算术运算符

• + - * / 加减乘除
• % 取余
• // 向下取整
• ** 次方,幂
• e 科学计数法
# 算术运算符# + - * / 加减乘除a, b = 10, 0.5print(a+b, a-b, a*b, a/b)   # 10.5 9.5 5.0 20.0# % 取余m = 12print(m%5, m%6)     # 2 0# // 向下取整num = 5print(num//2, num//3)   # 2 1# ** 次方,幂n,m = 2, 3print(n**m, m**n)   # 2^3 3^2 8 9# e 科学计数法a, b = 3.14*10**3, 3.14e3print(a, b)     # 3140.0 3140.0

C 程序员的视角:

  • • 加减乘除:Python 用 + - * /,C 语言相同
  • • 取余:Python 用 %,C 语言相同
  • • 向下取整除法:Python 用 //,C 语言无对应,/ 对整数是截断
  • • 次方:Python 用 **,C 语言用 pow() 函数

注意:// 是“向下取整”,不是“向零取整”。

  • • 在 C 里:-5/2 = -2(向零取整)
  • • 在 Python 里:-5//2 = -3(向下取整)

赋值运算符

• = 右边先运算

复合运算符

• +=-=*=/=
# 复合运算符 += 、-= 、*=、/=a = 10a += 2print(a)    # 12a -= 2print(a)    # 10a *= 2print(a)    # 20a /= 2print(a)    # 10.0

比较运算符

• >>=<<===!=
• 结果为 bool 变量
# 比较运算符 >、>=、 <、 <=、==、!=# 比较结果为 bool 变量a, b = 10, 4    # True True False False False Trueprint(a>b, a>=b, a<b, a<=b, a==b, a!=b)

成员运算符

• in 是成员
• not in 不是成员
# 成员运算符# in 是成员,not in 不是成员print(2 in [1, 2, 5])       # in 是成员 Trueprint(3 not in [1, 3, 5])   # not in 不是成员 False

身份运算符

• 比较两者内存地址
• is 两者一样
• is not 两者不一样
• id() 取内存地址,类似 C 语言指针
# 身份运算符a = [100, 101]b = a           # 赋值,实际b得到的是a地址c = a.copy()    # 拷贝一份a,c与a地址并不一样# 打印a,b,c地址 a:2594599232008, b:2594599232008, c:2594599232072print(f'a:{id(a)}, b:{id(b)}, c:{id(c)}')print(a is b, a is not b)   # True Falseprint(a is c, a is not c)   # False True

C 程序员的视角:

  • • 比较内存地址:Python 用 is,C 语言用 == 比较指针值或 memcmp()
  • • 取地址:Python 用 id(),C 语言用 &

注意:C 语言“值”和“地址”是分开的。is 本质上比较的就是指针。


逻辑运算符

• andornot 与或非
• 隐藏的 bool 规则:
  • • 数字类型:0 是假,其他为真
    • 字符串类型:空字符串 '' 为假,其他为真
    • bool 类型:False 为假,True 为真
    • NoneType 类型:None 是假
    • list 类型:空列表 [] 是假,其他为真
    • tuple 元组:空元组 () 为假,其他为真
    • dict 字典:空字典 {} 为假,其他为真
# 逻辑运算符# and、or、not 与或非print(not True, not False)              # False Trueprint(True or False, True or True)      # True Trueprint(True and False, True and True)    # False True# 隐藏的 bool 规则print(bool(0), bool(23))        # 数字类型: 0是假,其他为真 False Trueprint(bool(''), bool('23'))     # 字符串类型: 空字符串''为假,其他为真 False Trueprint(bool(None))               # NoneType类型: None是假 Falseprint(bool([]), bool([2,3]))    # list类型:空列表[]是假,其他为真 False Trueprint(bool(()), bool((2,3)))    # tuple元组: 空元组()为假,其他为真 False Trueprint(bool({}), bool({"s":1}))  # dict字典:空字典{}为假,其他为真 False True

C 程序员的视角:

  • • 逻辑运算符:Python 用 and or not,C 语言用 && || !
  • • 假值规则:Python 中 False、0、''、[]、()、{}、None 都是假,C 语言只有 0/NULL 是假

注意:C 语言里“假”只有 0NULL);Python 里“空”的东西都是假。


运算符优先级

• 优先级与 C 语言基本一致
• ** 幂运算在算术运算符中优先级最高
• 不明白的加 () 保证

注意事项

• Python 中没有单目运算符 ++--
  • • 使用 a += 1 实现 a++
    • 使用 a -= 1 实现 a--
• Python 中没有三目运算符 ?:
  • • 使用单行 if-else 实现三目运算符:
    • c = a if a > b else b

总结

学了这几天 Python,我给自己列了几条“从 C 过来要记住的事”:

1. 没有 ++--C 语言有 ++--,Python 要用 += 1-= 1

2. 没有 ? : 三目C 语言有 ? :,Python 要用 a if cond else b

3. 缩进决定代码块C 语言用 {} 决定代码块,Python 用缩进,别混用空格和 Tab

4. 变量不用声明类型C 语言必须声明类型,Python 靠赋值确定类型

5. // 是向下取整C 语言的 / 是向零取整,负数除法要注意

6. and or notC 语言用 && || !,符号变了

7. 空的东西都是假C 语言只有 0 和 NULL 是假,Python 中 ''[]None 都是假


这是 Python 学习的第一篇,也是最基础的一篇——语法规则。

学完这一课,我的三个感受:

  1. 1. 熟悉的地方:运算符、大部分语法结构,可以直接平移
  2. 2. 陌生的地方:类型系统、代码块组织、假值规则,得重新适应
  3. 3. 惊喜的地方:交换变量、f-string、多变量赋值

接下来学什么

这只是 Python 学习的“开胃菜”。按照计划,后面还有:

第一篇:语法规则(与 C 的对比) ✅ 已完成第二篇:数据结构:列表、元组、字典、集合 ⏳ 准备中第三篇:流程控制:条件、循环、推导式 ⏳第四篇:函数与模块:定义、参数、作用域 ⏳第五篇:对象和类:Class ⏳第六篇:文件操作与异常处理 ⏳第七篇:NumPy 入门:像操作内存一样操作数据 ⏳第八篇:Pandas 基础:给数据“做表格” ⏳

一步一步来,不急。

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-03-27 19:57:02 HTTP/2.0 GET : https://f.mffb.com.cn/a/479356.html
  2. 运行时间 : 0.226999s [ 吞吐率:4.41req/s ] 内存消耗:4,854.71kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=dbf80554de068bb21879fe749abbc277
  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.000877s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001580s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000733s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.001913s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001510s ]
  6. SELECT * FROM `set` [ RunTime:0.002168s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001608s ]
  8. SELECT * FROM `article` WHERE `id` = 479356 LIMIT 1 [ RunTime:0.010618s ]
  9. UPDATE `article` SET `lasttime` = 1774612623 WHERE `id` = 479356 [ RunTime:0.010674s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.000887s ]
  11. SELECT * FROM `article` WHERE `id` < 479356 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001184s ]
  12. SELECT * FROM `article` WHERE `id` > 479356 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.001278s ]
  13. SELECT * FROM `article` WHERE `id` < 479356 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.004806s ]
  14. SELECT * FROM `article` WHERE `id` < 479356 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.027162s ]
  15. SELECT * FROM `article` WHERE `id` < 479356 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.006145s ]
0.231424s