python和Java语法对比
大家好,又见面了,我是你们的朋友全栈君。
定义变量:
java:  
int a = 1; 
python:      
a = 1     #python中不需要分号结尾,python用缩进判断代码块Python定义变量的时候不需要给出类型,直接定义即可,Python会自动判断变量类型。 String类型:
java:
String a  = new String();
a = "123";
python:
a="123"     #python中单引号双引号不区分Python中if语句bool表达式的运算符
java:     &&    ||    取反 ! true
python:   and   or    取反 not true
if a > 0 && a < 10 && !a == 5{}
if a > 0 and a < 10 and not a == 5:Pyhthon中的除法
‘/’ 保留小数的除法 ‘//’ 舍去小数的除法
数组定义
java:
String[] a = new String[5];
python:
c=[1,2,3,4]
d=[123,"3",c]  #python中数组接受任意类型,并且各个类型都嫩恶搞互相转换Python中对数组的切片
一般数字数组
a[x:y:z] #x表示起始点,y终止点(不包含),z步长
a = [1,2,3,4,5]
print(a[1:-1])     #打印出数组a下标从1到-1(不包含)的数字
结果是
[2,3,4]字符串数组
b ="12345"
print(b[1:-1])      #结果是'234'
 
print(int(b))        #将数组强制转换成int数组(必须字符串数组中全为数字)利用切片倒序数组
a=[1,2,3,4,5]
a[::-1] [5,4,3,2,1]
 省略前面两个参数,表示对整个数组,步数-1 从后往前
a[4:0:-1] [5,4,3,2]
 完整的写完区间,但是会发现无法将一个数字倒序,因为切片不包含结束点
发现
但当你的起始或者终止点超过数组长度,就返回最大能返回的
a[4:-6:-1]
a[5:-9:-1]
 上面两个都是一样的,因为第一个是结束点超出数组范围
 第二个是起始点和结束点都超过
记住 -1表示倒数第一个小标,所以你不能写成
a[4:-1:-1] 这个表示起始终止点都是最后最后一个,所以返回空
循环语法
for循环
java:
for (int i=0; i<9; i++){
    System.out.println(i);
}
python:
for i in range(0,9):        #range()函数,不包含右边
    print(i)                         
#会发现在java用‘{’的地方,python使用‘:’表示
#比如if,class,for,while,定义函数时等等相比之下会发现,python的语法更加接近我们英语语法,for i 对于每个i 在0-9(不包含9)中。
while循环
java:
while(int i < 9){
    System.out.print(i);
    i--;
}
python:
while i>0 :
    print(i)
    i = i-1    #注意python中没有自加自减函数定义
现在我们定义一个filter函数,只保留数组中的偶数
a = [1,2,3,4,5,6,7,8,9]
def filter(l):        #def表示定义函数
    x=[]
    for i in range(0,len(l)):     #len函数获取数组长度
        if l[i]%2 == 0:
            x.append(l[i])         #.append往数组中加元素
    return x然后比较魔性的写法
def filter(l):
    return [x for x in l if x%2 == 0]递归函数
定义一个函数求出一个数字的阶乘
def fn(n):
    if n == 1:
        return 1
    else:
        return n*fn(n-1)Python中的class概念
class Person:
    def __init__(self, name):
        self.name = name
    def getName(self):
        return self.name上面这段代码表示class Person的构造函数,使用这个类,必须传入一个name的参数,然后里面还定义了一个getName()函数,得到这个类的name参数值
a = Person("abc")    #新定义一个变量名为a的Person类,里面的name值为abc
a.asd = 123          #与java不同的是,可以随时忘类中加入新的参数和值
print(a.name, a.asd)改写Python的原有函数
Python可以将print这类基础函数改写,但是java做不到
oldPrint = print
def myprint(x):
    oldPrint(":::", x)
print = myprint
print("ashdhabsd")  #结果::::ashdhabsd
print(345)          #结果::::345Map函数
map(函数名,数组)
 比如我有一个power平方函数和int数组a[1,2,3]
a=list(map(power,a))
 [1,4,9] 注意这里用map必须在前面加list转换,否则显示的不是数组
Lambda函数
Lanbda可以免去在外面定义函数,一些简单只需要用一次的函数可以直接写在表达式中
a = [1,2,3,4,5]
a = map(lambda x: x**2, a)
a = list(a)
print(a)Python中的字典{} (HashMap)
a{ key1 : value1 , key2 : value2 } 一个key对应一个value
a = {"name":"abc","age":17}
a ['sex']='male'  #为字典中加入新的元素判断key或者value是否在字典中
"name" in a         #ture
"abc" in a          #false   in a 默认是keys的集合
"abc" in a.values() #ture不仅仅只是字典,其他字符串也可以同样操作
a = "hello 12 3 abc"
"abc" in a         #true转载地址:https://www.jianshu.com/p/c38671c010f1
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/157033.html原文链接:https://javaforall.cn
相关文章
- Python 进制转换函数及前缀截取
 - 多重共线性:python中利用statsmodels计算VIF和相关系数消除共线性
 - Python/GUI/tkinter/学生信息管理系统源码
 - python hashlib_Python hashlib模块实例使用详解
 - 8000 字 Python 数据可视化实操指南
 - 【过程记录】python环境离线迁移
 - 用Python实现开心消消乐小游戏
 - python中dtype什么意思_NumPy Python中的数据类型对象(dtype)
 - Python求逆矩阵_3x3下三角矩阵求逆矩阵
 - python aic准则_pythonAIC准则下线性回归实现及模型检验案例分析
 - python十进制转换_Python 进制转换
 - python matplotlib 动态图_matplotlib怎么读
 - python win32api messagebox_如何在Python中使用Win32 API?
 - python下mqtt服务器的搭建_搭建MQTT服务器
 - 【Python基础】Python简介
 - python 递归排序[通俗易懂]
 - python整除和取余写法_Python的整除和取余[通俗易懂]
 - python中astype 存在空值_python-DataFrame.astype()错误参数
 - Python文本情感分析_Python数据分析实战
 - python使用list实现栈