python和java语法_Python30分钟入门语法(与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) #结果::::345

Map函数

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值