2017-02-03 27 views
0

我有點好奇,因爲我想創建一個包含字典的文件,該字典在事件發生時會自動更新,並且需要知道Python的IDE可以在單行上保留的字符數是否有限制。Python的IDE可以在一行中使用多少個字符?

對我來說,一種替代方法是至少知道一種方法,使字典在達到一定長度時總是從一個新行開始。但我仍然想知道是否有限制只是爲了知道緣故。

+0

你是什麼意思?這些字典不會寫在文本文件上嗎?而且,就新行的寫作而言,我認爲在編寫新字典之前你可以只寫'f.write('\ n')'。 – spicypumpkin

+0

您是否考慮製作一百個字符的行,複製並粘貼製作200,然後複製並粘貼製作400,然後複製並粘貼製作800,等等,直到它停止工作? –

+0

不用多久,IDLE就會開始爬行。 –

回答

1

就磁盤存儲和RAM存儲器而言,'\n只是另一個字符。就tcl/tk和Python的tkinter包裝而言,換行符非常重要。由於tk的文本小部件旨在向人類顯示文本,並且由於垂直滾動比水平滾動更有用,因此它針對前者進行了優化。 1000個字符線(總共100,000個字符)陷入垂直滾動,而300,000個50字符(總計15,000,000個字符)是沒有問題的。 IDLE使用tkinter,主窗口基於tk的文本部件。因此,如果您在IDLE中查看文本,請保持行長合理。

我不知道其他使用其他GUI框架的IDE。但即使他們更好地處理無限長的行,100000字符行的水平滾動相當令人討厭。

0

您不應該擔心限制。至於新行,您可以使用if\nfor循環,具體取決於您要進行的操作。

0

要回答你的問題,不,對字典或列表(或任何其他對象)的長度沒有限制。我已將整本書的所有單詞存儲在列表中。它們只是輸入流。

就你的代碼的寫法而言,每行超過80個字符/列的寫法並不是Pythonic,因爲人類最終必須閱讀它。

但是如果它讓你感覺更好,你可以打破字典和列表了多行,甚至是項目之間留下評論:

>>> my_dict = {'a': 1, # comment 1 
       'b': 2, # comment 2 
       'c': 3, # comment 3 
       'd': 4 
       } 

您也可以打破任何聲明用反斜槓:

>>> my_string = "my \ 
        string" 

>>> print(my_string) 
'my string' 

最後,您可以對超長字符串使用三重引號,這可能會跨越多行。請注意,換行符將包含在您的字符串中。

>>> my_very_long_string = '''This is a long string. 
        Rather than using multiple print statements, 
        I only used one.''' 

>>> print(my_very_long_string) 
'This is a long string.\nRather than using multiple print statements,\nI only used one.' 

在過去(多行字符串)爲例,這是在未格式化它可以在編輯多行呈現怎一個「文件」(流)實際上看起來。

+0

我很欣賞你的答案,但我的問題是如何自動做到這一點...是的我知道我可以使用反斜槓n和什麼不開始一個新的,但就像我的問題說,字典將自動更新與新用戶每次發生事件時的信息。這個文件最終會有這個非常長的horizantal字典,裏面填充了不同的用戶信息,如果單行可以容納多少個字符,我不會讓我的程序突然停止工作。 – Wright

相關問題