1. 变量
变量是计算机内存中的一块区域,变量可以存储规定范围内的值,而且值可以改变。
Python下的变量是对一个数据的引用,给变量重新赋值,相当于把标签指向内存中的另外一块区域,而C语言是改变对应区域的内容。
1.1 命名
- 变量名由字母,数字,下划线组成。
- 变量不能以数字开头。
- 变量不可以使用关键字。
1.2 赋值
- 是变量的声明和定义的过程。
id()内置函数,用于查看变量在内存中的地址。
type()内置函数,用于查看变量的类型。
使用字符串给变量赋值时需要加引号。除数字外没引号的,通常会当作未定义的变量,导致输出报错。
2. 运算符与表达式
2.1 分类
- 赋值运算符
- 算术运算符
- 关系运算符
- 逻辑运算符
- 表达式
表达式是将不同的数据(包括变量,函数)用运算符号按照一定规则连接起来的一种式子。
2.1.1 赋值运算符
符号 | 示例 | 备注 |
---|---|---|
= | x = 9, y = “Good” | 为变量x, y赋值 |
+= | x += 1 | x = x + 1 |
-= | x-= 2 | x= x - 2 |
*= | x *= 3 | x= x * 3 |
%= | x % = 4 | x= x % 4 |
/= | x /= 5 | x = x / 5 |
2.1.2 算术运算符
符号 | 备注 |
---|---|
+ | |
- | |
* | |
/ | |
// | 执行地板除。操作数为整数,结果向下取整,操作数为浮点数,结果小数部分为0 |
% | 取余 |
** | 幂运算 |
当除数和被除数都是整数的时候,返回结果都是整数。 当除数和被除数至少有一个是浮点数的时候,返回结果都是浮点数。但是, // 的结果的小数部分永远是 0.
X / Y
对于Python2.X来说,如果两个操作数都是整数,那么结果将向下取整(这个和C里面的不同,C里面是向0取整),也就是说,如果结果本来是-2.5,那么向下取整为-3,如果结果本来是2.5,那么向下取整为2;如果两个操作数有浮点数,那么就是浮点数除法,结果就是浮点数除法;对于Python3.X来说,不管操作数有没有浮点数,都是浮点数除法。
5 / -2
#2.X 商:-3 余数:-1
#3.X 商:-2.5 余数:-1
#C 商:-2 余数:1
5.0 / -2
#2.X 商:-2.5 余数:-1.0
#3.X 商:-2.5 余数:-1.0
#C 商:-2.5 余数:C中的%取余运算符不支持浮点数类型
X // Y
// 对于Python2.X和Python3.X来说,效果是一样的,无论操作数都是整数,还是包括浮点数,//都会向下取整,当然对于有浮点数的计算,结果仍会以浮点数形式返回,比如-5.0 // 2,结果是-3.0:
-5 // 2
#2.X 商:-3 余数:1
#3.X 商:-3 余数:1
#C 商:-2 余数:-1
-5.0 // 2
#2.X 商:-3.0 余数:1.0
#3.X 商:-3.0 余数:1.0
#C 商:-2.5 余数:C的取余运算不支持浮点数
在Python中,余数的符号和除数相同(而在C中,余数的符号和被除数相同)
2.1.3 关系运算符
符号 | 备注 |
---|---|
> | |
< | |
>= | |
<= | |
== | |
!= |
2.1.4 逻辑运算符
符号 | 备注 |
---|---|
and | 逻辑与 |
or | 逻辑或 |
not | 逻辑非 |
2.2 运算符优先级
运算符 | 备注 |
---|---|
lambda | Lambda表达式 |
or | 布尔“或” |
and | 布尔“与” |
not x | 布尔“非 ” |
in,not in | 成员测试 |
is,is not | 同一性测试 |
<,<=,>,>=,!=,== | 比较 |
| | 按位或 |
^ | 按位异或 |
& | 按位与 |
<<,>> | 移位 |
+,- | 加法与减法 |
*,/,% | 乘法、除法与取余 |
+x,-x | 负号 |
~x | 按位翻转 |
** | 指数 |
x.attribute | 属性参考 |
x[index] | 下标 |
x[index:index] | 寻址段 |
f(arguments…) | 函数调用 |
(experession,…) | 绑定或元组显示 |
[expression,…] | 列表显示 |
{key:datum,…} | 字典显示 |
‘expression,…’ | 字符串转换 |
从上到下,同一行内从左到右,优先级越来越高。
2.3 input 与 raw_input 函数
2.3.1 对比
Python2.x 中 input() 相等于 eval(raw_input(prompt)) ,用来获取控制台的输入。它希望能够读取一个合法的 python 表达式,即你输入字符串的时候必须使用引号将它括起来,否则它会引发一个 SyntaxError。另外在对待纯数字输入时具有自己的特性,它返回所输入的数字的类型( int, float )。
Python3.x 中 input() 函数接受一个标准输入数据,返回为 string 类型。
raw_input() 将所有输入作为字符串看待,返回字符串类型。在python3中已去掉raw_input函数。
2.3.2 练习
python2环境下输入两个数字,进行四则运算。
vim /tmp/1.py
#! /usr/bin/python
# -*- coding: utf-8 -*-
a = input("请输入第一个数字:")
b = input("请输入第二个数字:")
print "%s + %s = %s" % (a,b,a+b)
print "%s - %s = %s" % (a,b,a-b)
print "%s * %s = %s" % (a,b,a*b)
print "%s / %s = %s" % (a,b,a/b)
python /tmp/1.py
结果如图: