python 字符串拼接提示错误

fl = os.listdir("./MDK-ARM")
for i in fl:
    fname,fext = os.path.splitext(i)
    if fext == ".uvprojx":
        fprj = i
        print("找到",fprj,"文件...")
    if fext == ".s":
        fasm = i
        print("找到",fasm,"文件...")

fasm = "./MDK-ARM/"+fasm
代码可以运行,但是编辑器提示错误看着很难受,未绑定变量,不懂什么意思

img

fasm的类型输出是str
怎么消除这个错误?

fasm没有初值呀
循环之前,你应该先执行fasm=''或者fasm=str()
因为 fasm = i是写在if里面的,万一if没有进,你后面相当于fasm没有定义
虽然python里没有块的概念,你在for里定义的变量出了for一样能用
但是在一开始将需要用到的变量先初始化好是个良好的编程习惯,不容易出奇怪的bug

就是提示你这样写可能会引发错误。
当你两个if条件都没满足或者没有进行for循环,你的fasm变量是没有定义的。
这种情况下。你直接拿来进行拼接就会产生错误

你需要在代码的最前面给fasm赋予初始值

fasm="default"
fl = os.listdir("./MDK-ARM")
for i in fl:
    fname,fext = os.path.splitext(i)
    if fext == ".uvprojx":
        fprj = i
        print("找到",fprj,"文件...")
    if fext == ".s":
        fasm = i
        print("找到",fasm,"文件...")
 
fasm = "./MDK-ARM/"+fasm


可以看下python参考手册中的 python- 字符串