python並且
A. python里怎麼輸入n行,並且輸出n行
3行分別用3個input()接收。
另外你的n有實際作用嗎,是第2行長度不符合n的要求退出嗎
B. 為什麼python有兩個不同的版本,並且語法規
Python 2 和 Python 3,一直是一個話題。Brett Cannon 是 Python 的核心開發者,聽聽他關於 Python3 的看法。
本月我在 Puppy 上開展了一個問答活動(Puget Sound Python用戶組),讓我最終解釋了為什麼 Python 3 會出現以及整個的 string/bytes 處理機制。我因此受到贊揚這讓我很驚訝,因為原本我天真的認為大家都清楚為什麼 Python 3 會出現。回想起來我真是太傻,竟然認為大部分人(不管是剛接觸 Python 或者已經有一段時間)應該要麼已經被告知要麼有好奇心驅使去搜尋獲取一個解釋。所以這篇博文打算簡單的解釋一下為什麼 Python 3 會存在,特別是我們為什麼選擇打破整個向後兼容 unicode/str/bytes,因為這使得代碼移植到 Python 3 非常棘手。
在 Python 2 中文本和二進制數據是一個爛攤子
快,下面的文字代表什麼語義?
Python
1
'abcd'
如果你是 Python 3 的用戶,你會說它是一個按照 「a」、」b」、」c」、」d」順序包含四個字母的字元串。
如果你是 Python 2 的用戶,你也會說同樣的話。你同樣也可能會說它是代表 97、98、99、100 的數組。事實上在 Python 2中對於 str 代表的含義有兩種正確的回答,這改變了語言的初衷。所以在 Python 3 中答案是唯一的。
《Python之禪》里講「應該有一個「應該有一個––最好只有一個顯而易見的方式去實現」。文字既能代表文本數據又能代表二進制數據這很麻煩。一旦對象 脫離你的控制,你將無從知曉。比如,如果你從網路上讀到一些東西,你得小心判別這個 str 是代表二進制數據還是文本數據。或者你的代碼里有一個bug,它是用來將 str 變換成文本信息––或者完全別的東西––但你搞砸了,不小心跳過了這一步。由於 str 潛在的代表兩種類型,此類錯誤發生的時候,我們很難意識到。
也許你會說這些問題在 Python 2 中完全可以解決,只要你用 Unicode 而不是 str 去代表文本。雖然說的很對,但現實中人們不會那樣去做。人們要麼很懶,試著去避免解碼到 Unicode 帶來的額外工作,要麼對性能要求很高,不想因為解碼帶來額外的損失。無論哪種情況,它都假設你代碼足夠好而避免了那些麻煩,但我們都清楚人不是完美的都會犯錯。如果人們寄希望於在 Python 2 中寫出沒有 bug 的代碼能夠成真,我也不會總是聽到幾乎每個將他們的工程轉向 Python 3 的人講他們在代碼中間文本和二進制數據編解碼的潛在 bug。
避免 bug 是一件很重要的事情,但卻經常被人遺忘。簡化語言以及移除 str 可能代表的模糊含義會減少代碼的出錯率。《Python 之禪》指出「顯勝於隱」的一個原因是: 歧義和隱性知識使得代碼不容易溝通,進而容易出錯,導致 bug。通過迫使開發者明確地分離出他們的二進制數據和文本數據,會使代碼減少某一類的 bug。
其他語言都已經完全支持 Unicode(出於好的初衷)
人們有時會忘記 Python 有多久的歷史了:Guido 在1989年12月開始編寫 Python,在1991年2月開源發布。這意味著它早於在1991年10月發布的第一版 Unicode 標准。在接下來幾年中,晚於 Unicode 標准出現的語言都選擇在支持 Unicode 編碼的基礎上實現自己的 str 類型。這讓 Python 2 處於尷尬的境地。直到2004年開始引發關注(那時 Python 3 開始醞釀),但它爭辯說對於Unicode文本的弱支持是基於unicode 完全可選 ,人們不會在所有的文本信息上使用它。
支持 Unicode 和來自任何語言的的文本是非常重要的。Python 是一門面向世界的語言,而不只是那些支持 ASCII 碼覆蓋的羅馬數字的語言。這就是為什麼 Python 3 在處理文本時選擇「要麼使用 Unicode,要麼就乾脆不支持」的原因。官方宣稱所有的 Python 3 代碼都將支持世界上的每一個人,無論寫代碼的開發者是否有著明確的意圖。在 Python 2 中,按照能夠正確支持 Unicode 類型文本信息將項目分為兩類;在 Python 3 中則不存在此類問題,並且它支持所有語言。
我們設想 Python 將更越來越受歡迎
在2004年我們開始編寫 PEP 3000 進而開始設計 Python 3 (註:PEP 最初編號為 3000,但我們把它重新編號為 3100,這樣我們就可以藉助 編號 3000 的 PEP 來開發 Python 3)。我們清楚 Python 的受歡迎程度在不斷上升,我們也希望能夠延續這種勢頭(謝天謝地,目前如此)。但這也同時意味著如果我們想及時修正所有的設計缺陷來保證它的受歡迎度,最好趁現在而不是以後。我們設想 Python 3 相較於 Python 2 會持續更長一段時間,而 Python 2.7 僅僅是用來維護以前遺留的項目,而不會用於新項目中,那用 Python 3 寫出的代碼一定會多於用 Python 2 的。所以我們決定來承受由 Python 2 向 3 轉型之痛。並且在這種設想下開發了 Python 3。想要知道 Python 3 的代碼量能否趕超 Python 2,很顯然需要數十年時間。
我們再也不會做這種打破向後兼容性的事情
我們團隊已經下定決心再也不會讓諸如 unicode/str/bytes 這樣重大的改變隨意發生。當我們決心開始 Python 3 的時候,我們設想同時希望社區能夠像 Python 做的那般並且發布支持 Python 2的最終版本,接著切換到 Python 3 的功能開發中,只對 Python 2 做bug修復版本。這顯然沒有發生,同時也給我們上了一課。加上我們也沒有發現在語言的基礎設計中間存在需要做出如此重大改變來滿足需要的缺陷。也希望 Python 4 不要發生比從標准庫中移除廢棄模塊更激烈的改變。
結論
這就是 Python 3 為什麼是這個樣子的原因。我們意識到很多 bug 都是由於在 Python 2 中對 str 類型超負荷的使用。所以我們在 Python 3 中通過將文本數據和二進制數據分離來修正它。它也促使所有的文本信息都支持 Unicode,從而使得工程更容易在多種語言下工作。我們做出了改變,因為我們明白這種改變越早越好。我們在轉型期曾經認為社區最終會摒棄 Python 2 和我們一道,但結局並非如此,相反我們花費了更多時間並且用一個 Python 2/3 的兼容子集來實現這種過渡。
C. 我想問下python中 邏輯與:「&」和「and」的區別
1、「&」和「and」有本質區別,屬於不同類型的運行符號。& 是位運算;and 是邏輯運算。
2、首先是&:該運輸符屬於字元串的連接運算符,例如,「w「&」c「結果為字元串」wc「。
3、and屬於邏輯運算符,表示邏輯與運算,其規則是有假取假,全真為真。例如,true and false結果為false,true and true結果為true。
(3)python並且擴展閱讀
Python的設計哲學是「優雅」、「明確」、「簡單」。因此,Perl語言中「總是有多種方法來做同一件事」的理念在Python開發者中通常是難以忍受的。Python開發者的哲學是「用一種方法,最好是只有一種方法來做一件事」。
在設計Python語言時,如果面臨多種選擇,Python開發者一般會拒絕花俏的語法,而選擇明確的沒有或者很少有歧義的語法。
由於這種設計觀念的差異,Python源代碼通常被認為比Perl具備更好的可讀性,並且能夠支撐大規模的軟體開發。這些准則被稱為Python格言。在Python解釋器內運行import this可以獲得完整的列表。
Python開發人員盡量避開不成熟或者不重要的優化。一些針對非重要部位的加快運行速度的補丁通常不會被合並到Python內。所以很多人認為Python很慢。
不過,根據二八定律,大多數程序對速度要求不高。在某些對運行速度要求很高的情況,Python設計師傾向於使用JIT技術,或者用使用C/C++語言改寫這部分程序。可用的JIT技術是PyPy。
Python是完全面向對象的語言。函數、模塊、數字、字元串都是對象。並且完全支持繼承、重載、派生、多繼承,有益於增強源代碼的復用性。
Python支持重載運算符和動態類型。相對於Lisp這種傳統的函數式編程語言,Python對函數式設計只提供了有限的支持。有兩個標准庫(functools, itertools)提供了Haskell和Standard ML中久經考驗的函數式程序設計工具。
雖然Python可能被粗略地分類為「腳本語言」(script language),但實際上一些大規模軟體開發計劃例如Zope、Mnet及BitTorrent,Google也廣泛地使用它。
Python的支持者較喜歡稱它為一種高級動態編程語言,原因是「腳本語言」泛指僅作簡單程序設計任務的語言,如shellscript、VBScript等只能處理簡單任務的編程語言,並不能與Python相提並論。
Python本身被設計為可擴充的。並非所有的特性和功能都集成到語言核心。Python提供了豐富的API和工具,以便程序員能夠輕松地使用C語言、C++、Cython來編寫擴充模塊。Python編譯器本身也可以被集成到其它需要腳本語言的程序內。
因此,很多人還把Python作為一種「膠水語言」(glue language)使用。使用Python將其他語言編寫的程序進行集成和封裝。在Google內部的很多項目,例如Google Engine使用C++編寫性能要求極高的部分,然後用Python或Java/Go調用相應的模塊。
《Python技術手冊》的作者馬特利(Alex Martelli)說:「這很難講,不過,2004 年,Python 已在Google內部使用,Google 召募許多 Python 高手,但在這之前就已決定使用Python,
他們的目的是 Python where we can, C++ where we must,在操控硬體的場合使用 C++,在快速開發時候使用 Python。」
D. python注釋符號是什麼
Python中的注釋有單行注釋和多行注釋,Python中單行注釋以#符號開頭,多行注釋用三個單引號'''符號或者三個雙引號"""符號將注釋括起來。
一、python單行注釋符號(#):井號(#)常被用作單行注釋符號,在代碼中使用#時,它右邊的任何數據都會被忽略,當做是注釋。print 1 #輸出1,#號右邊的內容在執行的時候是不會被輸出的。
二、批量、多行注釋符號:在python中也會有注釋有很多行的時候,這種情況下就需要批量多行注釋符了。多行注釋是用三引號''' '''包含的。
python正則表達式的注釋方法:學過正則都知道,那簡直是天書,為了提高正則的可讀性,正則表達式中提供了X(VERBOSE): 詳細模式。這個模式下正則表達式可以是多行,忽略空白字元,並可以加入注釋。
基本語法
Python的設計目標之一是讓代碼具備高度的可閱讀性。它設計時盡量使用其它語言經常使用的標點符號和英文單字,讓代碼看起來整潔美觀。它不像其他的靜態語言如C、Pascal那樣需要重復書寫聲明語句,也不像它們的語法那樣經常有特殊情況和意外。
Python開發者有意讓違反了縮進規則的程序不能通過編譯,以此來強製程序員養成良好的編程習慣。並且Python語言利用縮進表示語句塊的開始和退出(Off-side規則),而非使用花括弧或者某種關鍵字。增加縮進表示語句塊的開始,而減少縮進則表示語句塊的退出。
E. 編程語言python入門要學習哪些
學習python,主要學習ython基礎語法、數據類型、字元編碼、文件操作、函數、裝飾器、迭代器、內置方法、常用模塊等;之後再進階學習,如框架等。
階段一:Python開發基礎
Python全棧開發與人工智慧之Python開發基礎知識學習內容包括:Python基礎語法、數據類型、字元編碼、文件操作、函數、裝飾器、迭代器、內置方法、常用模塊等。
階段二:Python高級編程和資料庫開發
Python全棧開發與人工智慧之Python高級編程和資料庫開發知識學習內容包括:面向對象開發、Socket網路編程、線程、進程、隊列、IO多路模型、Mysql資料庫開發等。
階段三:前端開發
Python全棧開發與人工智慧之前端開發知識學習內容包括:Html、CSS、JavaScript開發、Jquery&bootstrap開發、前端框架VUE開發等。(更多學習內容,請點擊Python學習網)
階段四:WEB框架開發
Python全棧開發與人工智慧之WEB框架開發學習內容包括:Django框架基礎、Django框架進階、BBS+Blog實戰項目開發、緩存和隊列中間件、Flask框架學習、Tornado框架學習、Restful API等。
階段五:爬蟲開發
Python全棧開發與人工智慧之爬蟲開發學習內容包括:爬蟲開發實戰。
階段六:全棧項目實戰
Python全棧開發與人工智慧之全棧項目實戰學習內容包括:企業應用工具學習、CRM客戶關系管理系統開發、路飛學城在線教育平台開發等。
階段七:數據分析
Python全棧開發與人工智慧之數據分析學習內容包括:金融量化分析。
階段八:人工智慧
Python全棧開發與人工智慧之人工智慧學習內容包括:機器學習、圖形識別、無人機開發、無人駕駛等。
階段九:自動化運維&開發
Python全棧開發與人工智慧之自動化運維&開發學習內容包括:CMDB資產管理系統開發、IT審計+主機管理系統開發、分布式主機監控系統開發等。
階段十:高並發語言GO開發
Python全棧開發與人工智慧之高並發語言GO開發學習內容包括:GO語言基礎、數據類型與文件IO操作、函數和面向對象、並發編程等。
相關信息:
Python的設計目標之一是讓代碼具備高度的可閱讀性。它設計時盡量使用其它語言經常使用的標點符號和英文單字,讓代碼看起來整潔美觀。它不像其他的靜態語言如C、Pascal那樣需要重復書寫聲明語句,也不像它們的語法那樣經常有特殊情況和意外。
Python開發者有意讓違反了縮進規則的程序不能通過編譯,以此來強製程序員養成良好的編程習慣。並且Python語言利用縮進表示語句塊的開始和退出(Off-side規則),而非使用花括弧或者某種關鍵字。增加縮進表示語句塊的開始,而減少縮進則表示語句塊的退出。縮進成為了語法的一部分。
F. python演算法有哪些
Python演算法的特徵
1. 有窮性:演算法的有窮性指演算法必須能在執行有限個步驟之後終止;
2. 確切性:演算法的每一步驟必須有確切的定義;
3. 輸入項:一個演算法有0個或多個輸入,以刻畫運算對象的初始情況,所謂0個輸入是指演算法本身定出了初始條件;
4. 輸出項:一個演算法有一個或多個輸出,以反映對輸入數據加工後的結果,沒有輸出的演算法是毫無意義的;
5. 可行性:演算法中執行的任何計算步驟都是可以被分解為基本的可執行操作步,即每個計算步都可以在有限時間內完成;
6. 高效性:執行速度快、佔用資源少;
7. 健壯性:數據響應正確。
Python演算法分類:
1.
冒泡排序:是一種簡單直觀的排序演算法。重復地走訪過要排序的數列,一次比較兩個元素,如果順序錯誤就交換過來。走訪數列的工作是重復地進行直到沒有再需要交換,也就是說該排序已經完成。
2.
插入排序:沒有冒泡排序和選擇排序那麼粗暴,其原理最容易理解,插入排序是一種最簡單直觀的排序演算法啊,它的工作原理是通過構建有序序列,對於未排序數據在已排序序列中從後向前排序,找到對應位置。
3.
希爾排序:也被叫做遞減增量排序方法,是插入排序的改進版本。希爾排序是基於插入排序提出改進方法的排序演算法,先將整個待排序的記錄排序分割成為若干個子序列分別進行直接插入排序,待整個序列中的記錄基本有序時,再對全記錄進行依次直接插入排序。
4. 歸並排序:是建立在歸並操作上的一種有效的排序演算法。該演算法是採用分治法Divide and的一個非常典型的應用。
5. 快速排序:由東尼·霍爾所發展的一種排序演算法。又是一種分而治之思想在排序演算法上的典型應用,本質上快速排序應該算是冒泡排序基礎上的遞歸分治法。
6.
堆排序:是指利用堆這種數據結構所設計的一種排序演算法。堆積是一個近似完全二叉樹的結構,並同時滿足堆積的性質,即子結點的鍵值或索引總是小於它的父結點。
7.
計算排序:其核心在於將輸入的數據值轉化為鍵存儲在額外開辟的數組空間中,作為一種線性時間復雜度的排序,計算排序要求輸入的數據必須是具有確定范圍的整數。
G. python語言的用途
一、Web開發
Python誕生時間比Web還早,由於Python是一種解釋型的腳本語言,開發效率很高,所以非常適合用於Web開發,像Django和Flask這樣基於Python的Web框架,最近在Web開發中變得越來越流行。
二、網路爬蟲
許多人喜歡編程的原因,網路爬蟲是Python非常常用的一個場景,帶動了整個Python語言的發展,現在使用Python收集網上的資源比以前容易多了,比如可以再各大網站爬取商品信息、爬取音樂某一類歌曲的所有評論、按條件篩選獲得豆瓣的電影書籍信息並生成表格。
三、人工智慧
是非常火的一個方面,讓Python語言充滿了無限的潛力,並且Python非常適合人工智慧領域,比如numpy、scipy可以做數值計算,sklearn做機器學習,pybrain做神經網路,matplotlib將數據可視化,數據挖掘、機器學習、神經網路、深度學習等方面都是主流的編程語言,得到了廣泛的支持和應用。
四、數據分析
Python有完備的生態環境,大數據分析中涉及到的分布式計算、數據可視化、資料庫操作等,Python都有成熟的模塊可以完成其功能,無論對於數據科學家還是對於數據工程師而言,都是十分便利的。
五、自動化運維
Python能滿足絕大部分自動化運維的需求,既能做後端C/S架構,還能用Web框架快速開發處Web界面,當開發者有能力做出一套運維自動化系統的時候,自身的價值就會大大體現出來。
H. python是一種什麼類型的編程語言
python是一種廣泛使用的具有動態語義的解釋型,面向對象的高級編程語言。
Python是一種面向對象的高級編程語言,具有集成的動態語義,主要用於Web和應用程序開發。它在快速應用程序開發領域極具吸引力,因為它提供動態類型和動態綁定選項。
Python是一種解釋型語言,這意味著用Python編寫的程序不需要事先編譯就可以運行,從而可以輕松地測試小段代碼並使用Python編寫的代碼更容易在平台之間移動。
Python相對簡單,因此它易於學習,因為它需要一種專注於可讀性的獨特語法。開發人員可以比其他語言更輕松地閱讀和翻譯Python代碼。反過來,這降低了程序維護和開發的成本,因為它允許團隊協作工作而沒有重大的語言和經驗障礙。
Python支持使用模塊和包,這意味著程序可以以模塊化的方式設計,代碼可以在各種項目中重用。一旦您開發了所需的模塊或軟體包,就可以對其進行擴展以便在其他項目中使用,並且可以輕松導入或導出這些模塊。
I. python中如何創建一個類 並且調用內部方法 3.6版本
classMyClass:
deffun(self):
return'helloworld'
x=MyClass()
y=x.fun()
print(y)#helloworld
J. python讀取兩個文件並且判斷是否一致
'''判斷兩個文件是否相同,如果不同請指出第幾行不相同'''def f1vsf2(name1,name2):
f1 = open(name1)
f2 = open(name2)
count = 1
msg=[] for line1 in f1:
line2 = f2.readline() if(line1!=line2):
msg.append("第%d行不一樣"%count)
count+=1
f1.close()
f2.close() return msg
isbool = Truewhile isbool:
fname1 = input("請輸入要比較的文件1路徑及文件名:") if fname1 =='': print("文件名不能請重新輸入") break;
fname2 = input("請輸入要比較的文件2路徑及文件名:") if fname2 =='': print("文件名不能請重新輸入") break;
result = f1vsf2(fname1,fname2) if len(result)==0: print("兩個文件完全一致") else: print("兩個文件共有【%d】行不同"%len(result)) for msg in result: print(msg)
isbool = False