Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 29, 2019 09:45:50

pythonmaks
Зарегистрирован: 2017-07-06
Сообщения: 50
Репутация: +  0  -
Профиль   Отправить e-mail  

C++Python

ребята, помогите пожалуйста сделать вставку в Python код на C++


int main(){
int a;
int arr[3]{1, 4, 3};
for(int i=0; i<3; ++i){if(arr[i]==4){a=arr[i];};};


}

#!/usr/bin/python

print(a);

как это объединить? посредством чего?

Офлайн

#2 Окт. 29, 2019 09:50:51

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2849
Репутация: +  186  -
Профиль   Отправить e-mail  

C++Python

https://blog2k.ru/archives/293
https://codecamp.ru/documentation/python/557/writing-extensions



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

#3 Окт. 29, 2019 19:38:39

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

C++Python

pythonmaks
как это объединить?
Очень просто
 print(4)
Объединять можно сущности которые что-то делают. У вас нет ни изменяемых входов ни возвращаемого значения.



Офлайн

#4 Окт. 31, 2019 16:33:11

pythonmaks
Зарегистрирован: 2017-07-06
Сообщения: 50
Репутация: +  0  -
Профиль   Отправить e-mail  

C++Python

doza_and


пожалуйста напишите пример. я не понял.

хочу в коде Python использовать массив , который описан в коде на С++.

Офлайн

#5 Окт. 31, 2019 19:33:05

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

C++Python

В вашем коде это невозможно, при выходе из функции main массив перестает существовать. В питоне нечего будет использовать.
Посмотрите пример
https://pybind11.readthedocs.io/en/master/basics.html#exporting-variables



Офлайн

#6 Окт. 31, 2019 21:20:35

pythonmaks
Зарегистрирован: 2017-07-06
Сообщения: 50
Репутация: +  0  -
Профиль   Отправить e-mail  

C++Python

как в Python , в таком случае вделать любой код на С++? я не могу понять из статей. там как всегда понаворочино много ненужного. что для этого нужно? операционная система Linux.

Офлайн

#7 Окт. 31, 2019 21:26:22

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

C++Python

pythonmaks
в таком случае вделать любой код на С++?
Любой никак.
Что у вас получается:
Сишный код:
Если я поеду на ниагарский водопад мне в лицо будут лететь брызги.
Вы сидите в питоне и спрашиваете как мне брызги использовать?

Да никак, вы никуда не ездили, брызги только в планах их не существует. Надо ехать. Если поедете то тоже ничего не выйдет, надо взять бутылку, брызги собрать, привезти растоможить, в питоне их из бутылки достать. Только тогда и сможете их использовать.

pythonmaks
я не могу понять из статей
Надо не статьи читать а документацию.
https://pybind11.readthedocs.io/en/master/basics.html
pythonmaks
что для этого нужно?
Выполняете инструкции которые там описаны и все.

p.s.
Вообще вделать сишный код в питон не проблема. Берете текстовый редактор и вставляете. Но наверное вы хотите не вставить код а получить результат. Какой именно неясно. Вот об этом и пишите, тогда вам помогут. Код приведенный мной в посте дает результат (печать на консоль 4) который как я полагаю вы хотели получить в вашем примере.



Отредактировано doza_and (Ноя. 1, 2019 06:48:22)

Офлайн

#8 Ноя. 1, 2019 08:38:37

pythonmaks
Зарегистрирован: 2017-07-06
Сообщения: 50
Репутация: +  0  -
Профиль   Отправить e-mail  

C++Python

жаль. ну теперь уже что останавливаться, хотя бы скажите может ли Python рабоать с регитрами процессора?

Офлайн

#9 Ноя. 1, 2019 09:26:53

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

C++Python

pythonmaks
жаль. ну теперь уже что останавливаться, хотя бы скажите может ли Python рабоать с регитрами процессора?
Да как вы себе это представляете вообще?



Офлайн

#10 Ноя. 1, 2019 10:12:42

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

C++Python

pythonmaks
хотя бы скажите может ли Python рабоать с регитрами процессора?
напрямую, конечно, нет, но с помощью ctypes можно подгрузить,например, libc.so.6 и уже там делать все что вам захочеться. ИМХО ctypes не для новичков, там не все так просто и очевидно как кажется.
Втоторой вариант использовать уже готовые либы типа:
pyAsm https://github.com/AmihaiN/pyAsm
pyCCA https://pycca.readthedocs.io/en/latest/
corePy https://github.com/matthiaskramm/corepy
PeachPy https://github.com/Maratyszcza/PeachPy


Ну и третий написать свое расширения на Си для пайтона, ссылки вам уже приводили



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Отредактировано PEHDOM (Ноя. 1, 2019 10:14:09)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version