一.问题的起源
笔者在复习python基础知识练习时,分别用for和while遍历用户输入的字符串。while循环中遇到了错误UnboundLocalError: local variable 'b' referenced before assignment,如下图:
二.错误的原因
在查找相关资料后,发现报错原因是:未声明函数内部的b为全局变量,函数内部存在b+=1的赋值语句,编译器默认函数内部的b为局部变量,而不是全局变量b=0,函数内部的局部变量b并未被定义。
三.解决方法
在函数内部使用global声明b为全局变量,该问题就能得到解决,如下图:
这样我们可以顺利完成for和while遍历字符串,for遍历方法如下图:
可以看出for比while简单不少。



