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
相关产品推荐
相关产品推荐

