在OSX上运行Jupyter(核心:4.4.0,笔记本:5.7.8)python3笔记本。
笔记本似乎容易混淆如何自动缩进新行。具体来说,我的更复杂的单元格嵌套了defs,ifs和whiles等缩进,使Jupyter锁定到一个怪异的4.5选项卡自动缩进,该缩进不符合我的任何缩进级别,并导致大量按键浪费修复每个缩进。单。新。线。
要清楚一点,我不是在问如何更改默认制表符间距,而是在我问“ return”以换行时,如何将jupyter自动缩进停止为疯狂。
一个潜在的错误来源是我使用f文字字符串,Jupyter有时会搞乱哈希和嵌套引号的语法高亮显示,例如。 print(f"Output for #{myNum} | {myDict['namedItem']}")
。
欢迎任何可能导致此问题的提示。
答案 0 :(得分:0)
答案:是的,它是f字符串文字。 f字符串中的嵌套引号会破坏单元格中的缩进,将新行默认设置为f字符串中引号的开头。
例如
print(f"Output for #{myNum} | {myDict['namedItem']}")
# Newline starts here
# and here
# Manual de-indent here for readibility.
x=5 # and manually force python code to an indent where it actually runs
# Default newline is still here though
# And will stay here for the rest of the cell
f字符串通常会破坏jupyter笔记本底层的CodeMirror语法突出显示器,自Jan 2017起就为人们所熟知。已经进行了一些较小的修复,以使其损坏程度降低,但问题尚未解决-参见recent Git issues