python初识
第一个python命令
print("hello world")
运行结果:
hello world
print('hello world')
运行结果:
hello world
python中单引号与双引号是基本没有区别的,但是shell中是有区别的
python语法与shell 进行比对:
python if 语法:
age = 23
if age > 23 :
print("you are old")
else :
print("you are young")
运算结果:
you are young
shell的if语法:
age=22
if [ $age -gt 23 ]
then
echo "you are old"
else
echo "you are young"
fi
我们发现python语法极其简洁
变量
首先所有的变量都是存储在内存中的
a = 3 ,这样我们定义了一个变量 ,a 叫变量名 ,3 叫做变量值
这个操作会在内存中开辟出一个空间,这个内存空间用来存储3 ,而a 指向这块内存空间
变量名:是一个标识符(identifier),用来指代一块内存区域。
你的机器代码中,是不会出现变量名的;变量名是给我们程序员操作内存来使用的。
想想在汇编年代,没有变量名,我们操作内存,都是用地址来直接操作的,还要控制区域大小;
a = 3
id(a)
运行结果:
9177952
#9177952 就是内存地址
b = 3
id(b)
运行结果:
9177952
发现两个变量名都只是指向了同一块内存地址,举个形象的例子说3 是一间房子,而a ,b 只是房子的门牌号
变量的命名规范
- (1).只能以字母、数字和下划线命名
- (2).只能以字母和下划线开头,不能以数字开头
- (3).不能使用python解释器的保留字(python解释器的保留字,例如:for in if 等)
a = 3 #中间要有空格
1a = 5 #不能以数字开头
File "<ipython-input-51-06e0ed540183>", line 1
1a = 5 #不能以数字开头
^
SyntaxError: invalid syntax
python运算符
- 算术运算符
- 逻辑运算符
- 比较运算符
- 其他
- 赋值运算
- 成员运算
- 身份运算 (成员与身份运算符详见后面的文章)
算数运算符
基本算数运算
1 + 1
运算结果:
2
1 - 2
运算结果:
-1
2 * 4
运算结果:
8
2 / 4
运算结果:
0.5
2 / 2
运算结果:
1.0
在python3 中 / 除法结果是浮点数,在python2中是取整数的
例如:
>>> 3/4
0
>>> 5/4
1
取整除
如果在python3中,除法想取整数怎么办?
7 // 3
运算结果:
2
取模
5 % 3
2
乘方
2 ** 3
8
比较运算符
- “==” 相等
- “!=” 不相等
- “>” 大于 、“<” 小于 、 “>=” 大于等于 、 “<=” 小于等于
比较运算符的返回值是 bool布尔值,bool布尔值一共就有两个值,一个叫TRue,一个叫FALSE
1 > 5
运行结果:
False
5 > 1
运行结果:
True
1 > 'a'
运行结果:
TypeError: unorderable types: int() > str()
不同类型的值,不能使用比较运算符
逻辑运算符
python中逻辑运算符只有三个,与(and)、或 (or) 、非 (not)
逻辑运算符只能对bool类型或者是可以隐式转化为bool类型的值进行运算
True and True #两边为真,则为真
运行结果:
True
True or False #有一个为真,则为真
运行结果:
True
not False #取反
运行结果:
True
1 < 3 and 2 > 5
运行结果:
False
1 < 3 or 2 > 5
运行结果:
True
短路操作
逻辑运算总是从左至右计算,如果计算过程中,一旦能够决定表达书的最终值,则立即停止并返回
def cal(x,y):
print(x+y)
return x + y
cal(1,3)
运行结果:
4
4
cal(1,3) < cal(2,4) or cal(3,2) < cal (3,1)
运行结果:
4
6
True
从上面的例子可以看出只执行了左边函数,就能确认最终结果,所以右边没有执行