[英]How to make Ipython output a list without line breaks after elements?
[英]Adding line breaks in ipython
如果在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"
並意識到我需要為它添加一行,但我不能只是在運行命令的iPython,b / c中點擊“輸入”。 那么我可以在iPython中編輯那個多行命令嗎?
還有一種方法可以直接在repl中添加換行符:ctrl-v,ctrl-j
ctrl-v基本上允許您發送控制代碼,然后ctrl-j是換行符的代碼(換行)。 輸入有點尷尬,但它的優勢還在於常規Python shell以及Bash本身。
編輯:至少在iTerm2中,您也可以將其分配給一個熱鍵。 我將ctrl-enter設置為0x16 0x0a的“發送十六進制代碼”。 也可以使用cmd-enter或其他任何東西。
一直在遭遇這個問題。 我剛剛發現當使用Ctrl-q Ctrl-j (那是小寫的Q,J,不需要按住shift鍵)時,會在現有的IPython編輯會話中添加換行符。
for li in some_list: print(li)
在冒號后移動光標並按Ctrl-q Ctrl-j
for li in some_list:
print(li)
IPython:5.2.1,iTerm2:3.0.15,macOS:10.12.6
iPython中的%edit
magic功能允許您在您喜歡的編輯器中編輯代碼,然后執行它就像直接輸入一樣。 您還可以編輯已經輸入到repl中的代碼,因為它存儲在特殊變量中,例如:
In [1]: def foo(x):
...: print x
...:
In [2]: %edit _i1
您可以使用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"
這將允許您在ipython中擁有多個行命令而無需調用編輯器
鍵入Ctrl+q
然后Enter
。 正如其他人指出的那樣, Ctrl+q
允許你發送一個字符代碼,但Ctrl+q
然后Enter
可能比Ctrl+q
然后Ctrl+j
更自然。
另一種選擇是鍵入(
然后Enter
,寫入和刪除(
之后)。此解決方案類似於您鍵入的解決方案;\\
表示語句未完成。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.