IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 从Python123学到的nodejs -> 正文阅读

[Python知识库]从Python123学到的nodejs

为了更有效率地完成作业, 我决定干点儿什么.

经过一番操作我很容易就得到了测试样例的json(javascript object notation)文件.

数据结构如下:
测试样例数据结构

于是我想到了JS有现成的解析JSON的API,又因为nodejs有读写本地文件的权限,于是我选择了nodejs开搞.

搞事流程:

  1. 读入得到的json文件;
  2. 将json字符串对象化;
  3. 分析要输出的问题的代码的测试样例的数据结果;
  4. 根据样例数据结构编写输出到文件的代码模板;
  5. 遍历测试样例添加结果代码;
  6. 将Python代码写入文件;
  7. 搞完收工.

代码:

/* 需要用到 node.js 的文件模块
 * 读文件
   - 异步: fs.readFile(filepath, encoding, function)
     - fs.readFile('./data.json', 'utf8', (err, data) => {
         if (err) {
             console.error(err);
             return ;
         }
         console.log(data);
     });
   - 同步: fs.readFileSync(filepath, encoding)
     - try {
         const data = fs.readFileSync('./data.json', 'utf8');
         console.log(data);
     } catch (err) {
         console.error(err);
     }
 * 写文件
   - 异步: fs.writeFile(filepath, content, function)
     - fs.writeFile("./data.out", data, err => {
         if (err) {
             console.error(err);
             return ;
         }
     });
   - 同步: fs.writeFileSync('./out.py', content);
 */
const fs = require('fs');

let datastr, dataobj;
let res = ""; // 结果代码字符串


datastr = fs.readFileSync("./data.json", 'utf8');
dataobj = JSON.parse(datastr); // 将json字符串转为js对象

let testcases = dataobj.data["18"]["testcases"];
let flag = false; // 标记 if 是否被输出

for (let key in testcases) {
    input = testcases[key].input;
    output = testcases[key].output;

    input = input.split('\n');

    let tpl = `if salary == ${input[0]} and five_one_insurance_fund == ${input[1]}:\n\tprint('${output}')\n`;
    if (flag == true)
        tpl = 'el' + tpl;

    flag = true;
    res = res + tpl;
}

try {
    fs.writeFileSync('./out.py', res);
} catch (err) {
    console.error(err);
}

结果代码:

if salary == 5400 and five_one_insurance_fund == 412:
	print('应缴税款0.00元,实发工资4988.00元。')
elif salary == 8800 and five_one_insurance_fund == 1200:
	print('应缴税款78.00元,实发工资7522.00元。')
elif salary == 6654.3 and five_one_insurance_fund == 421.9:
	print('应缴税款81.97元,实发工资6150.43元。')
elif salary == -200 and five_one_insurance_fund == 200:
	print('error')
elif salary == 8210 and five_one_insurance_fund == 210:
	print('应缴税款90.00元,实发工资7910.00元。')
elif salary == 20000 and five_one_insurance_fund == 1200:
	print('应缴税款1350.00元,实发工资17450.00元。')
elif salary == 33000 and five_one_insurance_fund == 2400:
	print('应缴税款3740.00元,实发工资26860.00元。')
elif salary == 1000000 and five_one_insurance_fund == 1:
	print('应缴税款432589.55元,实发工资567409.45元。')
elif salary == 88888 and five_one_insurance_fund == 4300:
	print('应缴税款20695.80元,实发工资63892.20元。')

最后将我复习到的一些东西做个总结:

  • node.js 读写文件的API
  • JSON字符串的解析
  • 模板字符串的使用
  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-03-11 22:09:03  更:2022-03-11 22:09:11 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 21:54:04-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码