Python实现简易在线代码编辑器:支持Python与C++
本文介绍如何使用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编写简易在线编辑器的介绍到此结束,更多相关内容请搜索本站过往文章或继续浏览后续文章,感谢大家的支持!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













