1 数学运算:
加减乘除跟Java一样对应+-*/,x的y次幂用x**y这个符号,取整用//,取余用%。
2 比较运算符与java一摸一样>、<、==、!=等
3 位运算符,python可以bin(x)取到x的以”0b”开头的二进制字符串,可以直接对十进制的参数进行二进制位运算符。左是<<, 右移是>>, 与是&, 或是|,按位取反是~,按位异或是^。
用下面一个例子来熟悉下:
4 逻辑运算符,Java中是符号标识的&&,||,在Python中是英文and和or标识的,非java是!标识的, Python是英文not
5 成员运算符,跟sql语法一样使用 in,notin
例如:
6 身份运算符,这个一定要注意,跟Java差别很大,java判断两个对象是否“相等”有两种:一种是值相等equals,一种是引用相等==, 在python中值相等比较用==符号,引用相等比较用is 和 is not。对于简单类型的我也做过比较,跟java的设计思想应该是一样的,底层用了享元模式。
7 条件语句语法与Java不同,不支持switch,需要elif一个个判断,由于python语法是空格缩进的,所以IDE工具继续使用IDLE的话可读性很差,所以换成了pyCharm,安装步骤有个小伙伴已经写得很好了,详见http://www.jianshu.com/p/042324342bf4,使用参考https://www.cnblogs.com/yamei/p/5519818.html
条件判断中与java一样采用短路规则,例如最后一个elif,a>0后if判断就已经结束了,不会再去判断b是否小于1.
Python的bool类型与Java的boolean类型差异较大,对true的判断与JS相同,空引用、空文本、0整数为false,其它都是true,True和False首字母必须要大写,bool对字符串内的‘True’和‘False’不会做Java那种转化。
结果为true1 和 true3 和true4
8 循环语法while、break、continue、循环嵌套,python还提出了一个pass占位语句,个人觉得没什么意义,不做介绍;while和for循环结束后可以接一个else做最后的处理。
for循环与Java语法略有不同,更有点像Oracle的存储过程中写法
9 Python中的数学运算,是Python的强项,简单的绝对值、上整数、下整数等都具备,其他部分分为常量、三角函数、随机函数、运算函数4部分,需要import math包。
常量:math.e, math.pi
运算函数:exp(x) 返回e的x次幂(ex),
log(x) ,以e为底的x的对数
log10(x) ,以10为底的x的对数
log(x,y),以y为底的x的对数
max(x1,x2,...) 返回集合内最大值,同理还有min()
round(x [,n])返回x在n位小数上的四舍五入
sqrt(x) 对x开根号
随机函数:choice(seq),sql中随机取一个值
random() 与java一样,随机生成一个0-1之间的实数
shuffle(lst) 将lst随机排序
三角函数:sin、cos、tan等,python中是弧度制的,可以用radians(x)做角度转为弧度的运算,或者degrees(x)做弧度转为角度的运算。有个需要掌握的欧几里得范数hypot(x, y),计算所有参数平方和开根号,这个是机器学习中常用到的函数。
10 字符串运算,python中对字符串的理解为Java中的List
11 列表List运算函数
删除某一项:dellist[n]
List.append(x),列表为添加元素
len(list),返回列表长度
list.count(x),统计list中出现x元素的次数
list.insert(index,x),将x插入到list的index处
list.pop,用法与redis一样,取值加移出。
list.remove(x),删除list中第一个x元素。
list.sort(),排序
12 元祖比list简单,函数少,可以理解为不可修改的list,所以remove、del等都不可以操作。
13 字典值运算,与Java中map
dict[key]=value修改元素添加key-value;
dict.items()返回key-value的集合
dict.keys(),dict.values()与java相同
dict.pop(key),取出并删除
dict.clean()清空map
dict.get(key,defaultValue)根据key取值并设置不存在的默认值
deldict[key],删除某一key-value
14 关于时间的运算,与Java一样都是基于1970年1月1日午时间点来运算的,有time、calendar、datetime几种处理时间的方式,不同的是Java是毫秒为单位的long类型,python是秒为单位的浮点类型。
importtime包:
time.time( ),获取当前距离1970的秒数
time.asctime([tupletime])将time格式转换成Tue Dec11 18:07:14 2008格式的时间string,相当于java中的dateFormat。
time.clock( ),计算cpu耗时
time.sleep(secs)线程休眠secs秒数
importcalendar包: