
在Linux/Unix系统中,你可以在脚本顶部添加以下命令让Python脚本可以像SHELL脚本一样可直接执行(前提是例如你在 /usr/local/python3安装好了python3,并将/usr/local/python3/bin 添加到您的 Linux/Unix 操作系统的环境变量中,python -V有显示):
#! /usr/bin/env python3
不论py脚本带不带上行代码,都能用python3 ./文件名 执行,但想像shell脚本一样 ./文件名 就能执行,得有上行。

linux的设置环境变量命令:
PATH=$PATH:/usr/local/python3/bin/python3
Python解释器
要运行.py代码,就需要Python解释器去执行.py文件。由于整个Python语言从规范到解释器都是开源的,所以理论上,只要水平够高,任何人都可以编写Python解释器来执行Python代码(当然难度很大)。事实上,确实存在多种Python解释器。
-
CPython:这个解释器是用C语言开发的
-
IPython是基于CPython之上的一个在交互式方面得到增强的解释器
-
Jython 是专为 Java 平台设计的 Python 解释器,它把 Python 代码编译成 Java 字节码执行。
-
PyPy 是 Python 语言(2.7.13和3.5.3)的一种快速、兼容的替代实现,以速度快著称。
运算符
算术运算符
+ - * / // % **
# 其中 / 总是返回一个浮点数,如果只想得到整数的结果,丢弃可能的分数部分,可以使用运算符 //
print(5.6 / 2) # 2.8
print(5.6 // 2) # 整除 2.0
print(2 ** 5) # 2的5次幂,32
print(4 / 2) # 2.0
比较运算符
== != > < >= <=
赋值运算符
= += -= /= *= %= **= //=
:= # 海象运算符,可在表达式内部为变量赋值。Python3.8 版本新增运算符,为兼容,不考虑
位运算符
按位运算符是把数字看作二进制来进行计算的。
& 按位与运算符 | 按位或运算符 ^ 按位异或运算符
~ 按位取反运算符 << 左移位运算符 >> 右移位运算符
逻辑运算符
and 短路与 如果 x 为 False,x and y 返回 x 的值,否则返回 y 的计算值。
or 短路或 如果 x 是 True, x or y 返回 x 的值,否则它返回 y 的计算值
not 布尔非或曰逻辑非
成员运算符
返回True / False
in not in
身份运算符
is 判断两个标识符(变量)是不是引用自同一个内存中的对象
is not
x is y, 在结果上等价于 id(x) == id(y) ,附:id()函数用于获取对象内存地址。
num = 10
print(id(num)) # 1282721016400
总结
目前php、js、java的运算符的&&与||都是短路逻辑运算符,!是逻辑非运算符,只有python是and or not 。
杂
Number、 String、 tuple是不允许改变的,这就意味着如果改变变量的值,将重新分配内存空间。您可以使用del语句删除一些数字对象的引用。
del var1, var2
php中有个<=>运算符,php独有,但是在布尔值等价于0和1的语言如python中,x <=> y等价于 (x > y) - (x < y)。如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1。
math库的函数
abs() max() min() round(x, [n=四舍五入到整数位]) # 如有n,则代表舍入到小数点后的位数。
# 以上python自带函数,以下math库函数,不用记,反正IDE会画波浪线,就知道是哪家的了。
math.ceil() math.floor()
math.exp(x) # e的x次幂(ex)
math.log(真数[, 底数=e]) # 返回对数,如math.log(math.e)返回1.0,math.log(100,10)返回2.0
math.sqrt(x) # 返回数字x的平方根。
print(round(2.5456, 2)) # 2.55
print(round(2.5)) # 值得注意的是他把2.5判给了2
random库
random.choice(sequence) # 从序列的元素中随机挑选一个元素,sequence你懂的
random.random() # [0,1)范围内,如0.7231352262134775
random.seed([某个数]); # 改变随机数生成器的种子seed,相同的seed产生相同的随机数,若不设置,Python会帮你随机选择seed
random.shuffle(list 或 dictory) # 注意,该函数是void型,即没有return,
random.uniform(x, y) # 等价于random.random() * (y - x) + x,生成[x,y]内实数
random.choice((1, 2))是对的,random.choice(1, 2)是错的,因为(1, 2)是sequence,1,2是参数
print(random.shuffle([1, 2])) # 因为没有return,所以你会得到None,正确用法如下:
x = {i : i ** 2 for i in range(3)}
print(x) # {0: 0, 1: 1, 2: 4}
random.shuffle(x)
print(x) # {0: 4, 1: 1, 2: 0} 3 字典本身就是没有顺序可谈的,所以它祸乱的是键对应的值,键不霍乱。
了解

共有 0 条评论