วิธีแสดงผลแบบเต็มใน Jupyter ไม่ใช่แค่ผลลัพธ์สุดท้ายเท่านั้น


115

ฉันต้องการให้ Jupyter พิมพ์เอาต์พุตแบบโต้ตอบทั้งหมดโดยไม่ต้องใช้การพิมพ์ไม่ใช่แค่ผลลัพธ์สุดท้ายเท่านั้น ทำอย่างไร?

ตัวอย่าง:

a=3
a
a+1

ฉันต้องการที่จะแสดง

3
4


21
มันไม่ได้ใช้บ่อยมาก แต่ในความเป็นจริงมีตัวเลือกการตั้งค่าที่ควรจะทำเช่นนี้ - ชุดInteractiveShell.ast_node_interactivityไป'all'ในIPython เคอร์เนลไฟล์
Thomas K

ขอบคุณโทมั
สนั่น

มีอยู่จริง! ! !
vasili111

คำตอบ:


181

ขอบคุณโทมัสนี่คือทางออกที่ฉันกำลังมองหา:

from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity = "all"

2
นี่เป็นเคล็ดลับที่ดี - ค่าแฟล็กที่จะเปลี่ยนกลับเป็นบรรทัดสุดท้ายของเอาต์พุตเท่านั้นคืออะไร?
Reblochon Masque

12
ค่าเริ่มต้นคือ 'last_expr' คุณสามารถค้นหาตัวเลือกอื่น ๆ มากมายได้ที่นี่: ipython.readthedocs.org/en/stable/config/options/terminal.html
mbh86

8
สำหรับการอ้างอิงตัวเลือกนั้นคือ 'all', 'none', 'last' และ 'last_expr' ความแตกต่างระหว่าง 'last' และ 'last_expr': หากเซลล์ของคุณลงท้ายด้วยพูดวนซ้ำที่มีนิพจน์ 'last' จะแสดงผลลัพธ์จากนิพจน์นั้นในการวนซ้ำแต่ละครั้ง 'last_expr' (ค่าเริ่มต้น) จะไม่แสดง: จะแสดงเฉพาะผลลัพธ์ของนิพจน์เปล่าที่ส่วนท้ายของเซลล์
Thomas K

1
Holy moly ... คุณสมบัตินี้เป็นนักฆ่า
flow2k

(ish) ใหม่last_expr_or_assignนั้นยอดเยี่ยมมากสำหรับการทำเดโม! ไม่ต้องพิมพ์ซ้ำรายการเดิมหลาย ๆ ครั้งเพียงเพื่อให้พิมพ์ได้ด้วย
Henry Schreiner

33

https://www.dataquest.io/blog/jupyter-notebook-tips-tricks-shortcuts/

1) วางรหัสนี้ในเซลล์ Jupyter:

from IPython.core.interactiveshell import InteractiveShell

InteractiveShell.ast_node_interactivity = "all"

2) ใน Windows ขั้นตอนด้านล่างจะทำการเปลี่ยนแปลงอย่างถาวร ควรใช้กับระบบปฏิบัติการอื่น คุณอาจต้องเปลี่ยนเส้นทาง

C:\Users\your_profile\\.ipython\profile_default

สร้างไฟล์ ipython_config.py ใน profile_defaults ด้วยรหัสต่อไปนี้:

c = get_config()

c.InteractiveShell.ast_node_interactivity = "all"

0

พื้นฐานต่อโน้ตบุ๊ก

ตามที่คนอื่นตอบการใส่รหัสต่อไปนี้ในเซลล์ Jupyter Lab หรือ Jupyter Notebook จะใช้งานได้:

from IPython.core.interactiveshell import InteractiveShell

InteractiveShell.ast_node_interactivity = "all"

การเปลี่ยนแปลงอย่างถาวร

อย่างไรก็ตามหากคุณต้องการทำให้สิ่งนี้ถาวรและใช้ Jupyter Lab คุณจะต้องสร้างไฟล์กำหนดค่าโน้ตบุ๊ก IPython เรียกใช้คำสั่งต่อไปนี้เพื่อดำเนินการดังกล่าว ( อย่ารันหากคุณใช้ Jupyter Notebook - รายละเอียดเพิ่มเติมด้านล่าง):

ipython profile create

หากคุณใช้ Jupyter Notebook ไฟล์นี้ควรถูกสร้างขึ้นแล้วและไม่จำเป็นต้องเรียกใช้อีก ในความเป็นจริงการเรียกใช้คำสั่งนี้อาจเขียนทับค่ากำหนดปัจจุบันของคุณ

เมื่อคุณสร้างไฟล์นี้แล้วสำหรับผู้ใช้ Jupyter Lab และ Notebook ให้เพิ่มรหัสต่อไปนี้ในไฟล์C:\Users\USERNAME\\.ipython\profile_default\ipython_config.py:

c.InteractiveShell.ast_node_interactivity = "all"

ฉันพบว่าไม่มีความจำเป็น c = get_config()ใน Jupyter เวอร์ชันที่ใหม่กว่า แต่ถ้าวิธีนี้ใช้ไม่ได้ผลสำหรับคุณให้เพิ่มc = get_config()ที่จุดเริ่มต้นของไฟล์

สำหรับตัวเลือกการตั้งค่าสถานะอื่น ๆ เพิ่มเติม"all"โปรดไปที่ลิงค์นี้ : https://ipython.readthedocs.io/en/stable/config/options/terminal.html#configtrait-InteractiveShell.ast_node_interactivity

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.