02变量、运算符、位运算、分支结构

一.变量

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=移动多少位
表示的是m
2n
右移:
数字《 N》---指定的数字的补码向右移动n位,计算数字除以以
2
n
m=数字
n=移动多少位
表示的是m/2
*n(取整数)
print(2<<1)
print(2>>1)
print(-9>>2) #负数往小的取。除不尽,再减一。这个除不尽 所以不是负二点几 是负三。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。