日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

python和Java語法對比

 ekylin 2021-12-24

定義變量:

  1. java:
  2. int a = 1;
  3. python:
  4. a = 1 #python中不需要分號結(jié)尾,python用縮進(jìn)判斷代碼塊

Python定義變量的時候不需要給出類型,直接定義即可,Python會自動判斷變量類型。
String類型:

  1. java:
  2. String a = new String();
  3. a = "123";
  4. python:
  5. a="123" #python中單引號雙引號不區(qū)分

Python中if語句bool表達(dá)式的運算符

  1. java: && || 取反 ! true
  2. python: and or 取反 not true
  3. if a > 0 && a < 10 && !a == 5{}
  4. if a > 0 and a < 10 and not a == 5:

Pyhthon中的除法

'/' 保留小數(shù)的除法
'//' 舍去小數(shù)的除法

數(shù)組定義

  1. java:
  2. String[] a = new String[5];
  3. python:
  4. c=[1,2,3,4]
  5. d=[123,"3",c] #python中數(shù)組接受任意類型,并且各個類型都嫩惡搞互相轉(zhuǎn)換

Python中對數(shù)組的切片

一般數(shù)字?jǐn)?shù)組
a[x:y:z] #x表示起始點,y終止點(不包含),z步長

  1. a = [1,2,3,4,5]
  2. print(a[1:-1]) #打印出數(shù)組a下標(biāo)從1到-1(不包含)的數(shù)字
  3. 結(jié)果是
  4. [2,3,4]

字符串?dāng)?shù)組

  1. b ="12345"
  2. print(b[1:-1]) #結(jié)果是'234'
  3. print(int(b)) #將數(shù)組強制轉(zhuǎn)換成int數(shù)組(必須字符串?dāng)?shù)組中全為數(shù)字)

利用切片倒序數(shù)組
a=[1,2,3,4,5]
a[::-1] [5,4,3,2,1]
省略前面兩個參數(shù),表示對整個數(shù)組,步數(shù)-1 從后往前
a[4:0:-1] [5,4,3,2]
完整的寫完區(qū)間,但是會發(fā)現(xiàn)無法將一個數(shù)字倒序,因為切片不包含結(jié)束點

發(fā)現(xiàn)

但當(dāng)你的起始或者終止點超過數(shù)組長度,就返回最大能返回的
a[4:-6:-1]
a[5:-9:-1]
上面兩個都是一樣的,因為第一個是結(jié)束點超出數(shù)組范圍
第二個是起始點和結(jié)束點都超過
記住 -1表示倒數(shù)第一個小標(biāo),所以你不能寫成
a[4:-1:-1] 這個表示起始終止點都是最后最后一個,所以返回空

循環(huán)語法

for循環(huán)

  1. java:
  2. for (int i=0; i<9; i++){
  3. System.out.println(i);
  4. }
  5. python:
  6. for i in range(0,9): #range()函數(shù),不包含右邊
  7. print(i)
  8. #會發(fā)現(xiàn)在java用'{’的地方,python使用':’表示
  9. #比如if,class,for,while,定義函數(shù)時等等

相比之下會發(fā)現(xiàn),python的語法更加接近我們英語語法,for i 對于每個i 在0-9(不包含9)中。

while循環(huán)

  1. java:
  2. while(int i < 9){
  3. System.out.print(i);
  4. i--;
  5. }
  6. python:
  7. while i>0 :
  8. print(i)
  9. i = i-1 #注意python中沒有自加自減

函數(shù)定義

現(xiàn)在我們定義一個filter函數(shù),只保留數(shù)組中的偶數(shù)

  1. a = [1,2,3,4,5,6,7,8,9]
  2. def filter(l): #def表示定義函數(shù)
  3. x=[]
  4. for i in range(0,len(l)): #len函數(shù)獲取數(shù)組長度
  5. if l[i]%2 == 0:
  6. x.append(l[i]) #.append往數(shù)組中加元素
  7. return x

然后比較魔性的寫法

  1. def filter(l):
  2. return [x for x in l if x%2 == 0]

遞歸函數(shù)

定義一個函數(shù)求出一個數(shù)字的階乘

  1. def fn(n):
  2. if n == 1:
  3. return 1
  4. else:
  5. return n*fn(n-1)

Python中的class概念

  1. class Person:
  2. def __init__(self, name):
  3. self.name = name
  4. def getName(self):
  5. return self.name

上面這段代碼表示class Person的構(gòu)造函數(shù),使用這個類,必須傳入一個name的參數(shù),然后里面還定義了一個getName()函數(shù),得到這個類的name參數(shù)值

  1. a = Person("abc") #新定義一個變量名為a的Person類,里面的name值為abc
  2. a.asd = 123 #與java不同的是,可以隨時忘類中加入新的參數(shù)和值
  3. print(a.name, a.asd)

改寫Python的原有函數(shù)

Python可以將print這類基礎(chǔ)函數(shù)改寫,但是java做不到

  1. oldPrint = print
  2. def myprint(x):
  3. oldPrint(":::", x)
  4. print = myprint
  5. print("ashdhabsd") #結(jié)果::::ashdhabsd
  6. print(345) #結(jié)果::::345

Map函數(shù)

map(函數(shù)名,數(shù)組)
比如我有一個power平方函數(shù)和int數(shù)組a[1,2,3]
a=list(map(power,a))
[1,4,9] 注意這里用map必須在前面加list轉(zhuǎn)換,否則顯示的不是數(shù)組

Lambda函數(shù)

Lanbda可以免去在外面定義函數(shù),一些簡單只需要用一次的函數(shù)可以直接寫在表達(dá)式中

  1. a = [1,2,3,4,5]
  2. a = map(lambda x: x**2, a)
  3. a = list(a)
  4. print(a)

Python中的字典{} (HashMap)

a{ key1 : value1 , key2 : value2 } 一個key對應(yīng)一個value

  1. a = {"name":"abc","age":17}
  2. a ['sex']='male' #為字典中加入新的元素

判斷key或者value是否在字典中

  1. "name" in a #ture
  2. "abc" in a #false in a 默認(rèn)是keys的集合
  3. "abc" in a.values() #ture

不僅僅只是字典,其他字符串也可以同樣操作

  1. a = "hello 12 3 abc"
  2. "abc" in a #true

轉(zhuǎn)載地址:https://www.jianshu.com/p/c38671c010f1

 

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多