一.变量
1变量是什么?
变量申请空间,保存数据
age=50
print("我的年纪是多少:",age)
if age<18:
print("未成年")
2.声明变量的语法:
变量名=值
变量名是程序员自己命名的:
要求:
1.必须是标识符
2.不能是关键字
规范:
见名知意,命名用英文,满足PEP8命名的规范,多个单词用下划线隔开,不要用系统的类名,函数名,库名等变量命名。
=表示赋值:右边的值赋给坐标。
值:任何有结果的表达式,例如:数据,已经声明过的变量,运算表达式等。。。
注意声明过的变量使用的是它的值
(1)同时声明多个变量赋相同的值
变量名1=变量2=变量3=4
(2)同时声明多个变量赋不同的值
变量01,变量02,变量03=值1,值2,值3
3python声明变量的原理
java 是根据值得类型的范围,值得范围来找内存,静态的空间不变。 python 是根据值得类型的大小来找适合的内存空间,动态变化的python 先开辟空间存储数据(存储的这个数据需要多大的饿内存就开辟多少内存空间)
然后再将变量和这个数据对应的内存的空间关联在一起
4.变量的三要素:
类型 type
值 直接使用
内存地址使用id( )函数( 和他关联的数据,在内存中的地址也是变量中真正存的数据)
a=10
print(a,type(a),id(a))
a=30
print(a,type(a),id(a))
# 10 <class 'int'> 8791401919008
# 30 <class 'int'> 8791401919648
python中用一个变量给另一个变量赋值的时候,是将原来的地址赋值给,另一个,赋值完后,数据只有一个,地址也是一个,标签是两个.
b=a
print(id(a),id(b))
二.运算符
python,支持的位运算:数学运算符,比较运算符,逻辑运算符,赋值运算符,
计算机中的除法是/
%取余数,也叫作求模,
print(5%2)
上面的余数是1
2.余数在程序中的应用:
1.判断整数的奇数偶数、对2取余余数是零。奇数余数是1,偶数是0
2.是否整除--判断余数是否为0.
3.取低位数:例如取一个数个位数是什么:对10取余就知道个位数是多少了
a=148
想要知道个位数,对10取余
print(148%10)
想知道十位对一百取余:
print(148%100)
**幂的运算,
print(16**(1/2))
这个表示16开平方的到的数是多少。
3.比较运算符>,<==,!=,>=,<=
所有的比较的运算符的结果呢都是布尔值。
判断两个值是否相等 用== 不相等 用 !=
print(10==10),True
print(10!=10),False
4.逻辑运算符
and 与 or 或 not 非
and 两个是真 只要有一个是假就是假
or 有真就是真,两个都是假就是假
not 真变成假 假变成真
注意:
短路操作:针对与运算和或运算
and的短路操作:条件1 and 条件 2 就是两个条件 前面的那个条件如果是False,那么后面的不会执行,结果是False
or 的短路操作:如果OR前面的是True,那么后面的条件不会被执行
def func1(number):
print("函数被执行了",number )
False and func1(1)#这个不会被执行
True and func1(2)#这个会执行
False or func1(1)#这个会被执行
True or func1(2)#这个不会执行
5赋值运算符:
=,+=,-=,=,/=,%=,//=,*=
所有的赋值运算符的左边必须是变量,组合的赋值运算符左边除了是变量,这个变量还必须是声明过的。
(1)
变量=数据,就是将左边的值赋给右边的变量。
(2)组合的赋值运算符:
变量+= 值-------变量加值,变量=变量+值
aa+=10NameError: name 'aa' is not defined
(6)运算符的顺序:
数学运算>比较运算符>逻辑运算符>赋值运算符
数学运算的优先级和数学一样:** > * > / > // > % > + > -,如果有括号先算括号里的。
三.位运算
所有的位运算都是针对数字的补码进行操作的:特点就是快速。
位运算:&(与),|(或),~(取反),^(异或),<<(左移),>>(右移)
(1)(&)与运算:运算的规则:补码的每一位上的数都是1结果就是1,有0就是0
1110&0111 = 0110
a=3&2
print(3&2)
3的补码:00000011
2的补码:00000010
00000011 &00000010 = 00000010===2
b=-7&3
-7 的补码:10000111(原)----11111001(补码)
3的补码:00000011
-7&3 =00000001==1
应用:高效的判断数字的基偶性
******让数字和1进行按位与运算,判断结果是0(偶数)还是1(奇数)
判断奇偶数:
print(7&1,9&1,5&1)
print(2&1,4&1,6&1,8&1)
(2)或 | 运算:运算规则:每一位上的数如果都是你0就是0,有1就是1
1110|0111 = 1111
print(3|2)
-7|3
11111001|00000001
(3)取反~
将每一位的0变成1,1变成0.
~1101-0010
(4)异或 ^:每一位上的数相同是零 不同为1
1101^0010 ==01001
(5)左移,右移 << ,>>
数字《 N》---指定的数字的补码向左移动N位,计算数字乘以2n
m=数字
n=移动多少位
表示的是m2n
右移:
数字《 N》---指定的数字的补码向右移动n位,计算数字除以以2n
m=数字
n=移动多少位
表示的是m/2*n(取整数)
print(2<<1)
print(2>>1)
print(-9>>2) #负数往小的取。除不尽,再减一。这个除不尽 所以不是负二点几 是负三。