找回密码
 注册
Simdroid-非首页
查看: 339|回复: 4

[二次开发] abaqus中python语言的数据结构简介

[复制链接]
发表于 2011-7-7 08:35:09 | 显示全部楼层 |阅读模式 来自 辽宁阜新
最近学习了abaqus中的python语言进行二次开发,发现对python的基本数据结构的了解还是非常重要的,故将一些在二次开发中能用到的基本知识进行了简单归纳总结如下,与大家分享:
1.序列
Python内置三种序列数据类型:list(列表)、tupe(序表)、string(字符串)。

Type        Mutable        Homogeneous        Methods        Syntax
list        Yes        No        Yes        [9.0,’b’]
tupe        No        No        No        (‘a’,45)
string        No        Yes        Yes        ‘stress’

(1)List方法:
count(a):统计a在列表中的个数;
index(a):统计a在列表中第一次出现的索引;
insert(a,b):在列表中的索引a位置插入b;
reverse():将列表中元素进行颠倒;
sort():将列表中元素进行升序排序;
(2)序列的操作:
切片操作:a[1:5];
重复操作:x=(1,2),   >>>x*2      >>>(1,2,1,2);
连接操作:+直接用于连接两个序列成一个新的序列;
type(a):返回序列a的类型;
len(a):返回序列a的长度。
range():返回一个连续的整数类型的列表,通常用于控制循环中,
例如:>>>range(2,8)
      [2, 3, 4, 5, 6, 7]
      >>>range(4)
      [0, 1, 2, 3]
      >>>range(1,8,2)
      [1, 3, 5, 7]
(3) None:
Python定义None对象代表了空值,None对象通常在函数和方法的返回值。
2.续行符
Python中使用”\”来结束一行的输入而直接转入下一行的输入。
3.输入具有一定格式的变量
使用Print语句进行输出显示和%来格式化输出变量。
例如:
>>>freq=22.0/7.0
>>>x=7.234
>>>print ‘Vibration frequency = %s  Displacement = \
   %6.2f ‘  %  (freq, x)
Vibration frequency = 3.14285714286  Displacement = 7.234
>>> print ‘Vibration frequency =  ‘, freq, Displacement = ‘, x
Vibration frequency = 3.14285714286  Displacement = 7.234

4.控制流:
Python控制流包括if语句、while和for循环(自己看书查询学习)!
5.函数
(1) 函数定义
使用关键字def开定义一个函数,函数定义格式:
def 函数名(keyword1,keyword2,…):
    ‘用于注释函数主要功能的字符串’
        statements
        return
【注】:函数定义的时候可以给参数进行初始赋值。
(2) 函数调用方式
        有两种方式,一种为不带参数关键字的调用方式,一种是带参数关键字的调用方式,第二种调用方式函数参数的顺序可以随意颠倒,但第一种必须严格按照函数定义时候的顺序就行赋值调用。
     例如:
     >>> from math import *
     >>>def calculateCylinderVolume(radius,height):
             ‘Calulate the volume of  a cylinder’
             volume=pi * radius ** 2 * height
             return volume

     >>>volume=calculateCylinderVolume(3.2,27.5)
     >>> volume=calculateCylinderVolume(radius=3.2,height=27.5)
     >>> volume=calculateCylinderVolume(height=27.5, radius=3.2)
6.字典数据类型
(自己查书学习)
7.Python的文件的读写操作
只读模式(read only):myInputFile = open ( ‘ crash_test/fender.txt’, ‘r’)  #默认是只读模式;
读写模式:myInputFile = open ( ‘ crash_test/fender.txt’, ‘w’)
【注】其中myInputFile是一个文件对象,有很多成员和方法,可以使用该对象的_methods_方法来显示文件对象所以的方法。
例如:>>>myInputFile._methods_
[‘close’,’fileno’,’flush’,’isatty’,’read’,’readinto’,’readline’,’readlines’,’seek’,’tell’,’truncate’,     ’write’, ’writelines’]

实例分析:
>>>inputFile=open(‘foam’,’r’)
>>>outputFile=open(‘upper.txt’,’w’)
>>>lines=inputFile.readlines()     #返回的lines是一个列表
>>>for line in lines:
       newline=line.upper()
       outputFile.write(newLine)
>>>inputFile.close()
>>>outputFile.close()
8.        异常处理(Error handling)
try…except语句(自己查书学习)
9.函数与模块关系
Python中内置了很多函数,这些函数在编写python语句过程中是可以随意调用的,但是有一些函数也是Python本身所具有的,但是直接不可以直接调用,需要在调用前,将该函数所做的模块导入到python语句中来,然后便可以使用该函数。
模块中不仅包括了函数,同时也包括了一些变量和常数。
导入模块方法:
(1)import 模块名称
(2)from 模块名称 import
上述两种方式均可导入模块,但是在调用模块中函数、方法和成员的时候是不同的,导入方式(1)中,必须将该模块看成是一个对象,在调用其中函数、方法和成员的时候必须使用域(.),如:math.sin(),而方式(2)不需要,直接使用模块中的函数、方法和成员即可调用。
【注】:模块其实就是一个python脚本文件,如math.py。

评分

1

查看全部评分

发表于 2011-7-7 09:21:10 | 显示全部楼层 来自 上海
Simdroid开发平台
楼主应该把字典和对象稍微介绍一点,这两个在abaqus里面出现的也很多。
回复 不支持

使用道具 举报

 楼主| 发表于 2011-7-7 10:48:56 | 显示全部楼层 来自 辽宁阜新
恩,后续还要上传一些关于python进行abaqus二次开发方面的东西,现在正在努力学习中!
回复 不支持

使用道具 举报

发表于 2011-7-7 11:51:05 | 显示全部楼层 来自 江西赣州
写得不错。
就是这句
重复操作:x=(1,2),   >>>x*2      >>>(1,2,1,2);
这句稍微楞了下。
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-4-28 12:29 , Processed in 0.039335 second(s), 18 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表