Jupyter Notebook中相同字符串拼接代码为何出现单词合并的情况?
问题原因分析
这事儿核心在于Jupyter Notebook的全局变量特性——只要你没重启内核,所有单元格共享同一个命名空间,变量的值会被后续操作覆盖保留。
具体到你的情况,肯定是两次执行拼接代码之间,strvar的值被悄悄修改了:
- 第一次运行拼接时,
strvar的实际值应该是" python"(注意前面带空格),所以"learn" + strvar才会输出learn python; - 而在第二次运行拼接前,你大概率修改了
strvar的赋值(比如重新运行了strvar = "python",这次没有前面的空格),或者在其他单元格里更改了这个变量,导致它变成了纯"python"字符串; - 这时候再执行
"learn" + strvar,自然就会把两个无空格的字符串直接拼在一起,得到learnpython。
验证方法
你可以在两次拼接操作之间,执行一行代码:
print(repr(strvar))
repr()会输出变量的精确内容(包括空格、特殊字符这些肉眼不容易察觉的细节),一眼就能确认strvar的前后值变化。
内容的提问来源于stack exchange,提问作者Emin_Tn
相关产品推荐
相关产品推荐

