当前位置: 首页 > news >正文

如何在c++编译器里写python代码~python转c++

如果你是一个想转行c++的python学者(。又或是一个喜欢恶搞的c++学者。),这篇文章可能是自你知道c++开始最令人震惊的东西。


看看这个吧

#include<iostream>#include<fstream>#include<cstdlib>intmain(){std::string py_code=R"(# -*- coding: gbk -*- print("这是Python代码,由C++调用") a = 100 + 200 print("计算结果:",a) )";std::ofstreamtmp("temp.py");tmp<<py_code;tmp.close();intret=std::system("py temp.py");returnret;}

想必无论你是学c++的还是学python的看到这个都有不少感触吧。

没错,你可以在c++编译器里写python代码。

#include<iostream>#include<fstream>#include<cstdlib>intmain(){std::string py_code=R"(# -*- coding: gbk -*- )";std::ofstreamtmp("temp.py");tmp<<py_code;tmp.close();intret=std::system("py temp.py");returnret;}

这是c++框架,然后你只要在

里面写python代码就能直接运行。
这个东西有时候很好用,比如

这道题,很明显,是一道高精度。
众所周知,c++写高精度极为麻烦

#include<iostream>#include<string>#include<cstring>usingnamespacestd;constintMAXN=505;// 最多500位,预留505防止进位多一位inta[MAXN],b[MAXN],ans[MAXN];string s1,s2;intlen1,len2,len_ans;intcarry;// 进位intmain(){// 1. 读取两个大数字字符串cin>>s1>>s2;len1=s1.size();len2=s2.size();// 2. 逆序存入数组:下标0是个位for(inti=0;i<len1;i++){a[i]=s1[len1-1-i]-'0';}for(inti=0;i<len2;i++){b[i]=s2[len2-1-i]-'0';}// 3. 逐位加法,循环到最长数字长度carry=0;len_ans=max(len1,len2);for(inti=0;i<len_ans;i++){intsum=a[i]+b[i]+carry;ans[i]=sum%10;carry=sum/10;}// 4. 处理最高位剩余进位if(carry!=0){ans[len_ans]=carry;len_ans++;}// 5. 逆序输出(从最高位打印到个位)for(inti=len_ans-1;i>=0;i--){cout<<ans[i];}cout<<endl;return0;}

但是python写这道题直接一行搞定

print(int(input())+int(input()))

于是我们可以把这个放进我们的框架里。即

#include<iostream>#include<fstream>#include<cstdlib>intmain(){std::string py_code=R"(# -*- coding: gbk -*- print(int(input()) + int(input())) )";std::ofstreamtmp("temp.py");tmp<<py_code;tmp.close();intret=std::system("py temp.py");returnret;}//哈哈,再也不会被学python的嘲笑啦

这可不是减少了一点点,万能框架一套,要写的其实也只有那一行。


接下来,我来讲一讲原理,这段代码其实是把python存入temp脚本,然后再启动 Python 解释器,运行刚刚生成的temp.py脚本。
所以运行完后,桌面上会多出一个 temp.py 。(可能要手动删除)

若运行发生错误,给出以下修复方案

1. 在程序最顶端加上

#include<string>

2. 若未安装python,见 python https://www.python.org/downloads/windows/ ,选择 3.10/3.11 稳定版,或者在应用商店安装。
3. 若程序依然无法运行,请检查python语法是否正确
4. 若仍运行出错,尝试将代码

intret=std::system("py temp.py");

改为

intret=std::system("python temp.py");

后再次运行。若程序显示

请立即改回

intret=std::system("py temp.py");

6.若还是不行,本人也无能为力了


希望本文能为大家带来启发。本文到这里就结束了。感谢大家的浏览,若有补充,请在评论区指出。

http://www.jsqmd.com/news/1299397/

相关文章:

  • 轻量化模型设计:在树莓派上部署MobileNetV3进行实时手势识别
  • 2026年天津黄金回收最新行情,实时金价与变现时机分析 - 日常比对手册
  • mac 电脑brew安装MySQL详解
  • 基于java+SpringBoot的高校评教系统的设计与实现(源码+lw+部署文档+讲解等)
  • 学术写作智能助手:NLP与知识图谱在论文写作中的应用
  • Python列表元素高效删除:从列表推导式到切片赋值的7种方法
  • 组织级项目管理(OPM)核心要素与实施路径详解
  • 免费投票小程序哪家靠谱?云众评选 vs 同类平台深度对比,防刷票功能碾压对手 - 微信投票小程序
  • Qt进阶实战:从零实现《别踩白块》游戏,掌握事件处理与图形渲染
  • 智能车视觉导航:边线提取算法原理与工程实践详解
  • 命令行文件加密工具enc:轻量级数据保护与自动化实践
  • 2026年8月青岛专业靠谱服务好的离婚纠纷律师推荐郑泽敏:高净值家庭离婚分割难题频发,青岛婚姻律师拆解股权、代持资产分割实操思路 - 十大排行榜推荐
  • 固态硬盘选购避坑指南:从接口协议到颗粒主控的实战解析
  • 2026 崇左合规非急救监护转运救护车桂西南边境跨省护送服务 - 天下观知
  • 天门别墅入户门选购指南|铸铝门、装甲门避坑要点,探访九皇门业集成中心 - 国麟测评
  • 抖音收紧四类AI仿真人剧准入门槛,最受伤的是“量产型“团队
  • 魔兽争霸3终极优化工具:性能增强与宽屏适配完全指南
  • 微电网优化调度:改进粒子群算法的多目标实践
  • Tavily AI搜索API测评:技术调研与自动化文档检索实战
  • 2026年专业升降灯杆厂家推荐:定制升降灯杆选购指南 - 全域品牌推荐
  • Python网络爬虫实战:解析酷我音乐音频流与直链获取技术
  • ESP系列PWM管脚全解析:从硬件原理到多路舵机控制实战
  • 十堰装修怎么选?柏总管整装与主流装企对比 - 国麟测评
  • 个体工商户营业执照注销流程是什么?注销营业执照需要多少钱? - 慧办好
  • 3分钟掌握抖音直播数据抓取:零代码获取实时弹幕的终极指南
  • C#中Math.Atan与Math.Atan2的区别:从坐标转换Bug到全象限角度计算
  • 宿迁苏北环湖厂房彩钢瓦修缮怎么选?4 家专业除锈防水翻新服务商深度测评 + 冻融盐碱梅雨三重腐蚀专属避坑指南 - 本地便民网
  • 优质睡眠的科学机制与实用提升策略
  • UE4第一人称角色移动与视角控制:从核心组件到手感调优
  • 飞书文档批量导出工具:25分钟搞定700+文档备份