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

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

本文介绍如何使用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 相关产品和应用

全部下载

专题列表