-1

Доброго времени суток, начну с того, что препод сказал студентам написать программу на Си в Питоне. Сам препод толком не помнит, как в ней работать! Сказал, чтобы мы нашли библиотеки или модули для этой программы и написали.

Итак, проблема заключается в том, что надо написать не в Visual Studio, как обычно все пишут программы на Си, а в программе IDLE (Python GUI). Если коротко, то в Python'e. Так вот, как интерпретировать Си и Python? Чтобы засунуть, например, простой код (см.ниже):

#include <stdio.h>
int main (void)
{
    puts ("Hello, World!");
    return 0;
}
4
  • 5
    Это как это написать на Си в Питоне. Учитель точно не под накуркой был ?
    – Bastiane
    11 окт 2014 в 22:37
  • Нет) Надо ещё и на Ассемблере написать в Питоне, но это потом. Мне хотя бы на Си разобрать как. Это вообще реально сделать?
    – DimanSemm
    11 окт 2014 в 22:43
  • Признаю честно, я ни разу не видел, как компилируют сишное приложение в IDLE.
    – Bastiane
    11 окт 2014 в 22:47
  • а может препод хотел транслятор из C в python???
    – Alex.B
    3 окт 2016 в 8:42

3 ответа 3

4

@DimanSemm, реализация питона "по умолчанию" написана на си, возможно, имелось в виду написать внешний модуль и подрубить его из питона. Пара ссылок, правда не все для 3.4.1: http://habrahabr.ru/post/44520/ https://docs.python.org/3/extending/extending.html http://www.tutorialspoint.com/python/python_further_extensions.htm

4

https://cffi.readthedocs.org

>>> from cffi import FFI
>>> ffi = FFI()
>>> ffi.cdef("""
...     int printf(const char *format, ...);   /* Копипаст из man страниц */
... """)
>>> C = ffi.dlopen(None)                     # загрузить пространство имён С целиком
>>> arg = ffi.new("char[]", "world")         # эквивалентно C коду: char arg[] = "world";
>>> C.printf("hi there, %s!\n", arg)         # вызвать printf
hi there, world!
1
  • 1
    Очень некисло
    – etki
    13 окт 2014 в 18:06
0

Классная трава. Я бы решал проблему таким образом:

  1. Считать необходимые сишные файлы в строки с заменой include содержимым соответствующих файлов.
  2. Через os вызвал бы компиляцию строкового ресурса и исполнение.

Хотя, подозреваю, мой ответ такой же ошибочный, как и ваш вопрос.

Ваш ответ

By clicking “Отправить ответ”, you agree to our terms of service and acknowledge you have read our privacy policy.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками или задайте свой вопрос.