4、变量与运算符

变量:可以仅仅当作是一个“名字”

赋值变量A

赋值符:=

命名要有意义,不能仅仅是A,B,X这类的。这是优质代码的必要条件。

变量命名规则:只能使用数字,字母,下划线。首字母不能是数字。

系统的保留关键字,不能用在变量名中。方法名如果被设置为变量名也会导致方法不可用。

变量名本身无类型,可以被赋值任何的数据类型。

值类型的传值,不会因原来的变量变化而变化
引用类型的传值,两个变量都会指向同一个地址空间

int,str,tuple是值类型(不可变类型),list,set,dict是引用类型(引用类型)

字符串不可改变,一旦设置便分配一个固定的地址

id():显示变量在内存中的地址。

值类型在申请内存空间之后,便不再改变。若字符串发生改变,只能重新申请新的地址空间。

值类型的不可改变性
引用类型不会因变化而改变内存地址
list的append()函数
值类型的不可变性

        不可变性本质上讲其实是地址的不变性,尽管元组里的列表发生了改变。但从上面的例子知道列表的地址并没有发生改变,所以元组内没有任何元素地址发生了改变。元组的不可变性依旧成立。


运算符:

算术运算符:四则运算:+,-,*,/,取整://,取余:%,次方:**

赋值运算符:赋值符:=,算术赋值符(先做运算再赋值):+=,*=,/=,%=,**=,//=

python不存在自增运算符

关系(比较)运算符:相等:==,不等:!=,大于:>,小于:<,大于等于:>=,小于等于:<=

同级运算符运算顺序:从右往左

str类型运用关系运算符的规则:从左至右一位一位的比较ASCII码。(list,set类型同理)

逻辑运算符:且:and,与:or,非:not

逻辑运算符可叠加使用

逻辑运算符一般使用在bool类型上,但对于其他类型其实也可以使用。只不过在使用前系统把其他类型默认转换成了bool类型。

int float类型:0被视为False,非0为True。

str类型:空字符串被视为False,其他字符串为True(list,tuple同理)。

逻辑运算符的特殊用法

        当结果为A,两个元素X,Y都表示为A时,and 返回后一个元素,or 返回前一个元素。

(or和and这里是短路逻辑)

        当结果为A,两个元素X,Y不都表示为A时,and和or都返回和结果相同的元素。

非返回与元素X不相同的bool值

成员运算符:是否在组内:in,是否不在组内:not in

返回值为bool类型。

成员运算符的使用方法

str,list,tuple,set,dict都可以使用成员运算符。

字典的特殊用法( 字典的成员关系在key上 )

身份运算符:是否是:is,是否不是:is not

身份运算符比较的是两个对象在内存中的地址,关系运算符(==)比较的是两个对象的数值。

身份运算符的深入理解
集合无序,==为True。id 不同,is为False
元组有序,==为False。id同样不同,is为False

对象的三特征:值,身份(id),类型(type),Python中一切皆为对象。

判断数据类型

其他判断类型的方法:isinstance(变量,类型)

isinstance的特殊用法(判断变量类型是否在类型元组内)

type不能判断对象的子类属于哪个类型,而isinstance可以。

位运算符:按位与:&,按位或:|,按位异或:^,按位取反:~,左移动:<<,右移动:>>

用法:把数字当作二进制数进行运算。

a的二进制10,b的二进制11,按位与后为10。

按位或,按位异或同理。

按位取反原理:计算机中是用补码存储的,详细计算方法请自行百度。

左移和右移的基本用法

你可能感兴趣的:(4、变量与运算符)