當前位置:
首頁 > 最新 > Python3與C#基礎語法對比

Python3與C#基礎語法對比

Python3 與 C# 基礎語法對比:https://www.cnblogs.com/dotnetcrazy/p/9102030.html

事先聲明一下,避免讓新手進入誤區:不是說Python比NetCore要好,而Python設計的目的就是==》讓程序員解放出來,不要過於關注代碼本身,那麼性能、規範等等各方面隱患就存在了,後面編寫一個稍微大點的項目就看出來了。而且不要太受語言約束,之前我也說過,用各自語言的優勢來為項目服務~ 這才是開發王道。比如Python用來數據分析,Go用來並發處理等等,不多說了,記住一句話即可:「Net是性價比最高的」

步入正題:歡迎提出更簡單或者效率更高的方法

基礎系列:(這邊重點說說Python,上次講過的東西我就一筆帶過了)

1.輸出+類型轉換

Python寫法:

NetCore:

2.字元串拼接+拼接輸出方式

python:

NetCore

3.字元串遍歷、下標、切片

重點說下python的下標,有點意思,最後一個元素,我們一般都是len(str)-1,他可以直接用-1,倒2自然就是-2

#最後一個元素:user_str[-1]

user_str[-1]

user_str[len(user_str)-1] #其他編程語言寫法

#倒數第二個元素:user_str[-2]

這次為了更加形象對比,一句一句翻譯成NetCore(有沒有發現規律,user_str[user_str.Length-1]==》-1是最後一個,user_str[user_str.Length-2]==》-2是最後一個。python在這方面簡化了

3.2 python切片語法:[start_index:end_index:step](end_index取不到)

#切片:[start_index:end_index:step] (end_index取不到)#eg:str[1:4] 取str[1]、str[2]、str[3]#eg:str[2:] 取下標為2開始到最後的元素#eg:str[2:-1] 取下標為2~到倒數第二個元素(end_index取不到)#eg:str[1:6:2] 隔著取~str[1]、str[3]、str[5](案例會詳細說)#eg:str[::-1] 逆向輸出(案例會詳細說,)

來個案例:我注釋部分說的很詳細了,附錄會貼democode的

NetCore,其實你用Python跟其他語言對比反差更大,net真的很強大了。補充(對比看就清楚Python的step為什麼是2了,i+=2==》2)

方法系列:

# 查找:find,rfind,index,rindex

Python查找推薦你用find和rfind

netcore:index0f就相當於python裡面的find

# 計數:count

python:str.count()

netcore:這個真用基礎來解決的話,只能自己變形一下:(原字元串長度 - 替換後的長度) / 字元串長度

Python補充說明:像這些方法練慣用ipython3就好了(sudo apt-get install ipython3),code的話需要一個個的print,比較麻煩(我這邊因為需要寫文章,所以只能一個個code)

index查找不到會有異常

# 替換:replace

Python:xxx.replace(str1, str2, 替換次數)

replace可以指定替換幾次

NetCore:替換指定次數的功能有點業餘,就不說了,你可以自行思考哦~

#連接:join:eg:print("-".join(test_list))

netcore:string.Join(分隔符,數組)

#分割:split(按指定字元分割),splitlines(按行分割),partition(以str分割成三部分,str前,str和str後),rpartition

說下split的切片用法 :print(test_input.split(" ",3)) #在第三個空格處切片,後面的不切了

繼續說說splitlines(按行分割),和split("
")的區別我圖中給了案例

擴展:split(),默認按空字元切割(空格、 、
等等,不用擔心返回"")

最後說一下partitionrpartition返回是元祖類型(後面會說的),方式和find一樣,找到第一個匹配的就罷工了【注意一下沒找到的情況】

netcore:split裡面很多重載方法,可以自己去查看下,eg:Split("
",StringSplitOptions.RemoveEmptyEntries)

再說一下這個:test_str.Split("a");//返回數組如果要和Python一樣返回列表==》test_str.Split("a").ToList();【需要引用linq的命名空間哦】

# 頭尾判斷:startswith(以。。。開頭),endswith(以。。。結尾)

netcore:

# 大小寫系:lower(字元串轉換為小寫),upper(字元串轉換為大寫),title(單詞首字母大寫),capitalize(第一個字元大寫,其他變小寫)

netcore:

# 格式系列:lstrip(去除左邊空格),rstrip(去除右邊空格),strip(去除兩邊空格)美化輸出系列:ljust,rjust,center

netcore:Tirm很強大,除了去空格還可以去除你想去除的任意字元

ljust,rjust,center這些就不說了,python經常在linux終端中輸出,所以這幾個用的比較多。net裡面

string.Format各種格式化輸出,可以參考

# 驗證系列:isalpha(是否是純字母),isalnum(是否是數字|字母),isdigit(是否是純數字),isspace(是否是純空格)

一張圖搞定,其他的自己去試一試吧,注意哦~test_str5="
" #isspace() ==>true

netcore:string.IsNullOrEmpty和 string.IsNullOrWhiteSpace是系統自帶的,其他的你需要自己封裝一個擴展類(eg:簡單封裝)【附錄有】

老規矩附錄見原文地址

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 Python 的精彩文章:

Python只適合測試?
解析六種Python數據可視化工具

TAG:Python |