5.1. Python基础¶
SudoSim 采用Python语言进行建模,这给用户提供了非常自由的建模环境。基于Python语言建模,用户不但可以高效编写建模脚本,还可以无缝调用大量已有的Python包。
Python是缩进敏感型程序,缩进帮助Python进行作用域的划分。’#’ 符号用于Python代码的单行注释。下面的代码给出了Python的一些基本的语法结构。
5.1.1. 导入包¶
导入math库,math库包含了一些基本的数学运算工具
1import math
5.1.2. 定义一些数¶
数的基本类型主要包括整型、浮点(小数)。但在Python中,我们不需要先声明变量的类型,而是直接对一个变量赋值即完成定义。Python中的变量没有严格的类型限制,即便一个变量实现赋值了一个整数,你也可以重新给这个变量赋值小数或字符串甚至其它对象。数之间的操作符常用的主要有加(+)、减(-)、乘(*)、除(/)、指数(**)。
1a = 2 # 整型
2b = 5
3c = 2.0 # 浮点型
4d = a/b # d是整型
5e = c/b # e是浮点型
6print(a, d, e) # 打印a, d, e的值到命令行
5.1.3. 定义一些字符串¶
1a = 'abc' # 我们可以赋值任意类型的值到任意类型的变量当中
2b = "this is a 'Python' script."
3print(a, b)
5.1.4. 定义列表,元组以及字典¶
用于Python基本数据的存储
1c = [1,2,3,'ss'] # 列表
2d = (1,2,3,'ss') # 元组
3c[0] = 5 # 改变列表c的第一个元素,索引是从0开始计算的
4d[0] = 5 # 报错!与列表不同,元组在初始化后是不可以被修改的
5d={1:22,2:33,4:'ssss','w':123} #字典:其中1, 2, 4, 'w'属于键,而22, 33, 'ssss'和123属于键对应的值
6print(d[1], d[4], d['w'])
定义空的列表和字典用于稍后的数据存储
1c = list() # an empty list
2d = dict() # an empty dict
5.1.5. 测试表达式¶
1if 1>2:
2 print("1 is greater than 2, really?")
3else:
4 if 2 in [1, 2, 3]: # 如果2在列表[1, 2, 3]中
5 #此处我们开始一个for循环
6 for i in range(5): # 等价于 for i in [0, 1, 2, 3, 4]
7 print(i) # 用于打印显示for循环的i值
8 # 在c和d中追加一些数据
9 c.append(math.cos(i)*10 + 2.0**5) # 追加 10*cos(i) + 2.0^5 的值到列表 c,这里cos来自math库。
10 if i not in d.keys(): # 如果i不属于d字典的键
11 d[i] = str(i)
5.1.6. 函数¶
我们可以使用函数对我们的命令进行封装
1def GoodJob(input_number, keyword1 = 1, keyword2 = True):
2 if keyword2: # 等价于 if keyword2 == True
3 print(f"the input number is {input}")
4 input_number += keyword1 # 这里 input_number 的值被更新为 input_number + keyword1
5 return input_number # 返回 input_number 的值
6
7# 运行函数
8a = GoodJob(2) # a = 3, 打印信息将会显示 'the input number is 3'
9b = GoodJob(3, keyword1 = 5, keyword2 = False) # b = 8, 这里函数将不会打印任何信息
恭喜你!你现在已经掌握了运行数值模拟所必要的全部知识!
但也许这对于好学的你来说还不够!你可能会好奇更多酷炫的技术,比如如何进行文件的读写操作,如何利用Python进行面向对象编程。别急,我们后续教程会逐步为你呈现!