2014-01-04 4 views
1

Я хочу создать что-то вроде словаря для примеров кода python. Моя проблема в том, что мне нужно избегать всех примеров кода. Также не полезно r'some string'. Вы бы рекомендовали использовать другое решение для запроса этих записей?Запрос Python для примеров кода

import easygui 

lex = {"dict": "woerter = {\"house\" : \"Haus\"}\nwoerter[\"house\"]",\ 
    "for": "for x in range(0, 3):\n print \"We are on time %d\" % (x)",\ 
    "while": "while expression:\n statement(s)"} 

input_ = easygui.enterbox("Python-lex","") 
output = lex[input_] 
b = easygui.textbox("","",output) 
+0

Hi Martijn, я отредактировал сообщение. – kame

+1

Возможно, вы просто захотите прочитать их из файла собственного формата, а не попробовать и вставить данные в синтаксис python – Eric

+0

Я сделаю это! – kame

ответ

3

Использование тройной процитировать:

lex = {"dict": '''\ 
woerter = {"house" : "Haus"} 
woerter["house"] 
''', 
      "for": '''\ 
for x in range(0, 3): 
    print "We are on time %d" % (x) 
''', 
      "while": '''\ 
while expression: 
    statement(s) 
'''} 

тройные кавычки строки (с помощью ''' или """ разделители) сохраняют строки и все встроенные одиночные кавычки не нужно экранировать.

\ побег после открытия ''' тройная цитата ускользает от новой строки в начале, делая значение немного легче для чтения. Альтернативой было бы перенести первую строку сразу после котировок открытия.

Вы также можете сделать эти сырые продукты; r'''\n''' будет содержать буквальные символы \ и n, но буквальные символы новой строки по-прежнему остаются буквальными символами новой строки. Тройная цитата работает с символами двойной кавычки: """This is a triple-quoted string too""". Единственное, что вам нужно было избежать - это еще одна тройная цитата в том же стиле; вам нужно только, чтобы избежать один символ кавычки в этом случае:

triple_quote_with_embedded_triple = '''Triple quotes use \''' and """ delimiters''' 
+0

Спасибо! Отлично, теперь я готов получить ваши лексические данные размером 10 МБ. ;) – kame

1

Я думаю, вы можете использовать json.dumps (данные, инцидент = 1) для преобразования данных и передачи в easygui.textbox. :

import json 
import easygui 
resp = dict(...) 
easygui.textbox(text=json.dumps(resp, indent=1))