最近在寫編譯原理的課程設計,發現python一個很奇怪的問題,現在記錄在這裏:
我新建一個字典,因爲有時需要換不同的數據,所以習慣把原來的數據註釋掉測試。
但是發現一個很奇怪的bug,就是字典裏的多行註釋貌似也被當成了數據。
dic_a = {
"""
‘x':2,
'y':3
"""
'a':'b',
'c':'d'
}
print('keys:')
for i in dic_a.keys():
#把字典的值都打印出來
print(i)
print('values:')
for i in dic_a.values():
#把字典的值都打印出來
print(i)
print(dic_a)
#把整個字典打印出來
於是得到了這個奇怪的結果:
仔細想了一下原因,應該是註釋也被當作數據了
仔細觀察輸出後的字典,應該是因爲python‘ 和 “ 不區分導致的,第一個元素的鍵值其實是:
在註釋開始到第一個元素a那裏
最開頭的“和a右邊的‘中間那部分:""\n ‘x’:2,\n ‘y’:3\n “”"\n 'a都被當作了第一個鍵
但是不知道爲什麼把鍵值打印出來變成了:
可以看到一些引號消失了
刪掉註釋後,得到正常結果:
dic_a = {
'a':'b',
'c':'d'}
print('keys:')
for i in dic_a.keys():
print(i)
print('values:')
for i in dic_a.values():
print(i)
print('dic_a:')
print(dic_a)