У меня проблемы с python (извините за свои личные чувства перед ..: P).Создание файла python
У меня есть txt-файл, он содержит пользовательский язык, и я должен перевести его в рабочий код на Python.
вход:
import sys
n = int(sys.argv[1]) ;;print "Beginning of the program!"
LOOP i in range(1,n) {print "The number:";;print i}
BRANCH n < 5 {print n ;;print "less than 5"}
Требуемая выходная выглядит точно так же, как это:
import sys
n = int(sys.argv[1])
print "Beginning of the program!"
for i in range(1,n) :
print "The number:"
print i
if n < 5 :
print n
print "less than 5"
Имя входного файла считывается из параметра. Выходной файл out.py. В случае неправильного параметра появляется сообщение об ошибке. ;; означает новую строку.
Когда я попытался это сделать, я сделал массив, я прочитал все строки в нем, разбитые на "". Затем я хотел снять его с отметок, которые мне не нужны. Я сделал 2 петли, один для строк, один для слов. Итак, я начал заменять вещи. Все шло хорошо, пока не дошло до знака. Он находит это, но он не может заменить его. Я больше не знаю, что делать.
Мой код (это грязно, и я не имею записи в файл в данный момент):
f = open('test.txt', 'r')
#g = open('out.py', 'w')
allWords = map(lambda l: l.split(" "), f.readlines())
for i in range(len(allWords)):
vanfor = -1
vanif = -1
for j in range(len(allWords[i])):
a=allWords[i][j]
a=a.replace(";;","\n")
a=a.replace("CIKLUS","for")
a=a.replace("ELAGAZAS","if")
if a == "for":
allWords[i][j+3] = str(allWords[i][j+3])+" :\n"
if a == "if":
allWords[i][j+3] = str(allWords[i][j+3])+" :\n"
zarojel=a.find('}')
if zarojel>-1:
a=a.rstrip('}')
a=a.replace("}","")
a=a.replace("{","")
if vanfor == -1:
vanfor=a.find("for")
if vanif == -1:
vanif=a.find("if")
if (vanfor > -1) or (vanif > -1):
a=a.replace("print"," print")
if j != (len(allWords[i]))-1:
allWords[i][j]=a+" "
print allWords[i][j],
Может кто-нибудь помочь мне, пожалуйста? Спасибо заранее!
1. Вы не разместили свой код на Python, отличный от вашего желаемого примера вывода. 2. Вы хотите обвинить Python, но попросите помощи у людей, которые ценят Python? 3. Нет, у Python и его библиотеки нет особой проблемы с символом} - вы делаете это неправильно. 4. Это, очевидно, домашнее задание; вы должны добавить тег «домашняя работа» на свой вопрос. –
Когда я учился в колледже, у моего профессора алгоритмов была строгая политика: если вы пришли в свой кабинет, прося о помощи без примеров того, что вы уже пробовали, мы сказали бы студентам выйти. В том же духе: выходите. –