思绪

第 114 道 | 2026 年 10 月 11 日

喜欢待在田野胜过待在家里。

喜欢在田野的夜晚。

喜欢这一刻属于自己的时间,喜欢回忆起那些在田野里纯粹的时刻。

第 113 道 | 2026 年 10 月 11 日

社保下限上调,还要让灵活就业者也都上交,「数据找人」……普通老百姓——至少灵活就业——或是没有能力缴纳社保,或是缴纳了社保也剩不了钱了啊,真就老百姓只能维持在温饱线上下了是吗?

对国内人就加收社保,但是仍然坚持给非洲国家输钱是不是?

数据找人,找不交社保的人,那有找不给个人交社保的企业单位吗?有找看不起病的人吗?有找被拖欠工资的劳动者吗?

如果强制落实双休 + 八小时工作制 + 强制缴纳社保,我们会说你不忘初心,但是你只强制缴纳社保,我们怎么能不只怀疑你缺钱花了?

第 112 道 | 2026 年 10 月 10 日

不断与人交谈,在交谈信息中获取新的线索,跟着线索认识新的人,再向新的人了解问题(有旧的也有新的问题),一步步推进,我感觉自己的田野好起来了。

第 111 道 | 2026 年 10 月 8 日

看完《灵力具现》的前半部分,蛮受用于林老师用「拟人化」和「地方化」来理解神像和乩童如何具现灵力。特别是在神像这一点上,还有内在的和外在的灵力展现,结构比较完整丰富。虽然多少惊叹于林老师的写作,却也忧心于自己的田野。我迷茫了,或者说还是迷茫,不知道自己要怎么做。

第 110 道 | 2026 年 10 月 8 日

今天使用 GPT-6.1 Sol 做了一个后台快捷上传帖子的功能,这是一次简单的测试,如果成功则可以显示本帖子。

第 109 道 | 2026 年 6 月 26 日

感觉还是玩了一个学期,没能真正系统性沉下心来学习和产出项目,因而想找实习时仍然是感觉自己什么都不懂。

不能再玩了,不能再玩了,不能再玩了。

要学习,要找实习,要找工作。

第 108 道 | 2026 年 6 月 3 日

梦

辑一 #

我离开了不知名的教室,但先前发生过什么,记忆中却几乎没有留下痕迹。在梦中,她不再是现实中她的模样,我分不清究竟是她,还是她,而只想离开,独自一人。

我仓皇地走在不知去向的道路上,沿途的景色却逐渐发生了变化。

绿色,绿色,还是绿色。

我感视到四周开出了片片绿叶,绿叶之大与繁密如同让人置身热带雨林,可颜色丝毫不暗沉,有的只是脱离现实后呈现出的鲜艳与明亮的绿。

这是希望吗?

我不知道,我仍然在途中,但不知缘由十分思念奶奶,一遍又一遍地用从小讲到大的白话呼唤「奶奶」。我好像知道这不会有回应,但不论是否有回应,我都渴望这么做,直到后来,我在梦中流下了眼泪。

我睁开双眼,意识却模糊了过去和当下,我的泪不知是在梦中流过,还是在现实滑过。

辑二 #

狂风骤雨,透过船只的窗户,我看到硇洲岛的天空与海洋融为了同一种干净的暗蓝色。

在我的视线中,它包围了世界,或许在凝视着我们。

我和巴斯上岛以后,取代那暗蓝色的是雨后干净的天色,亮堂着些许,却又因为很是潮湿而显得带着缕缕阴郁,好似还是阴沉。

我们打了一辆二轮摩托想要前往目的地,梦中的记忆视一切尽是熟悉,可怎么也找不到路。

我们似乎被一堆祭祀过后燃烧纸料剩下的火堆挡过去路,也被一化过不知雷歌戏曲还是神明妆造的小孩挡在眼前(从其脸上的妆容和衣物来看,更像雷歌戏曲的妆造,总体颜色为红色与浅粉色)。

第 107 道 | 2026 年 5 月 21 日

2026-05-21日课

《私人生活的变革》比想象中的要好读很多很多,今天一天都在看,感觉在写作上得到不少启发。

呆呆晶和 why 都是读影视、艺术相关的专业,都找到了与 AI 有关的实习,好像还挺对口。暑假要来了,我感觉自己的时间不多了,但是相关知识和技能还远远不够,有些慌张。

为身体状况感到忧虑,散光好像更严重了,感觉买的台灯亮度太高,上个学期哐哐照着看电脑,眼睛吃不消……

第 106 道 | 2026 年 5 月 15 日

2026-05-15日课

还是昼夜颠倒,有些愿望落空,有些期望难以兑现,惟愿能有所改进,但不必拘于他者的目光。

学习 Agent 的需要,还是需要补一补 python 的知识。今天下午继续学习,完成了条件语句,到循环语句部分。也正是在练习的过程中,发现自己还有许多没弄清楚的地方——学习的本质是否真的是大量练习,重复才通往「学会」?还是这只是对于部分人而言罢了,有天赋的人可以更快一些。

我不清楚,但我确实需要花多一些时间,做多一些习题,通过大量训练达到学习效果。


Summary
这一部分是在 if 条件练习中遇到的问题总结出的注意点,分为两方面——其一,条件语句内的层级关系;其二,变量与其值的表示方式。

我对 if 条件语句还是不够熟悉了解。

if 条件1:
    # 代码块A
elif 条件2:
    # 代码块B
elif 条件3:
    # 代码块C
else:
    # 代码块D

运行的原理如下:

  • 检查 条件1,如果真 → 执行A → 停止,不检查其他
  • 如果 条件1 为假 → 检查 条件2,如果真 → 执行B → 停止
  • 如果 条件2 也为假 → 检查 条件3,如果真 → 执行C → 停止
  • 如果以上都为假 → 执行D

当运行到某个 elif 时,说明前面的 if 和 elif 条件都为假,此后不需要再重复检查前面的这些条件。最好的例子如下:

x = 15

if x < 10:           # ① 假(15不小于10)
    print("A")
elif x < 20:         # ② 执行到这里时,已知 x >= 10,因为条件一为假
    print("B")       # 输出:B
elif x < 30:         # ③ 不执行
    print("C")

总结一下:

位置 已知信息
if 条件 无假设
elif 条件2 知道 条件1 == False
elif 条件3 知道 条件1 == False 且 条件2 == False
else 知道所有前面的条件都是 False

这里可以拉出 if 和 elif 来对比一下。

if a > 0

if b > 0
if a > 0

elif b > 0

在第一种情况中,两个 if 都会运行,不管第一个是否真假,第二个都会独立运行,无法根据到达第二个 if 来判断第一个 if 语句的状态。当两个 if 的语句都为真时,会导致第二个条件覆盖第一个的结果。

但第二种情况是,if 为真后执行即停止,而如果运行到了 elif,则说明 if 为假。

问题溯源 #

遇到这个问题是源于在下面这道习题中的练习:

Please write a program which asks the user for three letters. The program should then print out whichever of the three letters would be in the middle if the letters were in alphabetical order.

You may assume the letters will be either all uppercase, or all lowercase.

我原来的写法:

fir = input("1st letter:")
sec = input("2nd letter:")
thi = input("3rd letter:")

if fir < sec and sec < thi:
    print(f"The letter in the middle is {sec}")
elif thi < sec and sec < fir:
    print(f"The letter in the middle is {sec}")
elif thi < fir and fir < sec:
    print(f"The letter in the middle is {fir}")
elif sec < fir and fir <  thi:
    print(f"The letter in the middle is {fir}")
elif fir < thi and thi < sec:
    print(f"The letter in the middle is {thi}")  
elif sec < thi and thi < fir:
    print(f"The letter in the middle is {thi}")

改进的写法:

le1 = input("1st letter:")
le2 = input("2nd letter:")
le3 = input("3rd letter:")

if le1 > le2 and le1 > le3: # 此条件中 le1 最大
    if le3 > le2: # 此条件中 le3 最大
        middle = le3 # 因此 le2 在中间
    else: # 在 le1 最大的情况下,le2 比 le3 大
        middle = le2
elif le2 > le3: # 到这里,已确定 le1 不是最大,反而是 le2 最大,只需要讨论 le1 和 le3 
    if le3 > le1:
        middle = le3
    else:
        middle = le1
else: # 到这里,确定 le1 和 le2 都不是最大的,那就只能是 le3
    if le2 > le1:
        middle = le2
    else:
        middle = le1

print(f"The letter in the middle is {middle}")

注意,在改进的写法中,我犯过很严重的低级错误,即将middle = le 写成 le = middle,这是对 python 中变量本身的了解还不够。

middle = le 是指 middle 获得 le 的值,换句话,是左边获得右边的值,左边是一个存储着值的变量。

另外,上面的写法中也只有一个 print,更简洁一些。以后尽量将 print 写在最后,通过变量来存储结果。

你认为你真的理解 elif 了吗?当你以为自己真的理解时,再做一次题却马上露馅了。

我的答案:

value = int(input("Value of gift:"))
if 5000 <= value and value < 25000:
    tax = (100 + (value - 5000) * 0.08)
    print(f"Amount of tax: {tax} euros")
elif 25000 <= value and value <55000:
    tax = (1700 + (value - 25000) * 0.1)
    print(f"Amount of tax: {tax} euros")
elif 55000 <= value and value < 200000:
    tax = (4700 + (value - 55000) * 0.12)
    print(f"Amount of tax: {tax} euros")
elif 200000 <= value and value < 1000000:
    tax = (22100 + (value - 200000) * 0.15)
    print(f"Amount of tax: {tax} euros")
elif value >= 1000000:
    tax = (142100 + (value - 1000000) * 0.17)
    print(f"Amount of tax: {tax} euros")
else:
    print("No tax!")

正确答案:

value = int(input("Value of gift:"))

if value < 5000:
    tax = 0 
elif value < 25000:
    tax = (100 + (value - 5000) * 0.08)
elif value <55000:
    tax = (1700 + (value - 25000) * 0.1)
elif value < 200000:
    tax = (4700 + (value - 55000) * 0.12)
elif value < 1000000:
    tax = (22100 + (value - 200000) * 0.15)
else:
    tax = (142100 + (value - 1000000) * 0.17)

if tax == 0:
    print("No tax!")
else:
    print(f"Amount of tax: {tax} euros")

仍然是一个中心主旨:将 print 放到最后。