python基础

python 常用模块

基础语法

赋值和表达式

在c语言中 赋值也叫赋值表达式,比如c = 5返回一个值5,但是在Python中赋值就不再是表达式了,因此 y =(x = 5)这种写法是错误的。但是 y = x = 5这种链式赋值是正确的。
Python中 数值类型都是不可变对象,c = c +5 这种增量赋值,其实有两个对象,如果在c或者Java中就是对变量c本身的内存区域的值的改变。从这个意义上来说自增和自减在Python中都是没有意义的。

之前在Python的while(num = num & (num -1))这种语法,当时就没有意识到Python赋值的特殊

赋值本质上都是讲 引用赋值给别名。
a = 5
b = 5 同一个引用给了a b两个别名,但是修改a并不会修改b
a = a + 1 是因为 6这个对象的引用给了a,b还是指向 5.
整数相除

内建函数

面向对象

静态、私有、全局、局部 ???

数值运算

这里面有大坑,偶然一次模运算发现的。比如 -2 % 3结果竟然是 1。Java就是2.
整数除法,Java是向零取整,但是Python是向负取整(向负无穷方向取整)。
除法逻辑的不同必将导致求模运算逻辑的不同。

字符串

字符串可以类似列表那样进行切片

字符串格式化输出

word = ‘hello’
num = 12
word1 = ‘fjiegji%s%dfeg’ % (word,num) # 这个其实是一个语句
print word1

输出默认换行 print xx 加逗号不换行. 这个什么什么逻辑???虽然不换行的功能有,的那还是搞个,不换行,是个什么逻辑。

常用模块

  1. saveImg 保存图片
  2. 读写文件
  3. 连接数据库
  4. 模拟登陆

其他

开始使用的Python,觉得这语言非常简洁,用着用着发现这种语言用着用着有种说不出的难受。
直至今天看到的一篇文章:
闲聊
感觉说道心坎了。
对于初级使用者来说,Python最不方便的就是其动态类型,这个带来的负面影响非常大。
主要就是运行效率低下;同时,由于静态类型导致了IDE对于编程的支持始终有限,通常非常难定位错误,重构也是难上加难。
而且语言的api也不是非常稳定,Java从1-8基本保持了稳定性,而Python2->3的变化,导致现在还有好多人在撕逼。
应该说Python适合做些小工具脚本,做些数据采集、数据处理之类的脚本比较适合,对于安全性和稳定性,效率有所要求的系统而言,Python是玩玩不敢用的。
感觉对于初学者切不可贪图简单学习Python。