当前位置:首页 » 编程语言 » 互信息python实现

互信息python实现

发布时间: 2023-01-16 18:59:46

1. 计算机python的实现方式都有哪些

  1. 虽然官方 Python 实现差不多得到最广泛的欢迎,但也有一些其他实现对特定领域的用户来说更具吸引力。
    知名的实现包括:
    CPython
    这是最早出现并持续维护的 Python 实现,以 C 语言编写。新的语言特性通常在此率先添加。
    Jython
    以 Java 语言编写的 Python 实现。此实现可以作为 Java 应用的一个脚本语言,或者可以用来创建需要 Java 类库支持的应用。想了解更多信息可访问 Jython 网站。
    Python for .NET
    此实现实际上使用了 CPython 实现,但是属于 .NET 托管应用并且可以引入 .NET 类库。它的创造者是 Brian Lloyd。想了解详情可访问 Python for .NET 主页。
    IronPython
    另一个 .NET 的 Python 实现,与 Python.NET 不同点在于它是生成 IL 的完全 Python 实现,并且将 Python 代码直接编译为 .NET 程序集。它的创造者就是当初创造 Jython 的 Jim Hugunin。想了解详情可访问 IronPython 网站。
    PyPy
    完全使用 Python 语言编写的 Python 实现。它支持多个其他实现所没有的高级特性,例如非栈式支持和 JIT 编译器等。此项目的目标之一是通过允许方便地修改解释器 (因为它是用 Python 编写的),鼓励该对语言本身进行试验。想了解详情可访问 PyPy 项目主页。
    以上这些实现都可能在某些方面与此参考文档手册的描述有所差异,或是引入了超出标准 Python 文档范围的特定信息。请参考它们各自的专门文档,以确定你正在使用的这个实现有哪些你需要了解的东西。

  2. 以 Java 语言编写的 Python 实现。此实现可以作为 Java 应用的一个脚本语言,或者可以用来创建需要 Java 类库支持的应用。想了解更多信息可访问 Jython 网站。
    Python for .NET
    此实现实际上使用了 CPython 实现,但是属于 .NET 托管应用并且可以引入 .NET 类库。它的创造者是 Brian Lloyd。想了解详情可访问 Python for .NET 主页。
    IronPython
    另一个 .NET 的 Python 实现,与 Python.NET 不同点在于它是生成 IL 的完全 Python 实现,并且将 Python 代码直接编译为 .NET 程序集。它的创造者就是当初创造 Jython 的 Jim Hugunin。想了解详情可访问 IronPython 网站。

2. 如何实现python和telnet通信

1#-*-coding:utf-8-*-
2
3importtelnetlib
4
5'''Telnet远程登录:Windows客户端连接linux服务器'''
6
7#配置选项
8Host='192.168.1.2'#Telnet服务器IP
9username='admin'#登录用户名
10password='123456'#登录密码
11finish=':~$'#命令提示符(标识着上一条命令已执行完毕)
12
13#连接Telnet服务器
14tn=telnetlib.Telnet(Host)
15
16#输入登录用户名
17tn.read_until('login:')
18tn.write(username+' ')
19
20#输入登录密码
21tn.read_until('Password:')
22tn.write(password+' ')
23
24#登录完毕后,执行ls命令
25tn.read_until(finish)
26tn.write('ls ')
27
28#ls命令执行完毕后,终止Telnet连接(或输入exit退出)
29tn.read_until(finish)
30tn.close()#tn.write('exit ')


如果解决了您的问题请采纳!
如果未解决请继续追问!

3. 如何用 Python 中的 NLTK 对中文进行分析和处理

最近正在用nltk 对中文网络商品评论进行褒贬情感分类,计算评论的信息熵(entropy)、互信息(point mutual information)和困惑值(perplexity)等(不过这些概念我其实也还理解不深...只是nltk 提供了相应方法)。
我感觉用nltk 处理中文是完全可用的。其重点在于中文分词和文本表达的形式。
中文和英文主要的不同之处是中文需要分词。因为nltk 的处理粒度一般是词,所以必须要先对文本进行分词然后再用nltk 来处理(不需要用nltk 来做分词,直接用分词包就可以了。严重推荐结巴分词,非常好用)。
中文分词之后,文本就是一个由每个词组成的长数组:[word1, word2, word3…… wordn]。之后就可以使用nltk 里面的各种方法来处理这个文本了。比如用FreqDist 统计文本词频,用bigrams 把文本变成双词组的形式:[(word1, word2), (word2, word3), (word3, word4)……(wordn-1, wordn)]。
再之后就可以用这些来计算文本词语的信息熵、互信息等。
再之后可以用这些来选择机器学习的特征,构建分类器,对文本进行分类(商品评论是由多个独立评论组成的多维数组,网上有很多情感分类的实现例子用的就是nltk 中的商品评论语料库,不过是英文的。但整个思想是可以一致的)。
另外还有一个困扰很多人的Python 中文编码问题。多次失败后我总结出一些经验。
Python 解决中文编码问题基本可以用以下逻辑:
utf8(输入) ——> unicode(处理) ——> (输出)utf8
Python 里面处理的字符都是都是unicode 编码,因此解决编码问题的方法是把输入的文本(无论是什么编码)解码为(decode)unicode编码,然后输出时再编码(encode)成所需编码。
由于处理的一般为txt 文档,所以最简单的方法,是把txt 文档另存为utf-8 编码,然后使用Python 处理的时候解码为unicode(sometexts.decode('utf8')),输出结果回txt 的时候再编码成utf8(直接用str() 函数就可以了)。

4. Python RPyC如何实现客户端与服务端通信

rpyc是我用过的最容易,也最强大的远程进程通讯了。当然如果你自己编写框架,可以比它更强大也可能。


你搜索一下官网或者是任意一个教程都可以找到一个解决方案,然后你变化一下就可以解决你的问题。


因为不太理解你的问题,所以先解释一下,rpyc实现的是将客户端代码,复制到服务端,并在服务端执行后将结果包装后返回服务端。当然如果服务端已经有这个代码了,就可以直接执行,然后结果返回。


所以原则上讲,不可能在客户端没有连接服务端的情形下,从服务端返回消息的。 所以你试验的应该是连接到服务端,然后获得响应。这个是可以的。


如果你想发消息到服务端直接通过函数的参数就可以啦。

importrpyc
c=rpyc.connect('localhost',服务端端口)
printc.root.服务端exposed的函数(你要传递的参数放在这里)
c.close()

5. 如何实现 C/C++ 与 Python 的通信

Python指它的标准实现,即CPython(虽然不是很严格)

本文分4个部分

C/C++ 调用 Python (基础篇)— 仅讨论Python官方提供的实现方式

Python 调用 C/C++ (基础篇)— 仅讨论Python官方提供的实现方式

C/C++ 调用 Python (高级篇)— 使用 Cython

Python 调用 C/C++ (高级篇)— 使用 SWIG

练习本文中的例子,需要搭建Python扩展开发环境。具体细节见搭建Python扩展开发环境 - 蛇之魅惑 - 知乎专栏

1 C/C++ 调用 Python(基础篇)
Python 本身就是一个C库。你所看到的可执行体python只不过是个stub。真正的python实体在动态链接库里实现,在Windows平台上,这个文件位于 %SystemRoot%\System32\python27.dll。

你也可以在自己的程序中调用Python,看起来非常容易:

//my_python.c
#include <Python.h>

int main(int argc, char *argv[])
{
Py_SetProgramName(argv[0]);
Py_Initialize();
PyRun_SimpleString("print 'Hello Python!'\n");
Py_Finalize();
return 0;
}

在Windows平台下,打开Visual Studio命令提示符,编译命令为

cl my_python.c -IC:\Python27\include C:\Python27\libs\python27.lib

在Linux下编译命令为

gcc my_python.c -o my_python -I/usr/include/python2.7/ -lpython2.7

在Mac OS X 下的编译命令同上

产生可执行文件后,直接运行,结果为输出

Hello Python!

Python库函数PyRun_SimpleString可以执行字符串形式的Python代码。

虽然非常简单,但这段代码除了能用C语言动态生成一些Python代码之外,并没有什么用处。我们需要的是C语言的数据结构能够和Python交互。

下面举个例子,比如说,有一天我们用Python写了一个功能特别强大的函数:

def great_function(a):
return a + 1

接下来要把它包装成C语言的函数。我们期待的C语言的对应函数应该是这样的:

int great_function_from_python(int a) {
int res;
// some magic
return res;
}

首先,复用Python模块得做‘import’,这里也不例外。所以我们把great_function放到一个mole里,比如说,这个mole名字叫 great_mole.py

接下来就要用C来调用Python了,完整的代码如下:

#include <Python.h>

int great_function_from_python(int a) {
int res;
PyObject *pMole,*pFunc;
PyObject *pArgs, *pValue;

/* import */
pMole = PyImport_Import(PyString_FromString("great_mole"));

/* great_mole.great_function */
pFunc = PyObject_GetAttrString(pMole, "great_function");

/* build args */
pArgs = PyTuple_New(1);
PyTuple_SetItem(pArgs,0, PyInt_FromLong(a));

/* call */
pValue = PyObject_CallObject(pFunc, pArgs);

res = PyInt_AsLong(pValue);
return res;
}

从上述代码可以窥见Python内部运行的方式:

所有Python元素,mole、function、tuple、string等等,实际上都是PyObject。C语言里操纵它们,一律使用PyObject *。

Python的类型与C语言类型可以相互转换。Python类型XXX转换为C语言类型YYY要使用PyXXX_AsYYY函数;C类型YYY转换为Python类型XXX要使用PyXXX_FromYYY函数。

也可以创建Python类型的变量,使用PyXXX_New可以创建类型为XXX的变量。

若a是Tuple,则a[i] = b对应于 PyTuple_SetItem(a,i,b),有理由相信还有一个函数PyTuple_GetItem完成取得某一项的值。

不仅Python语言很优雅,Python的库函数API也非常优雅。

现在我们得到了一个C语言的函数了,可以写一个main测试它

#include <Python.h>

int great_function_from_python(int a);

int main(int argc, char *argv[]) {
Py_Initialize();
printf("%d",great_function_from_python(2));
Py_Finalize();
}

编译的方式就用本节开头使用的方法。

在Linux/Mac OSX运行此示例之前,可能先需要设置环境变量:

bash:

export PYTHONPATH=.:$PYTHONPATH

csh:

setenv PYTHONPATH .:$PYTHONPATH

2 Python 调用 C/C++(基础篇)
这种做法称为Python扩展。
比如说,我们有一个功能强大的C函数:

int great_function(int a) {
return a + 1;
}

期望在Python里这样使用:

>>> from great_mole import great_function
>>> great_function(2)
3

考虑最简单的情况。我们把功能强大的函数放入C文件 great_mole.c 中。

#include <Python.h>

int great_function(int a) {
return a + 1;
}

static PyObject * _great_function(PyObject *self, PyObject *args)
{
int _a;
int res;

if (!PyArg_ParseTuple(args, "i", &_a))
return NULL;
res = great_function(_a);
return PyLong_FromLong(res);
}

static PyMethodDef GreateMoleMethods[] = {
{
"great_function",
_great_function,
METH_VARARGS,
""
},
{NULL, NULL, 0, NULL}
};

PyMODINIT_FUNC initgreat_mole(void) {
(void) Py_InitMole("great_mole", GreateMoleMethods);
}

除了功能强大的函数great_function外,这个文件中还有以下部分:

包裹函数_great_function。它负责将Python的参数转化为C的参数(PyArg_ParseTuple),调用实际的great_function,并处理great_function的返回值,最终返回给Python环境。

导出表GreateMoleMethods。它负责告诉Python这个模块里有哪些函数可以被Python调用。导出表的名字可以随便起,每一项有4个参数:第一个参数是提供给Python环境的函数名称,第二个参数是_great_function,即包裹函数。第三个参数的含义是参数变长,第四个参数是一个说明性的字符串。导出表总是以{NULL, NULL, 0, NULL}结束。

导出函数initgreat_mole。这个的名字不是任取的,是你的mole名称添加前缀init。导出函数中将模块名称与导出表进行连接。

6. plc与python之间实现通信

python语言与plc建立串口通信时,无法直接读写。
用到python的serial 模块

在创建串口对象时需要定义其属性与plc一致:

self.main_engine.baudrate = self.bps
self.main_engine.bytesize = 7
self.main_engine.parity = 'E'
self.main_engine.stopbits = 2

重点:在写入数据后,需要写16进制数"0D",结束标志位

self.main_engine.write("@00WD1010000152*".encode())
self.main_engine.write(binascii.a2b_hex("0D"))

7. python如何实现两个nat映射的ip相互信任

如果A和B两个部分都初始化了TCP连接,NAT设备就会认为它们之间是相互信任的,也... 2.在一个局域网中做一个IP映射,映射一个公网IP,另外一个局域网访问这个IP就是公网... 客户端:a,b 服务器端(公网)c a发送消息给c,同时c拿到a的ip端口等信息。

8. 如何实现MT4与Python之间的交互

通过csv或txt的形式进行交互,包括传递参数,传递外汇价格信息,传递做单指令,等等

9. Python如何实现定时发送qq消息

因为生活中老是忘记各种事情,刚好又在学python,便突发奇想通过python实现提醒任务的功能(尽管TIM有定时功能),也可定时给好友、群、讨论组发送qq消息。其工作流程是:访问数据库提取最近计划——>根据数据内容(提醒时间、提醒对象、提醒内容)设置定时任务——>给特定qq好友发送消息。
1.软件版本:
2.安装依赖环境
pymysql安装:pip install pymysql
qqbot安装:pip install qqbot

3.数据库操作
数据库操作非常简单,跟Java类似,自己去菜鸟教程看一下基础语法就好了。
4.配置qqbot登陆信息
也可以不配置,不配置的话就是每次扫码登陆,但这在Linux系统下不好用,我按说明将配置改成了每次将登陆二维码发到固定qq邮箱。qqbot模块在GitHub上,大家可以去看一下模块说明:qqbot
配置文件默认在用户目录下的.qqbot-tmp/v2.3.conf,linux下类似
相关推荐:《Python视频教程》
5. 自定义功能

6.入口主程序
7.其它
数据库结构:
dropdatabaseif exists info_db;
createdatabaseinfo_db defaultcharactersetutf8;
use info_db;
createtabletyschele_tb(
id int(11) auto_increment primarykey,
worktime timestampnotnull,
namevarchar(10) notnull,
content varchar(100) notnull
)engine=InnoDB auto_increment=1 defaultcharset=utf8;
以上就是循环发送qq消息的代码,以下是项目目录结构,其中一些没有出现的文件是自己测试所用,可以不用关心:
效果图:

热点内容
如何选择最佳配置 发布:2025-07-16 01:56:44 浏览:603
mad加密 发布:2025-07-16 01:52:12 浏览:424
linux64位内存 发布:2025-07-16 01:02:36 浏览:960
压缩衣尺码表 发布:2025-07-16 00:47:33 浏览:640
安卓恢复了出厂怎么找回照片 发布:2025-07-16 00:43:56 浏览:933
为什么说服务器已停止响应 发布:2025-07-16 00:29:36 浏览:392
python判断字符串是否为空 发布:2025-07-16 00:21:47 浏览:210
安卓转苹果用什么软件 发布:2025-07-16 00:21:45 浏览:628
安卓官服如何登ios 发布:2025-07-16 00:21:32 浏览:624
天龙抢店脚本 发布:2025-07-16 00:14:47 浏览:958