Уведомления

Группа в Telegram: @pythonsu

#1 Май 16, 2013 15:06:15

ahpex
Зарегистрирован: 2013-01-19
Сообщения: 15
Репутация: +  0  -
Профиль   Отправить e-mail  

Как из строки убрать ненужные символы

Добрый день! Пытаюсь реализовать модуль проверки знаний. Пользователю дается задача, он пишет решение, которое отравляется и выполняется на сервере. Вопрос в следующем. Есть исходные данные, которые хранятся в файле. Пример -

a = 5
b = 7
Есть пользовательское решение, которое хранится в строке. Пример
s = a * b
p = a + b
print s,p
Сейчас это все записывается в отдельный файл в виде строки. Как из этого
'a = 5\n', 'b = 7', u's = a * b\r\np = a + b\r\nprint s,p'
сделать так, что б этот код можно было выполнить. Получится должно что то такое.
a = 5
b = 7
s = a * b
p = a + b
print s,p
Или подскажите, как иначе это можно реаизовать. Заранее благодарен.

Офлайн

#2 Май 16, 2013 17:15:42

pooteen
От:
Зарегистрирован: 2012-01-27
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

Как из строки убрать ненужные символы

я не супер питонщик, но как-то так можно:

>>> s = 'a = 5\n', 'b = 7', u's = a * b\r\np = a + b\r\nprint s,p'
>>> for x in s:
...     exec(x)
...
35 12
>>>



Отредактировано pooteen (Май 16, 2013 17:16:14)

Офлайн

#3 Май 17, 2013 08:18:55

ahpex
Зарегистрирован: 2013-01-19
Сообщения: 15
Репутация: +  0  -
Профиль   Отправить e-mail  

Как из строки убрать ненужные символы

Основной вопрос в том как преобразовать строку в нужный вид.
Вот моя функция, которая должна создать решение и выполняет его, если понадобится.

def create_decision(user_decision, conditions):
	f1 = open('temp_decision.py', 'w')
        f = open(conditions, 'r+')
	contents = f.readlines()
	contents.append(user_decision)
	f1.write(str(contents))
	f1.close()
	output = []
	child_stdin, child_stdout, child_stderr = os.popen3("python temp_decision.py")
	output = child_stdout.read()
	return output

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version