本片文章主要用于讲解Python的基本语法以及MATLAB用户要格外注意的点
上一篇文章传送门:独特的狂妄:Python 科学计算快速入门1(基础介绍以及环境配置) -- 一个针对MATLAB用户的教程zhuanlan.zhihu.com
基础运算符:
在Python中,基础运算符号包括:
Python 对应的MATLAB
+ +
- -
* * 与 .* (之后有详细说明)
** ^ 与 .^ (之后有详细说明)
/ / 与 ./ (之后有详细说明)
% mod(x, y)
// fix(x / y)
== ==
<= <=
< <
>= >=
> >
!= ~=
其中,部分运算符号是在MATLAB存在的,但是Python没有,这些包括:
' 与 .' (转置,在Python中通过函数实现了)
\ 与 . (左除)
在运算优先级上,两个语言没有显著差别
可以打开JupyterLab试一下,在cell里键入5 + 3,shift + enter,得到
然后试一下x = 5 + 3,把x赋值为5+3,发现输出消失了,不会提示你x等于几已经运行完了
那是因为:
Python语句结构:
在Python中,分号是分割两个句子的。也就意味着,结尾的分号是可加可不加的,在脚本中(类似于MATLAB中的.m文件),它不会控制是否输出当前语句
\ 符号是python的续行符号(在MATLAB中是 ...)
# 用于单行注释(在MATLAB中是 %)
Python的基础变量类型:
在Python中,部分基础变量类型有:int,代表整数,没有任何精度限制,位数越多,使用内存越多。
float,代表浮点数(等同于MATLAB中的double,Python本体不支持单精度浮点数,这里不细讲了)
complex,代表复数。在Python中,复数根不能用 i 表示,必须使用大写或小写 J 表示。
bool,代表布尔值。在Python中,布尔值仅仅包括 True 和 False。判断返回的是布尔值,他们可以看作是 1 和 0 的载体。
string,代表字符串,几乎等同于MATLAB中的string,也不细讲了
Python的int:
Python的int可以近似看作数学上的整数,没有长度限制,所以也没有int8,16,32,64等。
创建整数类型:在Python中,默认的无小数点数字就是整数类型,比如x = 1000就是创建 一个值为1000的整数
Python中的整数与MATLAB相差极大,这里给一个例子来说明一下:
在MATLAB中,x的类型是double,而Python中是int
这个例子体现出来了:Python int的精度是永远精确到个位的,导致占用的内存大小不是恒定的
Python 在创建变量时,如果值是没有小数点的整数,那么默认创建整数变量而不是浮点数
Python 进行判断后返回的是布尔值,而不是0 或 1
Python的Complex:
在python中,创建一个合法的复数需要类似于:
2 + 3j # 是合法复数
1J # 是合法复数,实数部分可以省略,大小写J皆可
# 与MATLAB不同的地方:
2 + j # 不是合法复数,复数部分的常数不能省略
j # 不是合法复数,复数部分的常数不能省略
复数运算和MATLAB相近
Python的类型转换:
与MATLAB不同,类型转换的函数在Python中是与转换前类型无关的
这里还是举一个例子方便大家理解MATLABPython
看到区别了吧
有几点需要注意:Python 的类型转换函数的名称是要转换到的类型,而不是单独的函数
Python 转换为 int 时是舍去小数点!,不是四舍五入!也意味着int(-2.99)是 -2 。假如你要四舍五入,应该使用round(-2.99)