============================================

《C语言》

关键字 C89标准,32个关键字

auto :声明自动变量

break:跳出当前循环

case:开关语句分支

char :声明字符型变量或函数返回值类型

const :声明只读变量

continue:结束当前循环,开始下一轮循环

default:开关语句中的“默认”分支

do :循环语句的循环体

double :声明双精度浮点型变量或函数返回值类型

else :条件语句否定分支(与 if 连用)

enum :声明枚举类型

extern:声明变量或函数是在其它文件或本文件的其他位置定义

float:声明浮点型变量或函数返回值类型

for:一种循环语句

goto:无条件跳转语句

if:条件语句

int: 声明整型变量或函数

long :声明长整型变量或函数返回值类型

register:声明寄存器变量

return :子程序返回语句(可以带参数,也可不带参数)

short :声明短整型变量或函数

signed:声明有符号类型变量或函数

sizeof:计算数据类型或变量长度(即所占字节数)

static :声明静态变量

struct:声明结构体类型

switch :用于开关语句

typedef:用以给数据类型取别名

unsigned:声明无符号类型变量或函数

union:声明共用体类型

void :声明函数无返回值或无参数,声明无类型指针

volatile:说明变量在程序执行中可被隐含地改变

while :循环语句的循环条件

1999年12月16日,ISO推出了C99标准,该标准新增了5个C语言关键字:

inline restrict _Bool _Complex _Imaginary

2011年12月8日,ISO发布C语言的C11标准,该标准新增了7个C语言关键字:

_Alignas _Alignof _Atomic _Static_assert _Noreturn _Thread_local _Generic

数据类型

整型:int, long, short, 有符号,无符号unsigned

字符型:char, 有符号,无符号unsigned

布尔型:_bool

浮点型:float,双精度double。

字符串:没有字符串类型,用char型数组。

空类型:void

常量

可用#define定义。

用const,限定变量为只读。

基本运算符

数学运算符+-*/ %,正负+-,自加自减++ ,--,

sizeof()返回变量大小,强制类型转换(int)1.6

赋值=,其他赋值运算符+=,-=,...

关系运算符 > < >= <= != ==

逻辑运算符 && || !

条件运算符 ? :

地址运算符 & 指针运算符*

位操作运算符 &,|,~,^,<<,>>,

循环

for

while

do...while

分支和跳转

if ... else...

switchi...case...default

continue, break,goto

函数

带参数函数;return;函数声明;递归自己调用自己;

数组

数据类型 数组名[ 元素个数] 下标从0开始,定义时必须规定数组大小。

初始化 ={1,2,4,8,16};

多维数组,

字符串与字符串函数

库函数中的stdio.h,string.h

存储类别与作用域

auto,register,extern,static,const,volatile可由硬件改变,

打印和扫描

printf()函数

scanf()函数

getchar()

putchar()

文件I/O函数

fopen(), exit(), fgets(), fputs()....

结构体、联合体、枚举

struct,union,enum,typedef。

注释,区分大小写

//单行

/* */ 多行

程序结构

包含头文件;宏定义;

各种变量定义初始化;

子函数声明;

主函数{

初始化;

循环体;

}

子函数(){ };

========================================================

《Python语言》

关键字 python3共33个关键字

False 布尔类型假

None 空值,None和任何其他数据类型比较永远返回False

True 布尔类型真

and 逻辑与

as 与import配合使用,或配合with使用

assert 断言,用来在运行中检查程序的正确性

break 用来终止循环语句的

class 定义类的关键字

continue 跳过当前循环块中的剩余语句

def 定义函数用的

del 用于list列表操作,删除一个或者连续几个元素。

elif 和if配合使用的

else 与if配合使用

except 使用try和except语句来捕获异常

finally 异常机制中与try使用,无论try是否抛出异常,finally语句块一定会被执行

for 循环语句可以遍历任何序列的项目

from 用import或者from…import来导入相应的模块

global 一般在局部或函数内对全局变量进行修改,须在局部用global声明变量

if 条件语句

import 用import或者from…import来导入相应的模块,导包操作

in for…in是另外一个循环语句。判断键是否存在于列表字典中

is 判断两个变量的指向是否完全一致,及内容与地址需要完全一致,才返回True

lambda 匿名函数,用一行实现一个函数

nonlocal 用来在函数或其他作用域中使用外层(非全局)变量,一般使用于嵌套函数

not 逻辑非,取反的意思

or 逻辑或

pass 什么都不要做,一般使用在空函数上,占位符

raise 抛出异常关键字

return 函数返回值

try 使用try…except语句来处理异常

while 重复执行一块语句

with 一个控制流语句与as配合使用,可以用来简化try…finally语句

yield 用起来像return,yield要求函数返回一个生成器,生成器通常可理解成迭代器

数据类型

整数、浮点数,复数1 + 2j (数中可加下划线增强可读性,python会自动忽略)

(同时给多个变量赋值,用逗号隔开x, y, z = 0, 0, 0)。

布尔类型,True,False。空值None。

字符串、列表、元组、字典。

强制类型转换 int(x) float(x)

变量

python是动态语言,变量的数据类型任意,且不固定可变。

命名字母数字下划线组成,数字不能开头。大小写敏感。

PEP8规则:小写字母,多个单词用下划线连接。受保护实例属性用单下划线。私有实例属性用双下划线。

常量

没有内置常量类型,习惯用全大写字母变量表示常量。例如 PI

运算符

算数运算符 + - * / %求余 **幂 //整除

关系运算符 == != > >= < <=

赋值运算符 = += -= *= /=等等。:=

位运算符 & | ^ ~ << >>

逻辑运算符 and or not

成员运算符 in not in

身份运算符 is is not 比较两个对象的存储单元

下标 [ ],切片 [ : ]

字符串

用单引号或双引号括起来的。需要正确使用引号避免语法错误。三引号括起来多行字符串。

通过索引截取字符串,变量[头下标:尾下标],var1[0]

.title()方法,.upper()方法 .lower()方法,

f字符串:f"hello, {xxx} {yyy}" 字符串前加f可将{}内的变量代入字符串。

转义字符,制表符 \t,换行符 \n。.rstrip()方法删除空白。

占位符格式化输出字符串。

注释

用#号注释单行。

用""" """或 ‘’‘ ’‘’ 三对单引号或三对双引号进行多行注释。

中文注释注意用utf-8格式

列表

类似数组,用[ ]定义,中间用逗号隔开,索引下标从0开始。-1 索引最后一个元素。

列表中元素可以为字符串等。更复杂更灵活。

类似数组的访问方式,修改元素。.append()方法添加元素。.insert()方法添加元素。del 删除元素,或调用.pop()删除元素。

.sort()方法进行永久排序。.sorted()方法临时排序。.reverse()方法永久反向排序。len()函数求长度或._len_()方法。

用for...in列表名: 遍历列表。注意缩进错误。

函数range() 生成一系列数 range(1,6)生成1,2,3,4,5数列不超过6。range(2, 11, 2)从2开始不超过11,步长为2。

list()函数创建列表,配合range()使用。

用min(), max(), sum()对数字简单统计

列表解析:squares = [value**2 for value in range(1, 11)] 一句生成列表。

列表切片:players[1:4]使用列表其中一部分

复制列表:用[:] 省略起始和终止索引,代表全部。

判断元素在列表中 用 in ,不在列表中用 not in。

元组

不可变的列表被称为元组。用圆括号()表示。可访问元素类似列表。不可修改元素,但可以重新定义元组来修改元素。

字典

用花括号括起来的一系列 键值对,键值对用冒号,之间用逗号隔开。访问字典中的值,用 字典名[ 键]

alien_0 = {'color': 'green', 'points': 5}

可先创建一个空字典,再逐一添加键值对赋值。用del可删除键。可使用方法get() 在指定的键不存在时返回一个默认值。

遍历字典,用方法items() ,返回一个键值对列表,用for key, value in user_0.items():

遍历字典所有键,用方法key()。方法values()返回所有值。

字典列表,先定义字典,再将字典作为列表的项。字典中存储列表。字典中存储字典。

集合

用set(列表)定义,无序无重复的键的集合,无值,重复键会自动删除。

循环

for 变量 in 序列 : 别忘记冒号,可配合range()使用。pass空语句。

循环体 注意缩进错误。

while 条件 : 别忘记冒号

循环体 也可以配合else使用。

break, continue

range(101)可以产生一个0到100的整数序列,从0开始,到101之前结束。

range(1, 100)可以产生一个1到99的整数序列,

range(1, 100, 2)可以产生一个1到99的奇数序列,其中的2是步长。

分支

if 条件 : 别忘记冒号。

分支1 缩进,语句块。

elif 条件: 别忘记冒号。可选,也可有多个elit。

分支3 缩进,语句块。

else: 别忘记冒号。可选。

分支2 缩进,语句块。

输入输出

print()

input()

迭代器和生成器

迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。有两个基本的方法:iter() 和 next()。

使用了 yield 的函数被称为生成器,生成器是一个返回迭代器的函数,只能用于迭代操作,更简单点理解生成器就是一个迭代器。?

函数

def 函数名 ( 形参 ) :

函数体

return xxx

调用函数时,用函数名(实参)即可。定义函数时,形参可赋默认值。注意实参匹配。可向形参传递列表,列表在函数内可访问。可用[:]传递列表副本,防止修改原始列表。

用 *形参 来传递任意数量的实参。用 **形参 传递任意个关键字实参。

返回值可返回字典。形参指定默认值时,等号两边不要有空格。

匿名函数 lambda [arg1 [,arg2,.....argn]]:expression f = lambda x, y: x * y

模块

将函数存储在称为模块 的独立文件中,再将模块导入 到主程序。所有import 语句都应放在文件开头。Python中每个文件就代表了一个模块(module)

import 文件模块名

用 模块名.函数名() 访问。

from 模块名 import 函数名

as 给函数指定别名,from 模块名 import 函数名 as 别名。也可以给模块指定别名。用星号*可以导入模块中所有函数。

from random import randint

class 类名 : 约定首字母大写的名称指的是类。没有圆括号是从空白创建这个类

def __init__(self, 形参1,形参2) : 创建新实例时自动运行。类中的函数称为方法。

函数体 self.name='xxx'

def 函数名(self): 方法

函数体

实例名=类名( 形参1,形参2) 创建实例,小写字母认为是实例名。可创建多个实例

实例名.name 访问属性。

实例名.方法名() 访问方法。

属性可以有默认值。创建实例后,可直接修改属性值,可以调用方法修改属性值。

class 类名 (父类名): 继承,圆括号里加父类名。

def __init__(self, 形参1,形参2) : 子类拥有全部父类方法属性。

super(). __init__(self, 形参1,形参2) 初始化父类属性,

子类可以有自己的属性方法。子类中可重新定义父类的方法。

可将一个新类的实例,作为类的属性。可通过多级点访问相关方法。

导入类,将类单独存于一个文件中,形成模块。用 from 文件(模块)名 import 类名 来导入。一个模块中可包括多个类,可以导入多个类或全部导入 import 模块名。一个模块也可以导入其他模块。导入后使用别名用as。

标准库random模块中, randint()随机数,choice() 随机一个元素。

类名应采用驼峰命名法 ,即将类名中的每个单词的首字母都大写,而不使用下划线。实例名和模块名都采用小写格式,并在单词之间加上下划线。类定义后面包含一个文档字符串,描述类的功能。在类中,可使用一个空行来分隔方法;而在模块中,可使用两个空行来分隔类。需要同时导入标准库中的模块和你编写的模块时,添加空行。

文件读写

with open('text_files/filename.txt') as file_object:

file_object.readlines()

with open(filename, 'w') as file_object:

file_object.write("I love programming.")

import json 用JSON存储数据。

异常

每当发生让Python不知所措的错误时,它都会创建一个异常对象。如果你编写了处理该异常的代码,程序将继续运行;如果未对异常进行处理,程序将停止并显示traceback,其中包含有关异常的报告。异常是使用try-except 代码块处理的。

try:

代码段

except 异常名:

print("You can't divide by zero!")

else:

print(answer)

finally: try-finally 语句无论是否发生异常都将执行最后的代码

print('这句话,无论异常是否发生都会执行。')

静默处理用pass。

assert(断言)用于判断一个表达式,在表达式条件为 false 的时候触发异常

作用域

当内部作用域想修改外部作用域的变量时,就要用到 global 和 nonlocal 关键字。

代码格式

缩进4个空格。可空行。UTF-8编码。命令行模式、交互模式。

测试代码测试类

略。

程序结构

import xxx 导入各种模块

函数定义def #各种子函数定义

类定义class #各种类定义,尽量把子函数都包括在类里。

def main(): #主函数

if __name__ == '__main__': #函数化编程。

main() #直接放上语句可以直接执行,最好函数化

================================================================

《MATLAB语言》

关键字 流程控制关键字一共20个。其他还有很多种类。

break

case

catch

classdef 定义类

continue

else

elseif

end

for

function

global

if

otherwise

parfor 并行计算

persistent

return

spmd 并行计算

switch

try

while

数据类型

整数, 转换函数int8, uint8, int16, uint16, int32, uint32, int64, uint64; 浮点数,转换函数 单精度single, 双精度double; 复数,虚部用i,j表示。 无穷 Inf,-Inf。非数值量NaN

逻辑类型:0为假,1为真,非0为真。

字符和字符串,字符串按照字符向量存储。

函数句柄:@函数名

结构体: struct()

数组,矩阵。单元阵列。

用户类classdef。

变量

变量名大小写敏感。局部变量,global 全局变量大写,persistent 永久变量。

特殊变量:ans pi eps inf nan i或j beep 等等。

常量

运算符

算数运算符 + - * / .*矩阵乘 ./矩阵除 ^幂 .^矩阵幂 ‘转置 .'数组转置

关系运算符 == ~= > >= < <=

逻辑运算符 & | ~

位运算符 & | ^

集合运算符函数。

“:” 来建立矢量、下标数组和指定的迭代。

字符串

用单引号括起来的' '

字符串处理函数

注释

%单行注释

选中代码段,右键注释,可多行注释。

分号;隐藏输出。

数组与矩阵

向量用中括号[ ]创建,行向量用空格或者逗号隔开,列向量用分号隔开。

引用向量元素用 向量名(x:y)。索引从1开始。

向量加减法、乘法、追加向量、模、点积、等差向量。

矩阵用[ ]创建,行用逗号或空格隔开,列用分号隔开。矩阵的元素可以是数值、变量、表达式或函数。尺寸不必预先定义

矩阵操作函数、矩阵运算函数。

分支

if 表达式

语句块

elseif 表达式

语句块

else

语句块

end

switch 表达式

case xxx

语句块

case yyy

语句块

otherwise

语句块

end

try

语句块 %首先执行此块,如正确则退出

catch

语句块 %如上句发生错误,则执行该句。

end

循环

for x=1 : 100

语句块

end

while 表达式

语句块

end

continue break

return强制 MATLAB在到达调用脚本或函数的末尾前将控制权交还给调用程序。

函数

function [out1,out2, ..., outN] = myfun(in1,in2,in3, ..., inN)

函数体

匿名函数f = @(arglist)expression、重载函数、内联函数、等等。

命令

操作管理会话,系统命令,创建数组和绘图命令。

数据可视化

绘图函数,2维,3维,4维。

数据导入、导出

数据分析、符号计算、概率统计、数学建模、智能算法、各种工具箱、simulink。

略。

===========================================================

总体对比:

C:简单的静态编程语言,所有变量都需要预先严格定义。功能和程序结构都很简单,很难实现复杂功能,外部库很少。结合单片机编程理解更清晰。

Python:面向对象,也可以面向过程。功能很强,可以通过各种库实现复杂功能,也能实现复杂矩阵运算和绘图,列表和字符串处理是特长。

MATLAB:专门为了数学运算、矩阵运算而诞生的数学工具,内置了大量操作函数,多数复杂运算和功能都可以通过调用函数实现。编程语法和使用方式相对来说很特殊。特长是矩阵的运算处理,绘图。

2021.8.31

C语言、Python和MATLAB区别相关推荐

  1. python与matlab哪个更容易学-详解python和matlab的优势与区别

    Python是一种面向对象的解释型计算机程序设计语言.Python是纯粹的自由软件, 源代码和解释器CPython遵循 GPL(GNU General Public License)协议 .Pytho ...

  2. python和matlab的区别_我为什么选择Python,不是Matlab和R语言呢?

    做数据分析.科学计算等离不开工具.语言的使用,目前最流行的数据语言,无非是MATLAB,R语言,Python这三种语言,但今天大圣众包(www.dashengzb.cn)小编简单总结了python语言 ...

  3. matlab和python的语言_四大机器学习编程语言对比:R、Python、MATLAB、Octave

    本文作者是一位机器学习工程师,他比较了四种机器学习编程语言(工具):R.Python.MATLAB 和 OCTAVE.作者列出了这些语言(工具)的优缺点,希望对想开始学习它们的人有用. 图源:Pixa ...

  4. c语言 python java_C语言、C++、Java,Python之间的区别,哪个更有前景,哪个更难 ?...

    从这四种语言的难度.受欢迎度还有作用以及优点缺点给楼主做一个全面的分析,我们可以从中了解其区别,以及难易程度.至于今后可以用到的或者是前景问题,根据自己的职业发展大家可以自己做个分析.最后会总结一下他 ...

  5. python中动态语言静态语言的定义_作为程序开发,你所需要知道的编译型与解释型、动态语言与静态语言、强类型语言与弱类型语言的概念以及区别...

    作为程序开发,你所需要知道的编译型与解释型.动态语言与静态语言.强类型语言与弱类型语言的概念以及区别! 在各式各样的开发过程当中,我相信各位开发小伙伴在开发过程中并没有太关注什么是解释性语言和编译性语 ...

  6. python和labview的区别_labview和matlab区别

    LabVIEW和MATLAB作为本身功能比较完善的软件环境,在各自不同的领域中有着十分广泛的应用.下面小编就详细介绍LabVIEW和MATLA以及它们之间的区别. 一.LabVIEW简介 LabVIE ...

  7. python与matlab的优缺点

    如果要问我选哪个,我会建议两个都选.很多人喜欢拿python和matlab对比,然后得出哪个更好的结论.其实吧,够用就好. 如果是学生,或者研究人员,比如研究信号处理,那么用matlab比较好,有大量 ...

  8. 【Language】解释性语言和编译型语言的区别和不同

    解释性语言和编译型语言的区别和不同 解释性语言 编译型语言 概念 计算机不能直接的理解高级语言,只能直接理解机器语言,所以必须要把高级语言翻译成机器语言,计算机才能执行高级语言的编写的程序.翻译的方式 ...

  9. 范德蒙德矩阵在MATLAB中怎么表示,Python 之 Python与MATLAB 矩阵操作总结

    Python 之 Python与MATLAB 矩阵操作小结 一.线形代数理论基础 线形代数(linear algebra)是数学的一个分支,研究矩阵理论.向量空间.线性变换和有限维线形方程组等内容. ...

最新文章

  1. 内网渗透测试:内网信息收集与上传下载
  2. python中pickle简介
  3. SQL validation failed.Column ‘content‘ not found in any table
  4. 4倍速!ML.NET Model Builder GPU 与 CPU 对比测试
  5. mysql根据语句自动实现索引_mysql 语句的索引和优化
  6. C++ 4 种具有更 为准确语义的新强制转换类型
  7. 外挂摄像头?iPhone XI新概念图曝光:差点就信了...
  8. K-means聚类分析算法(二)
  9. 反射 字段_一次简单的Go反射实战经历分享
  10. 响应已被截断_技术:RWD响应式网站网页设计基本原则
  11. IE8 SVG Viewer下一些对象属性和方法
  12. java+mysql 基于ssm205网上购物超市系统#毕业设计
  13. eclipse php 教程,Eclipse PHPEclipse配置方法文字教程
  14. python循环结构高一信息技术会考_高一信息技术会考样题及参考答案
  15. Latex表格排版(三个表格并列、单元格内容自动换行)
  16. 一定要会的Python爬虫技能,搜索名字即可下载全文小说?
  17. Android 手势导航(Launcher3 部分)
  18. JavaScript完成简单的对联广告
  19. 怎么把pdf转为html?PDF转HTML转换器推荐
  20. 微服务-分布式事务seata

热门文章

  1. Oracle的学习心得和知识总结(十八)|Oracle数据库性能压测工具swingbench的安装和使用及AWR ASH ADDM报告生成
  2. C++宽字符类型wchar_t
  3. android安装和使用tcpdump
  4. LocalDateTime去掉T,JSONField失效
  5. 七夕节的习俗有哪些?
  6. C/C++获取当前系统时间的方法
  7. NUll 不是 []
  8. html代码设置span字体颜色,怎么用span css设置div内部分字体颜色?
  9. Linux安装禅道在web页面进行系统检查时出现:临时文件和上传文件目录不通过(敲命令:setenforce 0 搞定)
  10. JS和JSP之间的区别