变量:可以仅仅当作是一个“名字”
赋值符:=
命名要有意义,不能仅仅是A,B,X这类的。这是优质代码的必要条件。
变量命名规则:只能使用数字,字母,下划线。首字母不能是数字。
系统的保留关键字,不能用在变量名中。方法名如果被设置为变量名也会导致方法不可用。
变量名本身无类型,可以被赋值任何的数据类型。
int,str,tuple是值类型(不可变类型),list,set,dict是引用类型(引用类型)
id():显示变量在内存中的地址。
值类型在申请内存空间之后,便不再改变。若字符串发生改变,只能重新申请新的地址空间。
不可变性本质上讲其实是地址的不变性,尽管元组里的列表发生了改变。但从上面的例子知道列表的地址并没有发生改变,所以元组内没有任何元素地址发生了改变。元组的不可变性依旧成立。
运算符:
算术运算符:四则运算:+,-,*,/,取整://,取余:%,次方:**
赋值运算符:赋值符:=,算术赋值符(先做运算再赋值):+=,*=,/=,%=,**=,//=
关系(比较)运算符:相等:==,不等:!=,大于:>,小于:<,大于等于:>=,小于等于:<=
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都返回和结果相同的元素。
成员运算符:是否在组内:in,是否不在组内:not in
返回值为bool类型。
str,list,tuple,set,dict都可以使用成员运算符。
身份运算符:是否是:is,是否不是:is not
身份运算符比较的是两个对象在内存中的地址,关系运算符(==)比较的是两个对象的数值。
对象的三特征:值,身份(id),类型(type),Python中一切皆为对象。
其他判断类型的方法:isinstance(变量,类型)
type不能判断对象的子类属于哪个类型,而isinstance可以。
位运算符:按位与:&,按位或:|,按位异或:^,按位取反:~,左移动:<<,右移动:>>
用法:把数字当作二进制数进行运算。
按位或,按位异或同理。
按位取反原理:计算机中是用补码存储的,详细计算方法请自行百度。