周末摆弄了一下Python,原因总觉得之前的代码结构复杂,条理稍微有点混乱,编程思路不清晰,并且许多的代码也不够简洁,这次重新理了思路,把IPI处理的程序编写了一下,基本的程序结构已经完成,算是完成了一半,后续将做可视化等工作。鉴于许多同行对Python用在NVH-CAE中很干兴趣,这里稍微再稍微介绍一下。
首先,模块的应用方面。主要需要导入两个模块:tkinter和xlswriter,前一个为编写可视化的面板所需要的模块,后一个为把相关结果写入到excel中需要用到的模块,这两个模块是基本的,其他的一般可能会应用到math和time模块,一个为科学计算,可能会用到基本函数,另一个为time模块,程序运算计时时需要。这些模块的用法可以可以查看https://github.com/,这个最详细。
importtkinteras*
importxlsxwriter
importtime
importmath
其次为程序结构的,或者称之为算法。程序最重要的是可以满足各种使用需求,具体来讲,就是不管是输出的速度响应、位移响应还是加速度响应,不管计算的单位系统是mm-t-s还是m-kg-s,各式各样的组合,程序均能分析和判断,并得到正确的数值。在程序输出方面,可以根据用户需求,设置不同的输出单位和格式,根据用户设置的计算频率范围,计算不同频率段的平均刚度。在曲线图表的输出中,并最终导入到报告ppt得到一件生成报告目的。所以,基于以上一些功能,分别写成功能子函数的,利用参数传递数据,尽量让自己的程序简洁明了,便于维护,后续增添功能的时候也方便。
#!/usr/bin/env python3
# -*- coding: UTF-8 -*-
#Initialization 初始化导入需要的包
importtkinteras*
importxlsxwriter
importtime
importmath
#----------------------------------
#read pch file
'''
How to read the pch file
'''
#-----------------------------------
#caculation IPI
'''
How to caculation IPI
'''
#-----------------------------------
#get the IPI target
'''
How to get the IPI target
'''
'''
......
'''
最后总结一下,善用各种数据类型和结构形式,字符串、列表、元组以及字典,均是存储数据的类型,合理应用,一是使程序实现更加简洁方便,而是效率更高。像基于python来处理数据的程序设计,归根结底来说就是获取字符列表,处理字符列表的操作(好像所有的程序均是如此。。。),掌握基本的字符处理方法和语法,事半功倍。
领取专属 10元无门槛券
私享最新 技术干货