Q:Python是什么?
A:Python就是一门跟Java,C,C#…并列存在的一种解释型语言(解释型~边翻译成机器码边运行;编译型~预先全部编译成机器码以后再运行)
Q:Python能干啥?
A:爬虫-搜索引擎,数据分析,web开发;机器学习;胶水语言-连接不同的编程语言在一起合作运行;
Q:Python怎么学?
A:从基础语法开始学,其实所有的语言都是从语法开始,了解基础语法后,辅以动手编程运行加以巩固;按照以往学习C,C#,Java…的经验,所谓的语法知识无非就是:’’ 变量,数据类型(数字,字符串,布尔…),数据结构(数组,列表,链表,集合,序列…),运算(算数运算,逻辑运算,优先级…),条件,循环,异常处理,文件处理(IO操作),不同语言的独特概念。 ‘’
#语法部分较为精简,适用于有一定编程基础的同志,语法部分旨在有一定基础人员复习使用,并不特别适合纯小白
单行注释: # 单行注释
多行注释: ‘’’ 多行注释 多行注释 多行注释 ‘’’
‘’‘ 多行注释 多行注释 多行注释 ’‘’
算数 运算 | 案例 |
---|---|
加减乘 | +,-,* |
除 | 4/3=1.3333333… ; 4//3=1 |
取余 | 4%3=1 ; 5%3=2 |
幂 | 3**4=333*3=81 |
逻辑运算 | 规则 |
---|---|
与 | True and True=True;True and False=False; |
或 | True or False=True;False or False=False; |
非 | not True=False;not True =False; |
1,若采用8进制位,7=0000 0111 ; -3=1000 0011 ;
2,二进制运算本质是对补码进行操作;得到的也是补码;
3,负数补码是取反+1(返回依也是符号位不变其余取反+1);正数补码是原码 ; 补充:补码=符号位不变,原码取反加一(机组的基础知识,忘了回去看看)
位运算 | 案例 | 备注 |
---|---|---|
取反 | ‘ ~7=1 000(补码)=1 111(取反)+1=1 1000(原码)=-8 ’ | |
与 | ‘ 7&-3=0111&1011 =0111=5 ’ | |
按位或 | ‘ 7|-3=0111&1011=1 111(补码)=1 001=-1 ’ | |
按位异或 | ‘ 73=01110011=0100=4 ‘ #同0异1 | |
左移 | ‘ 7<<2=0000 0111<<2=0001 1100=28 ’ #7*2^2=28 | |
右移 | ‘ 7>>2=0000 0111>>2=0000 0001=1’ #7//(2^2)=1 | |
三元运算符 | x, y=4, 5 ;small= x if x
| |
逻辑运算 | 规则 | 备注| |
---|---|---|
存在 | ‘ A ’ in [ ‘A’ , ‘B’, ‘C’ ] | |
不存在 | True or False=True;False or False=False; | |
是 | “hello” is “ hello ” = True | #比较的是内存地址是否相同 |
不是 | “hello” is not “ Hello” = True | ==,!=比较的是 值大小 |
#比较的两个变量,指向的都是地址不可变的类型(str等),那么is,is not 和 ==,!= 是完全等价的。对比的两个变量,指向的是地址可变的类型(list,dict,tuple等),则两者是有区别的。
优先级 | 运算 | 案例 |
---|---|---|
1 | 一元>二元 | 3 ** -2等价于3 ** (-2) |
2 | 算数>后移位>位运算 | 1 << 3 + 2 & 7等价于 (1 << (3 + 2)) & 7 |
3 | 逻辑运算最后 | 3 < 4 and 4 < 5等价于(3 < 4) and (4 < 5) |
#大小写敏感,定义时候不用管类型,但是必须定义时初始化。初始化的时候不管类型,只有赋值什么类型就是什么类型;
类型 | 名称 | 案例 |
---|---|---|
int | 整型 | -876, 10 |
float | 浮点型于 | 3.149, 11.11 |
bool | 布尔型 | True, False #空和0=False |
#type(1)=
,isinstance(‘5.2’,str)=True;区别:后者考虑继承,前者不考虑
#decimal.getcontext().prec=4 #使Decimal(1)/Decimal(3)=0.3333结果保留4位小数
#bool(X). X空或者0,0.0 为False
print(*objects,sep=' ',end='\n',file=sys.stdout,flush=False)
#shoplist = [‘apple’, ‘mango’, ‘carrot’, ‘banana’]
参数 | 作用 | 案例 |
---|---|---|
sep | sep是在print中的所有字符串中间做分隔符的 | for item in shoplist : print(item, ‘你好’,‘我不好’,…,sep=“分隔符”) |
end | end是输出结束时的字符,默认是换行符\n;每次输出后面补充end的字符 | for item in shoplist : print(item,end=’ . ') |
file | 关键字参数file是定义流输出的文件,可以是标准输出流sys.stdout,也可以重定义为别的文件; | |
flush | 关键字参数flush是立即把内容输出到流文件,不作缓存–了解即可。 |