導航:首頁 > 編程語言 > python有危險嗎

python有危險嗎

發布時間:2022-08-28 00:29:59

1. 為什麼pythonphp 更有效率

Python 比 PHP 更有效率比較如下:

1、從框架數量和成熟度看,PHP都優於Python;
2、從開發效率上看,Python又有絕對的優勢;從安全的角度看,這兩門語言都很常用,但php的漏洞被挖掘得比較多,也較危險,而Python被光顧的幾率還是比較小的。但最終的優勢還是取決於開發人員,優秀的開發人員能彌補很大一部分缺陷。
3、例如:在做一個分享基因數據的伺服器,裡面要隨機讀取一些很奇葩的基因文件,剛好Python有個包可以實現這個功能。

2. python能像c語言一樣操作一個內存塊嗎

不行! c,c++ 其實是一種半高級語言,他的很多操作都近似匯編語言.
但python是純高級語言,設計者本來就不希望你像c一樣去操作內存.因為這樣很危險.

3. 為什麼有人說 Python 的多線程是雞肋

因為 Python 中臭名昭著的 GIL。

那麼 GIL 是什麼?為什麼會有 GIL?多線程真的是雞肋嗎? GIL 可以去掉嗎?帶著這些問題,我們一起往下看,同時需要你有一點點耐心。

多線程是不是雞肋,我們先做個實驗,實驗非常簡單,就是將數字 「1億」 遞減,減到 0 程序就終止,這個任務如果我們使用單線程來執行,完成時間會是多少?使用多線程又會是多少?show me the code

那麼把 GIL 去掉可行嗎?

還真有人這么干多,但是結果令人失望,在1999年Greg Stein 和Mark Hammond 兩位哥們就創建了一個去掉 GIL 的 Python 分支,在所有可變數據結構上把 GIL 替換為更為細粒度的鎖。然而,做過了基準測試之後,去掉GIL的 Python 在單線程條件下執行效率將近慢了2倍。

Python之父表示:基於以上的考慮,去掉GIL沒有太大的價值而不必花太多精力。

4. 如何深入理解Python中的面向對象的思維

ython使用類(class)和對象(object),進行面向對象(object-oriented programming,簡稱OOP)的編程
面向對象的最主要目的是提高程序的重復使用性。我們這么早切入面向對象編程的原因是,Python的整個概念是基於對象的。了解OOP是進一步學習Python的關鍵。
下面是對面向對象的一種理解,基於分類。
相近對象,歸為類
在人類認知中,會根據屬性相近把東西歸類,並且給類別命名。比如說,鳥類的共同屬性是有羽毛,通過產卵生育後代。任何一隻特別的鳥都在鳥類的原型基礎上的。

對這方面感興趣,想要學習python或者想要了解python可以加群:623715703
面向對象就是模擬了以上人類認知過程。在Python語言,為了聽起來酷,我們把上面說的「東西」稱為對象(object)。
面向對象的基本思想是封裝,繼承,多態。
首先是繼承:
定義一個類:
復制代碼 代碼如下:
class Bird(object):
have_feather = True
way_of_reproction = 'egg'
調用這個類:
summer = Bird()
print summer.way_of_reproction
java不同是,Python是不需要new來實例化類的。
同樣,Python的類下面是可以定方法的:
def say(self, word='hi hi'):
print 'i say :' + word
注意一點,所有類的函數,必須至少帶有一個參數,這個參數必須是self。
類以外的函數沒有這一個限制。
chk = Chicken()
print chk.have_feather
print chk.sat('hello')
__init__()方法
__init__()是一個特殊方法(special method)。Python里會有一些特殊方法,Python會以特別的方式處理它們。特殊方法的名字的特點是前後都有兩個下劃線。

__init__()方法的特殊在於,如果你在類中定義了這個方法,一旦你根據這個類建立對象,Python就會自動調用這個方法(這個過程也叫初始化)。
如:
class happyBird(Bird):
def __init__(self,more_words):
print 'We are happy birds.',more_words
hb = happyBird('Happy,Happy!')
父類方法的重載:
class Hello(object):
name = 'hello'
def __init__(self):
self.name='my name is hello'
#類中的參數必須帶有self參數
def sayhi(self):
print 'hi you'
class World(Hello):
#這里訪問的是父類初始化的變數名
print 'before:',Hello.name
super(World,self).__init__()
#由於調用了父類的初始化構造函數,繼承了父類的變數的改變
print 'after:',self.name
#近似於方法重載
def sayhi(self,word='baby'):
#調用父類sayhi方法
super(World,self).sayhi()
print 'hi '+word
def sayWorld(self):
print 'hi,hello world'
if __name__ == '__main__':
c = World()
c.sayhi()
c.sayWorld()

另外,python是允許多繼承的,但是這個是個非常危險的操作,建議不要隨便使用。
關於Python的多態,就像JavaScript一樣,直接訪問對象的屬性,不需要使用介面,沒有類型轉換。
對於類型的判斷,有抓們的type()函數,和isinstance()函數判斷是否某個函數的子類。
isinstance(object, classinfo)
判斷實例是否是這個類或者object是變數
classinfo 是類型(tuple,dict,int,float)
判斷變數是否是這個類型
class objA:
pass
A = objA()
B = 'a','v'
C = 'a string'
print isinstance(A, objA)
print isinstance(B, tuple)
print isinstance(C, basestring)
輸出結果:
True

將東西根據屬性歸類 ( 將object歸為class )
方法是一種屬性,表示動作
用繼承來說明父類-子類關系。子類自動具有父類的所有屬性。
self代表了根據類定義而創建的對象。
建立對一個對象: 對象名 = 類名()
引用對象的屬性: object.attribute
希望小夥伴們早日成為大牛!

5. 為什麼有人說 Python 的多線程是雞肋呢

首先,我並不認同這個觀點,我覺得覺得Python 的多線程是雞肋多餘的人,應該還沒有完全使用過Python 的多線程功能,並沒有發掘它的潛在能力。

Python多線程最大的優點就是使用方便,很多時候我們並不需要做大量的密集型數據的處理運算,這時候用Python多線程是最方便快捷的,可以大大減少工作量、提高工作效率。

從以上幾點我們就可以看出,Python多線程並不雞肋,只是有時候使用者在不巧當的地方使用,它自然不是那麼順手,我們加深熟悉了解Python多線程的適用范圍。

6. python存在商業風險嗎

不存在。
Python是開放的,是不可能進行交易的,Python語言的使用不需要付費,不存在商業風險。
Python是一個編程軟體,且沒有官網聲明該軟體需要收費,不構成商業風險行為。

7. python和人工智慧一樣嗎

提到人工智慧就一定會提到Python,有的初學者甚至認為人工智慧和Python是劃等號的。其實Python是一種計算機程序設計語言。是一種動態的、面向對象的腳本語言,開始時是用於編寫自動化腳本(shell),隨著版本的不斷更新和語言新功能的添加,越來越多被用於獨立的、大型項目的開發。而人工智慧通俗講就是人為的通過嵌入式技術把程序寫入機器中使其實現智能化。顯然人工智慧和Python是兩個不同的概念。

人工智慧和Python的淵源在於就像我們統計數據或選擇用excel製作表格時,因為在需要用到加減乘除或者、函數等時,只需要套用公司就可以。因為SUM、AVERAGE等這樣的函數運行的背後,是C++/C#等語言已經編寫好了代碼,所以Excel只是工具和展現形式並不是它做計算。同理在學習人工智慧時Python只是用來操作深度學習框架的工具,實際負責運算的主要模塊並不依靠Python,真正起作用的是也是一大堆復雜的C++ / CUDA程序。

深度學習人工智慧時,自己計算太復雜,還要寫C++代碼操作,這時程序員就想要不搞一套類似復雜的Excel配置表,直接搭建神經網路、填參數、導入數據,一點按鈕就直接開始訓練模型、得出結果。這個方法簡單實用可是神經網路搭建起來太復雜,需要填寫的參數太多,各種五花八門的選項也很難做成直觀的圖形工具。只能用一個類似Python的相對好用的語言,通過簡化的程序代碼來搭建神經網路、填寫參數、導入數據,並調用執行函數進行訓練。通過這種語言來描述模型、傳遞參數、轉換好輸入數據,然後扔到復雜的深度學習框架裡面去計算。那麼為什麼會選擇Python?

科學家們很早就喜歡用Python實驗演算法,也善於使用numpy做科學計算,用pyplot畫數據圖。恰好Google內部用Python也非常多,所以採用Python也是必然的。除Python外,實際上TensorFlow框架還支持JavaScript、c++、Java、GO、等語言。按說人工智慧演算法用這些也可以。但是官方說了,除Python之外的語言不一定承諾API穩定性。所以人工智慧和Python就密不可分了。

單說人工智慧的核心演算法,那是是完全依賴於C/C++的,因為是計算密集型,需要非常精細的優化,還需要GPU、專用硬體之類的介面,這些都只有C/C++能做到。所以某種意義上其實C/C++才是人工智慧領域最重要的語言。Python是這些庫的API binding,要開發一個其他語言到C/C++的跨語言介面,Python是最容易的,比其他語言的ffi門檻要低不少,CPython的C API是雙向融合的,可以直接對外暴露封裝過的Python對象,還可以允許用戶通過繼承這些自定義對象來引入新特性,甚至可以從C代碼當中再調用Python的函數。

Python一直都是科學計算和數據分析的重要工具。Python是這些庫的API binding,要開發一個其他語言到C/C++的跨語言介面。Python是最容易的,比其他語言的ffi門檻要低不少,CPython的C API是雙向融合的。可以直接對外暴露封裝過的Python對象,還可以允許用戶通過繼承這些自定義對象來引入新特性,甚至可以從C代碼當中再調用Python的函數。都說時勢造英雄,也可以說是人工智慧和Python互相之間成就者對方,人工智慧演算法促進Python的發展,而Python也讓演算法更加簡單。

8. 如何找到適合需求的 python 庫

如果你能讓軟體固定位置不動。可以使用pyhook,其中有一個按滑鼠按鍵的功能。通常可以用來做游戲的自動工具。

如果再想進一步,需要分析你的程序是什麼做的。如果是WEB APP,需要知道它用什麼瀏覽器內核,也調用相應的插件點擊。 如果是傳統WNDOWS程序,可以使用win32 api,通過獲得窗口句柄 ,並通過迭代查詢找到控制項的句柄,最後用發送消息,獲取消息的辦法來控制它

其實python非常適合初學者入門。相比較其他不少主流編程語言,有更好的可讀性,因此上手相對容易。自帶的各種模塊加上豐富的第三方模塊,免去了很多「重復造輪子」的工作,可以更快地寫出東西。配置開發環境也不是很復雜,mac和linux都內置了python。另外據我所知,不少學校也開始使用python來教授程序設計課程(比如本人的母校)。
我就是完全通過網上資源自學python的。
從在校時候用python接活賺零花錢,到在創業公司用python開發商業網站和游戲後台。所有遇到的問題,幾乎都可以從互聯網上的公開資源找到答案。
關於自學python,個人最大的3點經驗:
找一本淺顯易懂,常式比較好的教程,從頭到尾看下去。不要看很多本,專注於一本。把裡面的常式都手打一遍,搞懂為什麼。我當時看的是《簡明python教程》,不過這本書不是非常適合零基礎初學者。
去找一個實際項目練手。我當時是因為要做一個網站,不得已要學python。這種條件下的效果比你平時學一門新語言要好很多。所以最好是要有真實的項目做。可以找幾個同學一起做個網站之類。注意,真實項目不一定非要是商業項目,你寫一個只是自己會用的博客網站也是真實項目,關鍵是要核心功能完整。
最好能找到一個已經會python的人。問他一點學習規劃的建議(上知乎也是個途徑),然後在遇到卡殼的地方找他指點。這樣會事半功倍。但是,要學會搜索,學會如何更好地提問。沒人願意幫你寫作業或是回答「一搜便知」的問題。

然而,別人的經驗未必能完全復制。比如我沒有說的是,在自學python之前,我已在學校系統學習過其他的編程語言。
對於完全沒有編程經驗的初學者,在學習python的時候,面對的不僅僅是python這門語言,還需要面臨「編程」的一些普遍問題,比如:
從零開始,不知道從何入手,找了本編程教材發現第二章開始就看不懂了
缺少計算機基礎知識,被一些教程略過的「常識性」問題卡住
遇到問題不知道怎麼尋找解決方案
看懂語法之後不知道拿來做什麼,學完一陣子就又忘了
缺少數據結構、設計模式等編程基礎知識,只能寫出小的程序片段
所以除了前面說的3點經驗,給初學編程者的額外建議:
首先要有信心。雖然可能你看了幾個小時也沒在屏幕上打出一個三角形,或者壓根兒就沒能把程序運行起來。但相信我,幾乎所有程序員一開始都是這么折騰過來的。
選擇合適的教程。有些書很經典,但未必適合你,可能你寫了上萬行代碼之後再看它會比較好。
寫代碼,然後寫更多的代碼。光看教程,編不出程序。從書上的常式開始寫,再寫小程序片段,然後寫完整的項目。
除了學習編程語言,也兼顧補一點計算機基礎,和英語。
不但要學寫代碼,還要學會看代碼,更要會調試代碼。讀懂你自己程序的報錯信息。再去找些github上的程序,讀懂別人的代碼。
學會查官方文檔,用好搜索引擎和開發者社區。

另外還有一類程序,比如flash之類的。用這些方法都不成了。因為它內部的代碼不公開。如果一定要進一步研發。可以試著反編譯出action script。然後想辦法替換其中的邏輯。再使用java script去控制其中的邏輯,實現自動化處理。
自己多問下為什麼學python
如果一門語言沒有改變你的編程思維,那麼它不值得你去學習」。如果這么說,我們大學的時候,學習了c,c++,java,C#,算是值得學習么?很多時候是不值得,我覺得我們大學的課程就是用java,c#,c++把"C程序設計"又上了一遍.
這是因為,學校的老師會C和java之類的,所以要跟著規矩開這門課,(這也就是為什麼,許多學校還在教vb,),這也就是為什麼,你所以為的一樣就是大家都有For都有while,都有switch..都有Class...都有int 都有float,所謂的不一樣就是用C有指針,java沒有,這就是為什麼教育是失敗的,這也就是為什麼,我目前認識的幾個編程大牛
python的優點:簡單 我所說的簡單,是相比於象C和C++這樣的語言,你為了編程,要學習許多偏底層的東西.在比如,你在學習一個新的編程範式,或者想要馬上做個例子看看,試驗某個API,如果你是寫java的,你不得不去寫一個main,寫一些構造,即使有IDE這樣的東西,能夠為你帶來代碼生成器,而我做得就是寫一段「腳本」,或者打開python互動式解釋器就行了。
自己認識的python朋友出去工作,工資比較高,然後自己又剛剛好是會python所以選擇學習python,這樣的人比較危險但是也比較有激勵,還有就是覺得python比其他開發語言好用。

學完python前景會咋樣
其實我個人是很看好python未來的就業前景的,因為我認識太多的工程師都已經在學python,很多都是月收入大幾萬的
我個人也並非一直用python。前些年主要用c/c++以及java開發一些通信,移動系統,互聯網通信。近3年開始才轉向python。坦白的說,這可能與你相處的公司以及環境不大一樣。隨便舉個例子,google的protocol buffer協議一出來就具有c++/python/java三種語言支持。google的廣告系統早在03,04年左右就一並對python進行了webservice支持,大部分涉及基礎核心系統的公司,都開始對python進行了擴展支持。甚至開源社區的postgresql資料庫,除了自身的ansi SQL,pgsql,pg/TCL,PG/PERL之外對python進行了內嵌支持,唯獨卻沒有呼聲很高的java。在FREEBSD(MIT)/LINUX(GPL)平台上,對java可能排斥性比較大,但綜合而言,目前python發展還沒有java那種普及,主要是python大部分工作仍然是在較為深入地系統層和框架層做設計開發,例如django,SQLAlchemy,fail2ban,mail郵件系統,twisted等等。這部分對於那種習慣應用前輩們框架的編碼人員而言,缺乏創造力的他們根本無法適用這種開發。尤其在python涉及一些系統層面需要有較強的c/c++能力,這部分人在國內要麼就累得要死沒時間,要麼就啥都不會就會拷貝代碼,而國內公司也鮮有主動去做這部分基礎勞動的,大多都是等別人做好了在直接拿來用,所以造就了任何技術性的東西出來,國內都是先等等看,然後抄襲應用。
大環境如此,但千萬誤認為先等等看吧。對於一個技術人員而言,缺乏對新技術的渴望與熱情,這是一種非常危險的事情。我工作8年了,按照國內很多的人的說法早已不做代碼了,但又一次在聽一個老外的演講,他說他50多歲仍然每天堅持寫代碼,了解最新的動態,所以他才能做到他們公司的首席科學家,因此它才能時刻指導項目團隊前進並保證項目的質量。他坦言對於一個不寫代碼並且不了解最新的技術動態的技術人員或者技術團隊的負責人而言,這種團隊也就足夠做作小項目,一旦壓力和項目過大,就會有很多問題漏出來。
對於新人而言,無論學習什麼技術,都要以鼓勵的姿態出現。太多用薪水和你個人所看到的現狀去衡量一門技術,那絕對是欠缺眼光的。任何一門技術,一旦有人學習,他有可能逐漸成為這個領域的專家,即便再濫再沒有人用的開發語言技術,他也有可能就是明日的奠基者或者大師。

自己如何確定目標
在生活中學會不斷挖掘自己的潛力。我們都是一個普通人,可能並不清楚自己到底在哪方面佔有優勢。所以,學著在生活中找到自己的優勢,並根據優勢選擇一定的就業方向。
不隨波逐流。不要看周圍的人做什麼,自己就做什麼,也許別人做的並不適合你。別人的優勢很可能會成為你的劣勢。所以,堅定自己的想法,讓自己知道那些方面適合自己,自己可以勝任。
不斷嘗試可能成為自己的優勢。你不知道什麼適合自己,所以才要大膽、勇敢地嘗試。找到一種可以屬於你的獨特的優勢。
堅定信念。一旦你堅定了自己的信念,就不要被別人的意見或是諷刺或是嘲笑所干擾。別人不是你,不懂的你在想什麼,不清楚你開始這件事的源頭。你的事情,不了解你的人,沒有資格輕易評說。
不茫然,不多想。別讓太多的事干擾到你奮斗下去的信念。夢想不容許太多的雜念。那些雜念只會讓你的心愈來愈脆弱,多為一個人考慮,到頭來,傷害的還是自己。

選擇自己學習方法
每個人都有適合自己的方法,有的人去選擇自學,有的人選擇看視頻學習,有的人選擇報名培訓班,那在這個時候,你就要自己考慮清楚,到底那樣對的幫助是最大的,個人覺得是跟著培訓班最好的,畢竟人家的實戰項目多,我們學軟體開發的都知道實戰項目對於學好一門語言是 很重要的。

學習python有那些誤區

具體裡面的誤區非常的多,那些就不需要我去寫出來,我給你說的一般都是心態的問題,首先一個覺得自己會java和c++,然後我學習python就很牛,但是你要知道語言是有很多相同的地方,但是不是通用,一定要自己學習的仔細。還有一種就是覺得我不會英語,我要先去把英語學習好在來學python。因為自己想還壞主意然後學習,這樣的都是容易找進誤區的。

9. Web 開發中,Python 和 PHP 哪個有優勢為什麼

從框架數量和成熟度看,PHP都優於Python;從開發效率上看,Python又有絕對的優勢;從安全的角度看,這兩門語言都很常用,但php的漏洞被挖掘得比較多,也較危險,而Python被光顧的幾率還是比較小的。但最終的優勢還是取決於開發人員,優秀的開發人員能彌補很大一部分缺陷。
以目前的情況下,PHP更具優勢,php在web開發方面性能優點很突出,能很快速地開發中小型網站。此外,開源的程序很多,如dedecms ecshop wordpress discuz等等
php的框架也很豐富,如thinkphp 功能強大,簡單易學,小巧靈活
Yii框架 完全面向對象,學習門檻較高,但功能特別強大
Zend Framework 官方推薦的大型重量級框架
而與php配套的mysql資料庫,apache伺服器,linux系統,都是開源產品,不用花錢,也不用擔心侵權,所以php是web開發的居家必備之編程語言

閱讀全文

與python有危險嗎相關的資料

熱點內容
願望清單app哪個好 瀏覽:457
安卓外放聲音怎麼解決 瀏覽:194
脈脈app干什麼用的 瀏覽:357
拽姐是哪個app 瀏覽:858
雲伺服器刪除了還有嗎 瀏覽:232
macbook可以用單片機嘛 瀏覽:307
南陽php招聘 瀏覽:814
去哪裡找按摩師很漂亮的app 瀏覽:818
86x99用簡便演算法計算 瀏覽:830
php截圖flash 瀏覽:274
卸載聯想app哪個好 瀏覽:721
php文字轉圖片 瀏覽:332
豆客後台怎麼加密碼 瀏覽:575
jpg轉換pdf破解版 瀏覽:979
php基礎書籍推薦 瀏覽:779
伺服器與外網不通如何驗證 瀏覽:353
電子版是不是就是文件夾 瀏覽:52
游戲屬性文件加密 瀏覽:464
如何讓安卓手機桌面圖標下移 瀏覽:530
ubuntuphp5環境搭建 瀏覽:101