您好,登錄后才能下訂單哦!
Python的8個語法分別是什么,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
那作為通用編程語言,Python為何更勝一籌?
近年來,Python 更是橫掃了各大語言排行榜。在世界腳本語言排行榜中,Python 強勢登頂;在 TIOBE 編程語言排行榜中,Python 地位也在逐月攀升,越來越受廣大開發者的歡迎。對比長盛不衰的 Java、C、C++,后起之秀 Python 深受好評。
在 TIOBE 編程語言排行榜中,Python 也緊隨 Java、C、之后,在開發者最喜愛的編程語言中位居第三名。
同樣作為通用編程語言,不可避免要分出個一二三四來。那么 Java、C、C++ 以及 Python 比起來,誰能獨領風騷?誰又略輸一籌?
雖然目前來講,Java 語言仍然傲視群雄,但是通過以上的對比可以發現,即使與 Java、C、C++ 這三個老牌語言相比,Python 也顯得游刃有余,甚至隱隱有后來居上的意味。
所以,進入2018年之后,Python幾乎成為編程語言界的"網紅",無論是使用人數還是受歡迎程度,都在各項榜單中飆升。5月,Python在PYPL指數榜中的超越Java,首次奪冠。
如果把PYPL編程語言人氣指數的時間軸拉長,Python在近十幾年的時間里,幾乎一直都是"牛市"。
我們都知道Python容易入門且用途廣泛,同時我們也可以用Python做一些意想不到的事情……這篇文章的目的在于幫助小伙伴們全面了解Python,僅此而已……
下面,我就來介紹下鮮為人知的一些Python語法:(這些代碼玩玩就好,不要在線上寫這樣的代碼,切記,切記.)
1、使用 lambda 表達式重寫多行函數
眾所周知 python 的 lambda 表達式不支持多行代碼。但是可以模擬出多行代碼的效果。
雖然看起來很奇怪,但是上面的函數可以使用下面的 lambda 表達式函數代替:
始終記著,永遠別在生產環境寫這樣的代碼 :)不然會被打死。
2、替換方法字節碼
Python 阻止替換類實例中的方法,因為 python 給類實例中的方法賦予了只讀屬性:
但是可以在字節碼的層面上進行替換:
注意! 這不僅對當前的實例有影響,而且對整個類都有影響(準確的說是與這個類綁定的函數)(譯者注:此處應該是筆誤,推測作者原意是:準確的說是與這個函數綁定的所有類),并且所有其他的實例也會受到影響:
3、三元運算符
現代的 python 提供了更簡便的語法:
b if a else c
也可以通過下面的方式重寫:
(a and [b] or [c])[0](b, c)[not a]
順便說一下,下面的變體是錯誤的:
a and b or cTrue and [] or [1] -> [1], but: [] if True else [1] -> []
4、通過列表推導式移除重復的元素.
讓我們來把字符串 x = 'tteesstt' 轉換成 'test' 吧。
1、在原字符串中和上一個字符比較:
''.join(['' if i and j == x[i-1] else j for i,j in enumerate(x)])
2、把前一個字符保存到臨時變量中:
3、在新字符串中和上一個字符比較:
[(not r.endswith(i) and [r for r in [r+i]], r)[-1] for r in [''] for i in x][-1]
4、通過 reduce 函數和 lambda 表達式:
reduce(lambda a, b: a if a.endswith(b) else a + b, x)
5、通過列表推導式獲得斐波拉契數列
把中間值保存在列表中
把中間值保存到字典中:
通過 reduce 函數和 lambda 表達式:
速度最快的變體:
6、使用列表推導式產生死循環
[a.append(b) for a in [[None]] for b in a]
7、列表切片技巧
復制列表:
移除/替換 列表中的任意元素:
在列表的開頭添加元素:
在列表的尾部添加元素:
反轉列表:
8、讓可變元素作為函數參數默認值
把可變對象作為函數參數的默認值是非常危險的一件事,并且在面試中有大量關于這方面棘手的面試問題。但這一點對于緩存機制非常有幫助。
1. 階乘函數:
2.斐波拉契數列:
總結:
Python由于語法簡潔,功能強大,且在人工智能、大數據方面展現出效率優勢,越來越受到歡迎。
Python把其他語言做了一個封裝,調用其他語言做的包。很多的數據科學家其實是不希望學習過于復雜的編程語言的。把他們關于數據方面處理的智慧封裝起來,通過Python來調用,這樣會方便很多。這也是為什么Python這幾年這么流行的原因。
關于Python的8個語法分別是什么問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。