基础语法
赋值和表达式
在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 加逗号不换行. 这个什么什么逻辑???虽然不换行的功能有,的那还是搞个,不换行,是个什么逻辑。
常用模块
- saveImg 保存图片
- 读写文件
- 连接数据库
- 模拟登陆
其他
开始使用的Python,觉得这语言非常简洁,用着用着发现这种语言用着用着有种说不出的难受。
直至今天看到的一篇文章:
闲聊
感觉说道心坎了。
对于初级使用者来说,Python最不方便的就是其动态类型,这个带来的负面影响非常大。
主要就是运行效率低下;同时,由于静态类型导致了IDE对于编程的支持始终有限,通常非常难定位错误,重构也是难上加难。
而且语言的api也不是非常稳定,Java从1-8基本保持了稳定性,而Python2->3的变化,导致现在还有好多人在撕逼。
应该说Python适合做些小工具脚本,做些数据采集、数据处理之类的脚本比较适合,对于安全性和稳定性,效率有所要求的系统而言,Python是玩玩不敢用的。
感觉对于初学者切不可贪图简单学习Python。