首页技术python必背100源代码,免费写python代码的软件

python必背100源代码,免费写python代码的软件

编程之家2026-06-28991次浏览

各位老铁们,大家好,今天由我来为大家分享python必背100源代码,以及免费写python代码的软件的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!

python必背100源代码,免费写python代码的软件

我用了100行Python代码,实现了与女神尬聊微信(附代码)

朋友圈很多人都想学python,有一个很重要的原因是它非常适合入门。对于人工智能算法的开发,python有其他编程语言所没有的独特优势,代码量少,开发者只需把精力集中在算法研究上面。

本文介绍一个用python开发的,自动与美女尬聊的小软件。以下都是满满的干货,是我工作之余时写的,经过不断优化,现在分享给大家。那现在就让我们抓紧时间开始吧!

准备:

编程工具IDE:pycharm

python版本: 3.6.0

首先新建一个py文件,命名为:ai_chat.py

python必背100源代码,免费写python代码的软件

PS:以下五步的代码直接复制到单个py文件里面就可以直接运行。为了让读者方便写代码,我把代码都贴出来了,但是排版存在问题,我又把在pycharm的代码排版给截图出来。

第一步:引入关键包

简单介绍一下上面几个包的作用: pickle包是用来对数据序列化存文件、反序列化读取文件,是人类不可读的,但是计算机去读取时速度超快。(就是用记事本打开是乱码)。而 json包是一种文本序列化,是人类可读的,方便你对其进行修改(记事本打开,可以看到里面所有内容,而且都认识。) gensim包是自然语言处理的其中一个python包,简单容易使用,是入门NLP算法必用的一个python包。 jieba包是用来分词,对于算法大咖来说效果一般般,但是它的速度非常快,适合入门使用。

以上这些包,不是关键,学习的时候,可以先跳过。等理解整个程序流程后,可以一个一个包有针对性地去看文档。

第二步:静态配置

这里path指的是对话语料(训练数据)存放的位置,model_path是模型存储的路径。

python必背100源代码,免费写python代码的软件

这里是个人编程的习惯,我习惯把一些配置,例如:文件路径、模型存放路径、模型参数统一放在一个类中。当然,实际项目开发的时候,是用config文件存放,不会直接写在代码里,这里为了演示方便,就写在一起,也方便运行。

第三步:编写一个类,实现导数据、模型训练、对话预测一体化

首次运行的时候,会从静态配置中读取训练数据的路径,读取数据,进行训练,并把训练好的模型存储到指定的模型路径。后续运行,是直接导入模型,就不用再次训练了。

对于model类,我们一个一个来介绍。

initialize()函数和 __init__()函数是对象初始化和实例化,其中包括基本参数的赋值、模型的导入、模型的训练、模型的保存、最后返回用户一个对象。

__train_model()函数,对问题进行分词,使用 gesim实现词袋模型,统计每个特征的 tf-idf,建立稀疏矩阵,进而建立索引。

__save_model()函数和 __load_model()函数是成对出现的,很多项目都会有这两个函数,用于保存模型和导入模型。不同的是,本项目用的是文件存储的方式,实际上线用的是数据库

get_answer()函数使用训练好的模型,对问题进行分析,最终把预测的回答内容反馈给用户。

第四步:写三个工具类型的函数,作为读写文件。

其中,获取对话材料,可以自主修改对话内容,作为机器的训练的数据。我这里只是给了几个简单的对话语料,实际上线的项目,需要大量的语料来训练,这样对话内容才饱满。

这三个工具函数,相对比较简单一些。其中 get_data()函数,里面的数据是我自己编的,大家可以根据自己的习惯,添加自己的对话数据,这样最终训练的模型,对话方式会更贴近自己的说话方式。

第五步:调用模型,进行对话预测

主函数main(),就是你整个程序运行的起点,它控制着所有步骤。

运行结果:

程序后台运行结果:

如果有疑问想获取源码(其实代码都在上面),可以后台私信我,回复:python智能对话。我把源码发你。最后,感谢大家的阅读,祝大家工作生活愉快!

100行Python代码实现一款高精度免费OCR工具

以下是一个基于Textshot简化思路的100行左右Python代码实现的高精度免费OCR工具,整合了截图和Tesseract OCR功能:

import sysfrom PIL import ImageGrabimport pytesseractfrom PyQt5.QtWidgets import QApplication, QWidget, QMainWindowfrom PyQt5.QtGui import QPainter, QPen, QColor, QCursor, QFontfrom PyQt5.QtCore import Qt, QPoint, QRectclass OCRSnipper(QWidget): def __init__(self, parent=None): super().__init__(parent) self.setWindowTitle("OCR Snipper") self.setWindowFlags(Qt.FramelessWindowHint| Qt.WindowStaysOnTopHint) self.setWindowState(Qt.WindowFullScreen) self.setStyleSheet("background-color: black;") self.setWindowOpacity(0.3) QApplication.setOverrideCursor(QCursor(Qt.CrossCursor)) self.start= self.end= QPoint() self.result_font= QFont("Arial", 14) def keyPressEvent(self, event): if event.key()== Qt.Key_Escape: QApplication.quit() elif event.key()== Qt.Key_Return and self.start!= self.end: x1, x2= sorted([self.start.x(), self.end.x()]) y1, y2= sorted([self.start.y(), self.end.y()]) try: img= ImageGrab.grab(bbox=(x1, y1, x2, y2)) text= pytesseract.image_to_string(img, lang='eng+chi_sim') print("n识别结果:n", text) except Exception as e: print("识别失败:", e) QApplication.quit() def paintEvent(self, event): if self.start== self.end: return painter= QPainter(self) painter.setPen(QPen(QColor(255, 255, 255), 2)) rect= QRect(self.start, self.end).normalized() painter.drawRect(rect) painter.drawText(rect.topLeft(),"按Enter确认,ESC退出") def mousePressEvent(self, event): self.start= event.pos() self.end= event.pos() self.update() def mouseMoveEvent(self, event): self.end= event.pos() self.update() def mouseReleaseEvent(self, event): passif __name__=="__main__": app= QApplication(sys.argv) window= QMainWindow() snipper= OCRSnipper(window) snipper.show() sys.exit(app.exec_())代码说明:核心功能:

截图功能:通过继承QWidget重写鼠标事件(mousePress/Move/Release)实现矩形框选。

OCR识别:使用pytesseract调用Tesseract引擎,支持中英文混合识别(需安装对应语言包)。

交互逻辑:框选后按Enter确认识别,ESC退出程序。

关键依赖:

PyQt5:用于GUI和截图界面开发。

Pillow(PIL):图像抓取(ImageGrab.grab)。

pytesseract:Tesseract OCR的Python封装。

使用前准备:

安装Tesseract OCR引擎:

Windows:下载安装包并添加环境变量(如C:Program FilesTesseract-OCR)。

Mac:brew install tesseract。

Linux:sudo apt install tesseract-ocr(Ubuntu/Debian)。

安装Python库:

pip install PyQt5 pillow pytesseract扩展建议:

多语言支持:修改image_to_string的lang参数(如'eng'仅英文)。

结果展示:用QMessageBox或新窗口显示识别结果,而非终端打印。

性能优化:添加图像预处理(灰度化、二值化)提升识别率。

效果示例:运行程序后全屏变半透明黑色,鼠标变为十字准星。拖动鼠标框选文本区域,按Enter输出识别结果到终端。

(注:实际效果为静态截图,动态操作需运行代码体验)此代码精简至100行内,保留了核心功能,适合学习OCR工具的基本原理或快速部署使用。

为什么人工智能用Python

这属于一种误解,人工智能的核心算法是完全依赖于C/C++的,因为是计算密集型,需要非常精细的优化,还需要GPU、专用硬件之类的接口,这些都只有C/C++能做到。所以某种意义上其实C/C++才是人工智能领域最重要的语言。

Python是这些库的API binding,使用Python是因为CPython的胶水语言特性,要开发一个其他语言到C/C++的跨语言接口,Python是最容易的,比其他语言的ffi门槛要低不少,尤其是使用Cython的时候。其他语言的ffi许多都只能导入C的函数入口点,复杂的数据结构大多只能手工用byte数组拼起来,如果还需要回调函数输入那就无计可施了。而CPython的C API是双向融合的,可以直接对外暴露封装过的Python对象,还可以允许用户通过继承这些自定义对象来引入新特性,甚至可以从C代码当中再调用Python的函数(当然,也有一定的条件限制)。不过这也是PyPy这样的JIT解释器的一个障碍。

而且Python历史上也一直都是科学计算和数据分析的重要工具,有numpy这样的底子,因为行业近似所以选择API binding语言的时候会首选Python,同时复用numpy这样的基础库既减少了开发工作量,也方便从业人员上手。

文章分享结束,python必背100源代码和免费写python代码的软件的答案你都知道了吗?欢迎再次光临本站哦!

html和php有什么区别 手机怎么打开html代码python自学需要多久,学python需要多久