Python实现简易在线代码编辑器:支持Python与C++

不晚
不晚
发布时间:2026-10-15| 5人浏览过
原创

本文介绍如何使用Python的PyWebIO库构建一个简易的在线代码编辑器。该程序支持Python代码的直接执行,并通过调用系统g++.exe编译器实现C++代码的运行测试。文章提供了完整的Python和C++示例代码,展示了从输入、保存到执行输出的全过程,并针对常见运行错误提供了排查建议。

Python在线编辑器实现原理

直接来看下面pywebio实现的代码,这是一个基于Python的简易在线编辑器示例。

Python代码执行示例

from pywebio.input import *
from pywebio.output import put_text
from os import system,remove
try:
    code = textarea('Code Edit Online', code={'mode': "python",'theme': 'darcula'}, value='# input your code here\n')
    with open('temp.py','w',encoding = 'utf-8') as f:
        f.write(code)
    system('python temp.py')
    put_text('成功运行程序')
except Exception as e:
    put_text('运行:错误 at %s' % e)

该程序核心依赖于pywebio库,实现了基础的在线编辑与执行功能。与C++编辑器不同,后者配置较为复杂,通常需要调用g++.exe编译器。如果您的电脑未安装Dev-C++或路径不一致,程序可能无法直接运行,此时您可以修改代码中的路径配置以适配您的环境。

C++代码执行配置

from pywebio.input import *
from pywebio.output import put_text
from sys import path
from os import system,remove
try:
    system('chcp 65001 >nul')
    code = textarea('Code Edit Online ( C++ )', code={'mode': "python",'theme': 'darcula',}, value='// input your code here.\n')
    with open('temp.cpp','w',encoding='utf-8') as f:
        f.write(code)
    put_text('成功运行程序')
    system(r'D:\Dev-C++\Dev-cpp\MinGW64\bin\g++.exe "%s\temp.cpp" -o "%s\temp.exe" && call "%s\temp.exe" && pause' % (path[0],path[0],path[0]))
    remove('temp.cpp')
    remove('temp.exe')
except Exception as e:
    put_text('运行:错误 at %s' % e)

运行程序时可能会遇到报错,请忽略此错误,它与我们的核心逻辑无关。如果报错信息不同,则说明您的代码中存在BUG。

from pywebio.input import *
from pywebio.output import put_text
from sys import path
from os import system,remove
try:
    system('chcp 65001 >nul')
    code = textarea('Code Edit Online ( C++ )', code={'mode': "python",'theme': 'darcula',}, value='// input your code here.\n')
    with open('temp.cpp','w',encoding='utf-8') as f:
        f.write(code)
    put_text('成功运行程序')
    system(r'D:\Dev-C++\Dev-cpp\MinGW64\bin\g++.exe "%s\temp.cpp" -o "%s\temp.exe" && call "%s\temp.exe" && pause' % (path[0],path[0],path[0]))
    remove('temp.cpp')
    remove('temp.exe')
except Exception as e:
    put_text('运行:错误 at %s' % e)

接下来进行程序测试,首先运行第一个示例,输入一段Python代码:

Python测试用例

maxNumber = 100
numbers = []
min = 2
numberSum = 0
for i in range(1,101):
    numbers.append(i)
    
while min <= maxNumber:
    is_prime = True
    for i in range(2,min):
        if (min % i) == 0:
            is_prime = False
            break
    if is_prime == True:
        numbers.remove(min)
    min += 1
print(numbers)

点击蓝色按钮后,观察控制台输出:

执行成功。

接着测试C++功能,测试代码如下(使用C++绘制桃心图案):

C++测试用例

// Author:PanDaoxi
#include <iostream>
using namespace std;
int main(){
    for(double y=1.5;y>-1.5;y-=0.1){
        for(double x=-1.5;x<1.5;x+=0.05){
            double a=x*x+y*y-1;
            char b=(a*a*a-x*x*y*y*y<=0.0?'*':' ');
            cout<<b;
        }
        cout<<endl;
    }
    
    return 0;
}

输入测试程序并提交,观察控制台结果:

控制台上成功打印出一个大桃心图案,运行无误。

关于Python编写简易在线编辑器的介绍到此结束,更多相关内容请搜索本站过往文章或继续浏览后续文章,感谢大家的支持!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。