1.#的作用:
注释,标注的文本。
2.python支持的数字类型:
整数型:不区分long和int,无上限。布尔型只有两个值(True和False),注意首字母大写。
浮点数型:1.2、3.1415、-0.12、1.46e9等价于1.46*10^9。
复数型:1+2j
3.python中的字符串:
▪ 使用‘ ’‘单双引号引用的字符的序列,单引号于双引号的作用是一样的。
▪ ’‘’和“”“单双三引号,可以跨行、可以在其中自由的使用单双引号。
▪ 在字符串前面加上r或者R,表示该字符串不作特殊处理。
4.转义序列:
\\、\t(Tab)、\r(回车)、\n(换行)、\'(表示单引号本身的意义,单引号本身是字符串的界定符,前面加上反斜杠就表示了自身的意义)、\"(同单引号)
print('ab\'c')#在这里如果不加入反斜杠的话,会报语法错误 print('ab"c')#在这条print()语句中,因为有两个单引号界定了字符串,因此里面的双引号可以不使用反斜杠,当然使用也是正确的。 print(r'ab\"c\t',100,r'\n')#如果在字符串前面加上r或R的话,转义符是失效的,该条语句输出的是 ab\"c\t 100 \n
5.缩进:
▪ 未使用C等语言的花括号,而是采用缩进的方式表示层次关系
▪ 约定使用4个空格缩进
7.续行:
▪ 在行尾使用\
▪ 如果使用各种括号,认为括号内是一个整体 ,内部跨行不用\
8.标识符:
只能用字母、下划线和数字,且不能以数字开头,不能是python的关键字,python是区分大小写的。固定值的标识符是常量,可以改变值得标识符是变量。
9.关于语言类型:
静态编译语言:声明变量类型且不能再改变,编译时检查。
动态编译语言:不事先声明变量类型,随时可更改该变量的类型,编译时无法判断。
强类型语言:不同类型之间操作,必须先强制类型转换为同一类型。print('a'+1)
弱类型语言:不同类型间可以操作,自动隐式转换。JavaScript中console.log(1+'a')
python是动态语言、强类型语言。
print('a' + 1) #如果这样写的话,会提示报错,因为python并不认为a和1是同一种数据类型,a是字符串,而1是数字,无法相加 print('a' + str(1)) #将1声明成字符串型,这样的话该语句输出a1,无报错。
10.运算符:
算数运算符:+ - * / % **(乘方),自然除/结果是浮点数,整除//
位运算符:& | ~ ^(异或) << >>,常用方式:乘除2的倍数,32//4相当于32>>2
如图所示,32整除4是8,那么将32和8分别转换成二进制来看,其实就是100000往右移动了两位变成了1000。
原码:5 -- 0b101,1 -- 0b1,-1 -- -0b1,负数的原码是在其二进制的最高位用1表示,比如-1的二进制原码是1000 0001,第一个1表示的是负号-
反码:正数的反码与原码相同;负数的反码符号位不变其余按位取反
补码:正数的补码与原码相同;负数的补码符号位不变其余按位取反后+1。
▪ 原码是给人看的,放在计算机中都会转变成补码方便计算机识别。
负数表示法:
▪ 数字电路中的CPU的运算器实现了加法器,但是没有减法器,减法是转换成加法
▪ 负数在计算机中使用补码存储,-1的补码为1111 1111
▪ 5-1 => 5+(-1)直觉上是0b101-0b1,其实计算机中是0b101+0b11111111,溢出位舍弃。0000 0101 + 1111 1111第一个二进制的最后一个1与1111 1111想加得到1 0000 0000,溢出位1舍弃得到0000 0000,然后0000 0101变成0000 0100继续与0000 0000相加得到0000 0100,换算成十进制即为4。
▪ ~12,正数12取反是什么?12转换成二进制是0000 1100,取反为1111 0011,而这个二进制是一个负数的补码形式,对其进行补码(补码的补码就是原码),负数的补码符 号位不变其余按位取反后+1,变成1000 1101,换成十进制就是-13。
▪ 取反运算遵循这样的一个规律:~n= -(n+1)
已知一个数的补码,求原码的操作分两种情况:
▪ 如果补码的符号位为“0”,表示是一个正数,其原码就是补码。
▪ 如果补码的符号位为“1”,表示是一个负数,那么求给定的这个补码的补码就是要求的原码。
比较运算符:== != > < >= <= 不同类型之间可以等于或不等,但是不能比较大小。链式比较操作符:4>3>2,4>number>=1
▪ 这里要注意字符串的比较,字符串的比较都是逐个进行对比的,如上图所示,a的值为abc,那么abc中的首字母a与'a'想等,然后对比b,'a'中后续没有,因此abc>'a', 但是abc中的a是小于'b'的,因此无需进行后续的比较了,abc<‘b’。
逻辑运算符:与或非--and or not
短路运算符:与逻辑中,第一个表达式如果是false,该逻辑表达式一定是false。
或逻辑中,第一个表达式如果是true,该逻辑表达式一定是true。
赋值运算符:= += -= *= /= %=等等
成员运算符:in 、not in
身份运算符:is 、 not is
11.运算符的优先级:
算数运算符>位运算符>身份运算符>成员运算符>逻辑运算符,多使用括号方便理解更加直观。
12.表达式:
由数字、符号、括号、变量等的组合。