如果在iPython或任何多行命令中引入for循环,我该如何返回并向其添加行?我跑了这个:
for row in table.find_all('tr'):
cells = row.find_all('td')
for c,cell in enumerate(cells):
print c,":",cell.get_text().strip()
try:
this = cells[0]
that = cells[1]
the_docket = cells[2]
other_thign = cells[3]
jumble = re.sub('\s+',' ',str(cells[5])).strip()
except:
"Nope"
Run Code Online (Sandbox Code Playgroud)
并意识到我需要为它添加一行,但我不能只是在运行命令的iPython,b/c中点击"输入".那么我可以在iPython中编辑那个多行命令吗?
JS.*_*JS. 60
一直在遭遇这个问题.我刚刚发现使用时Ctrl-qCtrl-j(那是小写的Q,J,不需要按住shift键)会在现有的IPython编辑会话中添加换行符.
for li in some_list: print(li)
Run Code Online (Sandbox Code Playgroud)
在冒号后移动光标并按下 Ctrl-qCtrl-j
for li in some_list:
print(li)
Run Code Online (Sandbox Code Playgroud)
IPython:5.2.1,iTerm2:3.0.15,macOS:10.12.6
yon*_*evy 53
%editiPython中的神奇功能允许您在您喜欢的编辑器中编辑代码,然后执行它就像直接输入一样.您还可以编辑已经输入到repl中的代码,因为它存储在特殊变量中,例如:
In [1]: def foo(x):
...: print x
...:
In [2]: %edit _i1
Run Code Online (Sandbox Code Playgroud)
Sha*_*umo 52
还有一种方法可以直接在repl中添加换行符:ctrl-v,ctrl-j
ctrl-v基本上允许您发送控制代码,然后ctrl-j是换行符的代码(换行).输入有点尴尬,但它的优势还在于常规Python shell以及Bash本身.
编辑:至少在iTerm2中,您也可以将其分配给一个热键.我将ctrl-enter设置为0x16 0x0a的"发送十六进制代码".也可以使用cmd-enter或其他任何东西.
Kam*_*chi 12
您可以使用ctrl+on(即按住控制按钮并在按住它的同时输入字符“ o”,“ n”)。您也可以分两个步骤进行操作- ctrl+o ctrl+n但我发现前者更容易。
ctrl-o -进入多行模式ctrl-n-访问命令历史记录。但是由于没有向前的历史记录,因此光标仅移至下一行。我验证了它在运行git bash 2.18.0 + Windows 7的计算机上可同时与IPython 5.3.0和IPython 7.3.0一起使用。
为了完整性:较新的IPython版本(0.11 +)有一个非常好的图形控制台,允许您使用箭头导航代码,甚至用鼠标重新定位光标.
在多行语句中,某些键具有特殊功能(箭头导航,Enter插入换行符等).您必须将光标定位在语句最后一行的末尾才能获得默认行为,例如,将向上箭头↑表示"先前语句"而不是"将光标移动到上一行".或者Enter意味着"执行代码"而不是"在代码中间插入换行符".
关于它的文档在不同的页面中有点稀疏和碎片化,所以这里是开始使用它的必要三个链接:
使用不错的每用户配置文件而不是命令行参数来配置IPython
你对此感兴趣 ipython_qtconsole_config.py
一种简单的方法是使用;\运算符。;指示其命令结束并\指示该命令在新行中如下所示:
In[4]: password = "123";\
username = "alpha"
Run Code Online (Sandbox Code Playgroud)
这将使您在ipython中具有多个行命令,而无需调用编辑器
Ctrl+q然后输入Enter。正如其他人指出的那样,Ctrl+q让您发送字符代码,但点击Ctrl+qthenEnter可能比Ctrl+qthen更自然Ctrl+j。
另一种选择是键入(then Enter,然后写入并删除(。此解决方案类似于您键入;\表示语句未完成的解决方案。
| 归档时间: |
|
| 查看次数: |
30959 次 |
| 最近记录: |