Java转Python入门之运算与循环

来源:互联网 发布:万宝宝 知乎 编辑:程序博客网 时间:2024/05/22 03:45

 

1数学运算:

加减乘除跟Java一样对应+-*/,xy次幂用x**y这个符号,取整用//,取余用%

 

2比较运算符与java一摸一样><==!=

 

3位运算符,python可以bin(x)取到x的以”0b”开头的二进制字符串,可以直接对十进制的参数进行二进制位运算符。左是<<,右移是>>,与是&,或是|,按位取反是~,按位异或是^

        用下面一个例子来熟悉下:

 

4逻辑运算符,Java中是符号标识的&&,||,在Python中是英文andor标识的,非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一样采用短路规则,例如最后一个elifa>0if判断就已经结束了,不会再去判断b是否小于1.

Pythonbool类型与Javaboolean类型差异较大,对true的判断与JS相同,空引用、空文本、0整数为false,其它都是trueTrueFalse首字母必须要大写,bool对字符串内的‘True’和‘False’不会做Java那种转化。

结果为true1 true3true4

 

8循环语法whilebreakcontinue、循环嵌套,python还提出了一个pass占位语句,个人觉得没什么意义,不做介绍;whilefor循环结束后可以接一个else做最后的处理。

        for循环与Java语法略有不同,更有点像Oracle的存储过程中写法

 

9 Python中的数学运算,是Python的强项,简单的绝对值、上整数、下整数等都具备,其他部分分为常量、三角函数、随机函数、运算函数4部分,需要import math包。

常量:math.e, math.pi

运算函数:exp(x) 返回ex次幂(ex),

                 log(x),以e为底的x的对数

log10(x),以10为底的x的对数

log(x,y),以y为底的x的对数

max(x1,x2,...)返回集合内最大值,同理还有min()

round(x [,n])返回xn位小数上的四舍五入

sqrt(x)x开根号

随机函数:choice(seq)sql中随机取一个值

random()java一样,随机生成一个0-1之间的实数

shuffle(lst)lst随机排序

三角函数:sincostan等,python中是弧度制的,可以用radians(x)做角度转为弧度的运算,或者degrees(x)做弧度转为角度的运算。有个需要掌握的欧几里得范数hypot(x, y),计算所有参数平方和开根号,这个是机器学习中常用到的函数。

 

10字符串运算,python中对字符串的理解为Java中的List<char>,一串字符串是每一位char组成的一个集合。PythonString定义了很多强类型的占位符,%d占位数字,%s占位字符。


11列表List运算函数

        删除某一项:dellist[n]

        List.append(x),列表为添加元素

        len(list),返回列表长度

        list.count(x),统计list中出现x元素的次数

        list.insert(index,x),x插入到listindex

        list.pop,用法与redis一样,取值加移出。

        list.remove(x),删除list中第一个x元素。

        list.sort(),排序

 

12元祖比list简单,函数少,可以理解为不可修改的list,所以removedel等都不可以操作。

 

13字典值运算,与Javamap<key,value>操作相同

        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一样都是基于197011日午时间点来运算的,有timecalendardatetime几种处理时间的方式,不同的是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包:

    importdatetime