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(),默認按空字元切割(空格、 、
等等,不用擔心返回"")
最後說一下partition和rpartition返回是元祖類型(後面會說的),方式和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數據可視化工具
TAG:Python |