编程语言基本概念
编程语言:由计算机科学家设计,给计算机传递指令的语言符号,,这些符号各有含义并且之间无二义性。
语法:编程语言每个结构/代码元素固定的使用格式
语义:编程语言每个结构/代码元素精确的含义
计算机代码:一条条计算机可以理解的指令
编码:用编程语言来编写算法的过程
机器语言:计算机硬件只能理解的一种非常低级的编程语言。与之相对的是高级计算机语言就是编程语言(人类语言)。
编译型语言:一次性将所有代码转换成二进制指令(机器语言)并生成可执行文件(.exe)的语言,如C语言、C++、Golang、Pascal(Delphi)、汇编等,使用的转换工具称为编译器。
解释型语言:可一边执行一边转换的语言,不会生成可执行程序。如Python、JavaScript、PHP、Shell、MATLAB等,使用的转换工具被称为解释器。
类型 | 原理 | 优点 | 缺点 |
---|---|---|---|
编译型语言 | 通过专门的编译器,将所有源代码一次性转换成特定平台(Windows、Linux 等)执行的机器码(以可执行文件的形式存在)。 | 编译一次后,脱离了编译器也可以运行,并且运行效率高。 | 可移植性差,不够灵活。 |
解释型语言 | 由专门的解释器,根据需要将部分源代码临时转换成特定平台的机器码。 | 跨平台性好,通过不同的解释器,将相同的源代码解释成不同平台下的机器码。 | 一边执行一边转换,效率很低。 |
Java 和 C# 是一种比较奇葩的存在,它们是半编译半解释型的语言,源代码需要先转换成一种中间文件(字节码文件),然后再将中间文件拿到虚拟机中执行。Java 引领了这种风潮,它的初衷是在跨平台的同时兼顾执行效率;C# 是后来的跟随者,但是 C# 一直止步于 Windows 平台,在其它平台鲜有作为。
1. 标识符
定义:标识符是由程序员指代名称,遵循一定命名规则的代码元素,包括变量、函数、属性、类、模块等等。
规则
- 标识符可以包含中文。(Python3的字符采取了双字节Unicode编码,包含多种亚洲文字编码。)
- 区分大小写,Myname≠myname,是两个不同的标识符。
- 首字符可以是下划线(_)或字母。
- 首字符不能是数字。
- 除首字符外,其他字符必须是字母、下划线和数字。
- 不能作为标识符的:关键字,Python的内置函数
举例
可以作为标识符:身高,_FirstName,TheWorld
不可以作为标识符:1room(数字开头的),Name#(#,@等符号不能构成标识符),class(关键词)。
2. 关键字 keyword
定义:关键字是由语言本身定义好的,有特殊含义的代码元素。
关键字 | 作用 |
---|---|
and | 逻辑与 |
or | 逻辑或 |
not | 逻辑非 |
if | 条件语句,常与else、elif结合使用 |
elif | 条件语句,常与if、else结合使用 |
else | 在条件语句中使用,与if、elif结合使用。也可用于异常和循环语句 |
for | for循环语句 |
while | while循环语句 |
True | 布尔类型的值,表示真,与False相反 |
False | 布尔类型的值,表示假,与True相反 |
continue | 跳出本次循环,断续执行下一次循环 |
break | 中断整个循环语句的执行 |
pass | 空的类、方法或函数的占位符 |
try | 常用于捕捉异常,与except、finally 结合使用 |
except | except 包含捕获异常后的操作代码块,与try、finally 结合使用 |
finally | 出现异常后,始终要执行finally 包含的代码块,与try、except 结合使用。 |
raise | 抛出异常 |
from | 用于导入模块,与import 结合使用 |
import | 用于导入模块,与from结合使用 |
def | 定义函数或方法 |
return | 函数或方法的返回值 |
class | 定义一个类 |
lambda | 匿名函数 |
del | 删除变量或某个序列中的值 |
global | 定义一个全局变量 |
nonlocal | 声明一个非局部变量,用于标识外部作用域的变量 |
in | 判断某个变量是否在序列中 |
is | 判断是否是同一个对象 |
None | 表示什么也没有,它有自己的数据类型- NoneType |
assert | 用于调试 |
as | 创建别名 |
with | 常和open使用,用于读取或写入文件 |
yield | 结束一个函数,返回一个生成器,用于从函数依次返回值 |
在33个关键字之中,只有False,None,True的首字母大写,其他关键字全部小写。
3. 变量Variable
在Python中为一个变量赋值的同时就声明了该变量,该变量的数据类型就是数据所属的类型,该变量还可以接受其他类型的数据。
问题:赋值过于容易,容易产生bug。
变量Variable:标识符的一种,要满足其特定格式,是储存程序所需的数据的“箱子”,每个变量独一无二,通过变量的名字可以找到变量中的数据。
常量Constant:和变量相似,不同在于,变量储存的数据可以被多次修改,而常量一旦保存某个数据之后就不能修改了。
赋值Assignment:把数据放入变量的过程,赋值运算符为=,具体格式为:
name = value
name表示变量名,value表示值,也就是要存储的数据,非数字向数据要打""。
详见:Python变量的定义和使用
4. 语句
语句:是代码的重要组成部分,在Python中,一行代码表示一条语句,在一般情况下语句结束时不加分号。
5. 代码注释
位于一行的开头,或者一条语句的末端,#后面有一个空格,接着是注释的内容。
6. 模块
在Python中一个模块就是一个文件,模块是保存代码的最小单位,在模块中可以声明变量、函数、属性和类等代码元素。
导入模块
一个模块可以访问另一个模块的代码元素,导入语句有如下三种:
整体:import< 模块名 >
局部: from <模块名> import <代码元素>
别名:from <模块名> import <代码元素> as <代码元素别名>
参考资料
Python系统关键字 “超全总结” 及其 “含义”
Python 基础(一):入门必备知识
C语言中文网:Python基础教程
《看漫画学Python》
自己操作,等等。