Python学习笔记一:编程基础

1、解释器

当我们编写Python代码时,我们得到的是一个包含Python代码的以.py为扩展名的文本文件。要运行代码,就需要Python解释器去执行.py文件。
由于整个Python语言从规范到解释器都是开源的,所以理论上,只要水平够高,任何人都可以编写Python解释器来执行Python代码(当然难度很大)。事实上,确实存在多种Python解释器。

1)CPython

当我们从Python官方网站下载并安装好Python 3.x后,我们就直接获得了一个官方版本的解释器:CPython。这个解释器是用C语言开发的,所以叫CPython。在命令行下运行python就是启动CPython解释器。
CPython是使用最广的Python解释器。教程的所有代码也都在CPython下执行。

2)IPython

IPython是基于CPython之上的一个交互式解释器,也就是说,IPython只是在交互方式上有所增强,但是执行Python代码的功能和CPython是完全一样的。好比很多国产浏览器虽然外观不同,但内核其实都是调用了IE。
CPython用>>>作为提示符,而IPython用In [序号]:作为提示符。

3)PyPy

PyPy是另一个Python解释器,它的目标是执行速度。PyPy采用JIT技术,对Python代码进行动态编译(注意不是解释),所以可以显著提高Python代码的执行速度。
绝大部分Python代码都可以在PyPy下运行,但是PyPy和CPython有一些是不同的,这就导致相同的Python代码在两种解释器下执行可能会有不同的结果。如果你的代码要放到PyPy下执行,就需要了解PyPy和CPython的不同点。

4)Jython

Jython是运行在Java平台上的Python解释器,可以直接把Python代码编译成Java字节码执行。

5)IronPython

IronPython和Jython类似,只不过IronPython是运行在微软.Net平台上的Python解释器,可以直接把Python代码编译成.Net的字节码。

6)小结

Python的解释器很多,但使用最广泛的还是CPython。如果要和Java或.Net平台交互,最好的办法不是用Jython或IronPython,而是通过网络调用来交互,确保各程序之间的独立性。

2、关键字

关键字即保留字,我们不能把它们用作任何标识符名称。Python 的标准库提供了一个 keyword 模块,可以输出当前版本的所有关键字:

条件 循环 内置函数 类、模块和函数 错误处理
or in del def try
is as pass class raise
if for print from with
else while global except
elif break return finally
not continue import assert
and lambda
True nonlocal
False yield
None

3、运算符

1)算术运算符

运算符 描述
+ 加:两个对象相加
- 减:得到负数或一个数减去另一个数
* 乘:两个数相乘或返回一个被重复若干次的字符串
/ 除:x除以y
** 幂:返回x的y次幂
% 取模:返回除法的余数
// 取整除:返回商的整数部分

2)比较运算符

运算符 描述
== 等于:比较对象是否相等
!= 不等于:比较两个对象是否不相等
> 大于:返回x是否大于y(返回True或False)
> 小于:返回x是否小于y(返回True或False)
>= 大于等于:返回x是否大于等于y
<= 小于等于:返回x是否小于等于y

3)赋值运算符

运算符 描述
= 简单的赋值运算符
+= 加法赋值运算符
-= 减法赋值运算符
*= 乘法赋值运算符
/= 除法赋值运算符
%= 取模赋值运算符
**= 幂赋值运算符
//= 取整除赋值运算符

4)逻辑运算符

运算符 描述
and 布尔“与”:如果x为Flase,x and y就返回Flase;否则返回y的计算值;
or 布尔“或”:如果x是非0,就返回x的值;否则返回y的计算值;
not 布尔“非”:如果x为True,就返回Flase;如果x为Flase,就返回Ture

5)位运算符

运算符 描述
& 按位与运算符:若参与运算的两个值的两个相应位都为1,则该位的结果为1,否则为0;
| 按位或运算符:只要对应的两个二进制位有一个为1,结果位就为1;
^ 按位异或运算符:当两个对应的二进制位相异时,结果为1
~ 按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1;
<< 左移运算符:运算数的各个二进制位全部左移若干位,由<<右边的数指定移动的位数,高位丢弃,低位补0;
>> 右移动运算符:把>>左边运算数的二进制位全部右移若干位,>>右边的运算数指定移动的位数。低位丢弃,高位补0

6)成员运算符

运算符 描述
in 如果在指定的序列中找到值,就返回Ture;否则返回Flase
not in 如果在指定的序列中没有找到值,就返回True;否则返回Flase

7)身份运算符

运算符 描述
is is判断两个标识符是否引用自一个对象
is not is not用于判断两个标识符是否引用自不同对象

8)运算符优先级

运算符 描述
** 指数(最高优先级)
~ + - 按位翻转,一元加号和减号(最后两个的方法名为 +@ 和 -@)
    / % //
乘、除、取模和取整除
    -
加法、减法
>> << 右移、左移运算符
& 位 And
^| 位运算符
<= <> >= 比较运算符

4、ASCII码

这里写图片描述

猜你喜欢

转载自blog.csdn.net/viatorsun/article/details/80156054