编程语?主要从以下几个?度分类,编译型和解释型、静态语言和动态语言、强类型定义语言和弱类型定义语言。Python是一门解释型的动态语言。
变量标识符的命名规则如下:
应该注意的是,在python中不存在绝对的常量. 约定俗成, 所有字母大写就是常量
例如: PI = 3.141592653
BIRTH_OF_SYLAR = 1990
单行注释: # 被注释的内容
多行注释:‘‘‘ 被注释的内容 ‘‘‘, """这个是多行注释"""
Python中数据类型分为数字类型,bool类型,字符串类型。值得注意的是在int类型不区分long类型,它可以表示任意数字。
同时在Python中,字符串前面加上r或R,表示这个字符串不做任何处理。前缀r,把里面的所有字符当普通字符对待。
a = r"wo\\n" print(a) 结果为: wo\\n
算术运算符,+,-,*,/,%,//,**。
位运算符——& | ~ ^ << >>
a = 0011 1100 b = 0000 1101 ----------------- a&b = 0000 1100 a|b = 0011 1101 a^b = 0011 0001 ~a = 1100 0011
常用方式:乘除2的倍数,32 // 4相当于 32 >> 2 ,在Python中效率差不多,因为解释器会优化。
取反:0变1,1变0
反码:正数的反码是其本身,对于负数其符号位不变其它各位取反(0变1,1变0)。
假设要对正数9按位取反——> (~9),计算步骤如下,
原码为 0000 1001,
反码为 0000 1001,
补码为 0000 1001,
对其取反 1111 0110(符号位一起进行取反,这不是反码更加不是最终结果,只是补码的取反仅此而已)
我们还需要把他转换成原码,因为是负数所以进行负数补码到原码的逆运算
先减1得反码: 1111 0101
取反得原码:1111 1010,(反码和原码是一个相对的概念,对反码取反就是原码。取反过程符号位是不变的哦)
前面4个1是符号位,1是负数,既得十进制:-10
不知道说的明不明白,这里步骤就是:
1. 先对正数求补码
2. 然后对补码取反,包括符号位
3. 最后进行一个补码求原码的过程,一定要搞清概念啊。
下面我们再反推计算 (~ -10)
-10的原码:1111 1010
-10的反码:1111 0101 (符号位不变)
-10的补码:1111 0110 (符号位不变,末位+1)
补码取反:0000 1001 (符号位一起取反)
这是一个正数,那么我们对其求原码就可得到最终结果?
因为正数的补码,反码,原码都是一样的 那我们的最终结果是 0000 1001 ,十进制是 9,这与我们前面推算出的结果吻合。
正数的反码与原码相同;负数的反码符号位不变其余按位取反,正数的补码与原码相同;负数的补码符号位不变其余按位取反后+1 。
所有正整数的按位取反是其本身+1的负数
所有负整数的按位取反是其本身+1的绝对值
零的按位取反是 -1
负数表示法 :数字电路的CPU中的运算器实现了加法器,但是没有减法器,减法是转换成加法 ,负数在计算机中使用补码存储,-1的补码为1111 1111 。5-1 => 5+(-1)直觉上是0b101-0b1,其实计算机中是0b101+0b11111111,溢出位舍弃。
~12 结果为-13 10^9 结果为: 3 10^-9 结果为: -3
== != > < >= <=
逻辑运算符返回一个bool值。
4>3>2 结果为: True 4>3>5 结果为: False
and or not
要注意的是逻辑运算符这两种情况:
and 如果第一个表达式为False,后面就没有必要计算了,这个逻辑表达式一定是False
or 如果第一个表达式True,后面没有必要计算了,这个逻辑表达式一定是True
+= -= *= /= %=
算数运算符 > 位运算符> 身份运算符(is is not) > 成员运算符(in,not in) > 逻辑运算符 。
表达式由数字、符号、括号、变量等的组合。Python中,赋值即定义,如果一个变量已经定义,赋值相当于重新定义
在Python中,变量无须事先声明,也不需要指定类型 ,编程中一般无须关心变量的存亡,也不用关心内存的管理
python使用引用计数记录所有对象的引用数
原文:https://www.cnblogs.com/xpc51/p/11497425.html