2017-02-03 11 views
0

Мне немного любопытно, так как я хочу создать файл, содержащий словарь, который будет автоматически обновляться всякий раз, когда возникает событие, и нужно знать, существует ли ограничение на количество символов, которые IDE Python может содержать в одной строке.Любое ограничение на количество символов, которые IDE Python может принимать в одной строке?

Альтернатива для меня была бы, по крайней мере, знанием способа заставить словарь всегда начинать с новой строки, когда она достигла определенной длины. Но я все равно хотел бы знать, есть ли предел только ради знания.

+0

Что вы имеете в виду? Разве эти словари не были бы записаны в текстовом файле? И что касается записи на новой строке, я думаю, вы можете просто «f.write ('\ n')' перед тем, как написать новый словарь. – spicypumpkin

+0

Рассматривали ли вы создание строки из 100 символов, копирование и вставку, чтобы сделать 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, держите линии длинными.

Я не знаю о других IDE, которые используют другие интерфейсы GUI. Но даже если они обрабатывают бесконечно длинные строки лучше, горизонтальная прокрутка линии 100 000 символов довольно неприятна.

0

Вам не нужно беспокоиться о лимите. Что касается новой строки, вы можете использовать if с \n или for в зависимости от того, что вы собираетесь делать.

0

Чтобы ответить на ваш вопрос, нет ограничений на длину словаря или списка (или любого другого объекта). Я сохранил все слова всей книги в списке. Это всего лишь потоки ввода.

Насколько ваш код написан, это не Pythonic писать более 80 символов/столбцов в строке, потому что, в конечном счете, люди должны его прочитать.

Но если она заставляет вас чувствовать себя лучше, вы можете разбить словари и списки на несколько строк, и даже оставлять комментарии между пунктами:

>>> 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 и еще не начать новый, но, как и в моем вопросе, словарь будет автоматически обновляться с помощью нового пользователя info каждый раз, когда происходит событие.И файл будет иметь этот чрезвычайно длинный горизонтальный словарь, заполненный различной информацией пользователя, и мне не хотелось бы, чтобы моя программа внезапно перестала работать, если есть ограничение на то, сколько символов может содержать одна строка. – Wright

 Смежные вопросы

  • Нет связанных вопросов^_^