You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MicroPython中if语句判断失败问题求助

问题原因及解决方法

你忽略了readline()的一个特性:它读取的内容会包含行尾的换行符(\n,部分系统是\r\n)。从你的打印输出看,s = 1后面其实隐藏了一个换行,只是打印时自动换行了,实际s的值是"1\n",自然和纯字符串"1"比对不相等;直接和整数1比对的话,字符串和整数类型不同,结果也必然是False。

解决方法很简单,读取后先把字符串两端的空白字符(包括换行、空格、制表符等)去掉即可:

写法一修改后:

s = f.readline().strip()
print("s = ",s)
if s == "1":
    debug = True
else:
    debug = False
print("debug = ",debug)

写法二修改后:

s = f.readline().strip()
print("s = ",s)
debug = True if s == "1" else False
print("debug = ",debug)

如果只想去掉换行符(保留字符串中其他可能的空格),可以用rstrip('\n')代替strip(),比如s = f.readline().rstrip('\n')。

内容的提问来源于stack exchange,提问作者PhilTilson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 08:53:20