參見1html
參見2前端
CPU(大腦) 3GHZ + 內存(DDR4) + 主板 + 電源(心臟)
+ 顯示器 + 鍵盤 +鼠標+ 顯卡 + 硬盤 80MB/s
操做系統:
windows 家用
linux 服務器
macOS 家用+服務器
計算機是一個高度集成的電子電路
高低電平. 二進制
二進制沒有2 -> 0 1
八進制沒有8 -> 0-7
十進制沒有10 -> 0-9
十六進制沒有16 -> 0-9 A-F
顯卡 :
1. NAVID 看型號。
2. AMD 圖形處理python
編程語言整體分覺得機器語言、彙編語言、高級語言,以下:linux
機器語言程序員
因爲計算機內部只能接受二進制代碼,所以,用二進制代碼0和1描述的指令稱爲機器指令,所有機器指令的集合構成計算機的機器語言,用機器語言編程的程序稱爲目標程序。只有目標程序才能被計算機直接識別和執行。web
彙編語言shell
彙編語言的實質和機器語言是相同的,都是直接對硬件操做,只不過指令採用了英文縮寫的標識符,更容易識別和記憶。數據庫
高級語言編程
高級語言所編制的程序不能直接被計算機識別,必須通過轉換才能被執行,按轉換方式可將它們分爲兩類:flask
編譯類:編譯是指在應用源程序執行以前,就將程序源代碼「翻譯」成目標代碼(機器語言),所以其目標程序能夠脫離其語言環境獨立執行(編譯後生成的可執行文件,是cpu能夠理解的2進制的機器碼組成的),使用比較方便、效率較高。但應用程序一旦須要修改,必須先修改源代碼,再從新編譯生成新的目標文件(* .obj,也就是OBJ文件)才能執行,只有目標文件而沒有源代碼,修改很不方便。編譯後程序運行時不須要從新翻譯,直接使用編譯的結果就好了。程序執行效率高,依賴編譯器,跨平臺性差些。如C、C++、Delphi等
解釋類:執行方式相似於咱們平常生活中的「同聲翻譯」,應用程序源代碼一邊由相應語言的解釋器「翻譯」成目標代碼(機器語言),一邊執行,所以效率比較低,並且不能生成可獨立執行的可執行文件,應用程序不能脫離其解釋器(想運行,必須先裝上解釋器,就像跟老外說話,必須有翻譯在場),但這種方式比較靈活,能夠動態地調整、修改應用程序。如Python、Java、PHP、Ruby等語言。
機器語言
優勢是最底層,速度最快,缺點是最複雜,開發效率最低
彙編語言
優勢是比較底層,速度最快,缺點是複雜,開發效率最低
高級語言
編譯型語言執行速度快,不依賴語言環境運行,跨平臺差
解釋型跨平臺好,一份代碼,處處使用,缺點是執行速度慢,依賴解釋器運行
編譯型
優勢:編譯器通常會有預編譯的過程對代碼進行優化。由於編譯只作一次,運行時不須要編譯,因此編譯型語言的程序執行效率高。能夠脫離語言環境獨立運行。
缺點:編譯以後若是須要修改就須要整個模塊從新編譯。編譯的時候根據對應的運行環境生成機器碼,不一樣的操做系統之間移植就會有問題,須要根據運行的操做系統環境編譯不一樣的可執行文件。
解釋型
優勢:有良好的平臺兼容性,在任何環境中均可以運行,前提是安裝瞭解釋器(虛擬機)。靈活,修改代碼的時候直接修改就能夠,能夠快速部署,不用停機維護。
缺點:每次運行的時候都要解釋一遍,性能上不如編譯型語言。
⭕️編譯與解釋 編譯是將源程序翻譯成可執行的目標代碼,翻譯與執行是分開的;而解釋是對源程序的翻譯與執行一次性完成,不生成可存儲的目標代碼。這只是表象,兩者背後的最大區別是:對解釋執行而言,程序運行時的控制權在解釋器而不在用戶程序;對編譯執行而言,運行時的控制權在用戶程序。 解釋具備良好的動態特性和可移植性,好比在解釋執行時能夠動態改變變量的類型、對程序進行修改以及在程序中插入良好的調試診斷信息等,而將解釋器移植到不一樣的系統上,則程序不用改動就能夠在移植瞭解釋器的系統上運行。同時解釋器也有很大的缺點,好比執行效率低,佔用空間大,由於不只要給用戶程序分配空間,解釋器自己也佔用了寶貴的系統資源。 編譯器是把源程序的每一條語句都編譯成機器語言,並保存成二進制文件,這樣運行時計算機能夠直接以機器語言來運行此程序,速度很快; 而解釋器則是隻在執行程序時,才一條一條的解釋成機器語言給計算機來執行,因此運行速度是不如編譯後的程序運行的快的. ⭕️編譯型和解釋型 咱們先看看編譯型,其實它和彙編語言是同樣的:也是有一個負責翻譯的程序來對咱們的源代碼進行轉換,生成相對應的可執行代碼。這個過程說得專業一點,就稱爲編譯(Compile),而負責編譯的程序天然就稱爲編譯器(Compiler)。若是咱們寫的程序代碼都包含在一個源文件中,那麼一般編譯以後就會直接生成一個可執行文件,咱們就能夠直接運行了。但對於一個比較複雜的項目,爲了方便管理,咱們一般把代碼分散在各個源文件中,做爲不一樣的模塊來組織。這時編譯各個文件時就會生成目標文件(Object file)而不是前面說的可執行文件。通常一個源文件的編譯都會對應一個目標文件。這些目標文件裏的內容基本上已是可執行代碼了,但因爲只是整個項目的一部分,因此咱們還不能直接運行。待全部的源文件的編譯都大功告成,咱們就能夠最後把這些半成品的目標文件「打包」成一個可執行文件了,這個工做由另外一個程序負責完成,因爲此過程好像是把包含可執行代碼的目標文件鏈接裝配起來,因此又稱爲連接(Link),而負責連接的程序就叫……就叫連接程序(Linker)。連接程序除了連接目標文件外,可能還有各類資源,像圖標文件啊、聲音文件啊什麼的,還要負責去除目標文件之間的冗餘重複代碼,等等,因此……也是挺累的。連接完成以後,通常就能夠獲得咱們想要的可執行文件了。 上面咱們大概地介紹了編譯型語言的特色,如今再看看解釋型。噢,從字面上看,「編譯」和「解釋」的確都有「翻譯」的意思,它們的區別則在於翻譯的時機安排不大同樣。打個比方:假如你打算閱讀一本外文書,而你不知道這門外語,那麼你能夠找一名翻譯,給他足夠的時間讓他從頭至尾把整本書翻譯好,而後把書的母語版交給你閱讀;或者,你也馬上讓這名翻譯輔助你閱讀,讓他一句一句給你翻譯,若是你想往回看某個章節,他也得從新給你翻譯。 兩種方式,前者就至關於咱們剛纔所說的編譯型:一次把全部的代碼轉換成機器語言,而後寫成可執行文件;然後者就至關於咱們要說的解釋型:在程序運行的前一刻,還只有源程序而沒有可執行程序;而程序每執行到源程序的某一條指令,則會有一個稱之爲解釋程序的外殼程序將源代碼轉換成二進制代碼以供執行,總言之,就是不斷地解釋、執行、解釋、執行……因此,解釋型程序是離不開解釋程序的。像早期的BASIC就是一門經典的解釋型語言,要執行BASIC程序,就得進入BASIC環境,而後才能加載程序源文件、運行。解釋型程序中,因爲程序老是以源代碼的形式出現,所以只要有相應的解釋器,移植幾乎不成問題。編譯型程序雖然源代碼也能夠移植,但前提是必須針對不一樣的系統分別進行編譯,對於複雜的工程來講,的確是一件不小的時間消耗,何況極可能一些細節的地方仍是要修改源代碼。並且,解釋型程序省卻了編譯的步驟,修改調試也很是方便,編輯完畢以後便可當即運行,沒必要像編譯型程序同樣每次進行小小改動都要耐心等待漫長的Compiling…Linking…這樣的編譯連接過程。不過凡事有利有弊,因爲解釋型程序是將編譯的過程放到執行過程當中,這就決定了解釋型程序註定要比編譯型慢上一大截,像幾百倍的速度差距也是不足爲奇的。 編譯型與解釋型,二者各有利弊。前者因爲程序執行速度快,同等條件下對系統要求較低,所以像開發操做系統、大型應用程序、數據庫系統等時都採用它,像C/C++、Pascal/Object Pascal(Delphi)、VB等基本均可視爲編譯語言,而一些網頁腳本、服務器腳本及輔助開發接口這樣的對速度要求不高、對不一樣系統平臺間的兼容性有必定要求的程序則一般使用解釋性語言,如Java、JavaScript、VBScript、Perl、Python等等。 但既然編譯型與解釋型各有優缺點又相互對立,因此一批新興的語言都有把二者折衷起來的趨勢,例如Java語言雖然比較接近解釋型語言的特徵,但在執行以前已經預先進行一次預編譯,生成的代碼是介於機器碼和Java源代碼之間的中介代碼,運行的時候則由JVM(Java的虛擬機平臺,可視爲解釋器)解釋執行。它既保留了源代碼的高抽象、可移植的特色,又已經完成了對源代碼的大部分預編譯工做,因此執行起來比「純解釋型」程序要快許多。而像VB6(或者之前版本)、C#這樣的語言,雖然表面上看生成的是.exe可執行程序文件,但VB6編譯以後實際生成的也是一種中介碼,只不過編譯器在前面安插了一段自動調用某個外部解釋器的代碼(該解釋程序獨立於用戶編寫的程序,存放於系統的某個DLL文件中,全部以VB6編譯生成的可執行程序都要用到它),以解釋執行實際的程序體。C#(以及其它.net的語言編譯器)則是生成.net目標代碼,實際執行時則由.net解釋系統(就像JVM同樣,也是一個虛擬機平臺)進行執行。固然.net目標代碼已經至關「低級」,比較接近機器語言了,因此仍將其視爲編譯語言,並且其可移植程度也沒有Java號稱的這麼強大,Java號稱是「一次編譯,處處執行」,而.net則是「一次編碼,處處編譯」。呵呵,固然這些都是題外話了。總之,隨着設計技術與硬件的不斷髮展,編譯型與解釋型兩種方式的界限正在不斷變得模糊。 ⭕️動態語言和靜態語言 一般咱們所說的動態語言、靜態語言是指動態類型語言和靜態類型語言。 (1)動態類型語言:動態類型語言是指在運行期間纔去作數據類型檢查的語言,也就是說,在用動態類型的語言編程時,永遠也不用給任何變量指定數據類型,該語言會在你第一次賦值給變量時,在內部將數據類型記錄下來。Python和Ruby就是一種典型的動態類型語言,其餘的各類腳本語言如VBScript也多少屬於動態類型語言。 (2)靜態類型語言:靜態類型語言與動態類型語言恰好相反,它的數據類型是在編譯其間檢查的,也就是說在寫程序時要聲明全部變量的數據類型,C/C++是靜態類型語言的典型表明,其餘的靜態類型語言還有C#、JAVA等。 ⭕️強類型定義語言和弱類型定義語言 (1)強類型定義語言:強制數據類型定義的語言。也就是說,一旦一個變量被指定了某個數據類型,若是不通過強制轉換,那麼它就永遠是這個數據類型了。舉個例子:若是你定義了一個整型變量a,那麼程序根本不可能將a看成字符串類型處理。強類型定義語言是類型安全的語言。 (2)弱類型定義語言:數據類型能夠被忽略的語言。它與強類型定義語言相反, 一個變量能夠賦不一樣數據類型的值。 強類型定義語言在速度上可能略遜色於弱類型定義語言,可是強類型定義語言帶來的嚴謹性可以有效的避免許多錯誤。另外,「這門語言是否是動態語言」與「這門語言是否類型安全」之間是徹底沒有聯繫的!例如:Python是動態語言,是強類型定義語言(類型安全的語言); VBScript是動態語言,是弱類型定義語言(類型不安全的語言); JAVA是靜態語言,是強類型定義語言(類型安全的語言)。 經過上面這些介紹,咱們能夠得出,python是一門動態解釋性的強類型定義語言。
有個權威的語言排名網站(https://www.tiobe.com/tiobe-index/),能夠看到主流的編程語言是哪些,如下是長期語言排名:
下面介紹下幾個主流的編程語言:
C語言:
C語言是一種計算機程序設計語言,它既具備高級語言的特色,又具備彙編語言的特色。它由美國貝爾研究所的D.M.Ritchie於1972年推出,1978年後,C語言已前後被移植到大、中、小及微型機上,它能夠做爲工做系統設計語言,編寫系統應用程序,也能夠做爲應用程序設計語言,編寫不依賴計算機硬件的應用程序。它的應用範圍普遍,具有很強的數據處理能力,不只僅是在軟件開發上,並且各種科研都須要用到C語言,適於編寫系統軟件,三維,二維圖形和動畫,具體應用好比單片機以及嵌入式系統開發。
C++:
C++是C語言的繼承的擴展,它既能夠進行C語言的過程化程序設計,又能夠進行以抽象數據類型爲特色的基於對象的程序設計,還能夠進行以繼承和多態爲特色的面向對象的程序設計。C++擅長面向對象程序設計的同時,還能夠進行基於過程的程序設計,於是C++就適應的問題規模而論,大小由之。
C++不只擁有計算機高效運行的實用性特徵,同時還致力於提升大規模程序的編程質量與程序設計語言的問題描述能力。
JAVA:
Java是一種能夠撰寫跨平臺應用軟件的面向對象的程序設計語言,是由Sun Microsystems公司於1995年5月推出的Java程序設計語言和Java平臺(即JavaSE, JavaEE, JavaME)的總稱。Java 技術具備卓越的通用性、高效性、平臺移植性和安全性,普遍應用於我的PC、數據中心、遊戲控制檯、科學超級計算機、移動電話和互聯網,同時擁有全球最大的開發者專業社羣。在全球雲計算和移動互聯網的產業環境下,Java更具有了顯著優點和廣闊前景。
PHP:
PHP(外文名:PHP: Hypertext Preprocessor,中文名:「超文本預處理器」)是一種通用開源腳本語言。語法吸取了C語言、Java和Perl的特色,利於學習,使用普遍,主要適用於Web開發領域
GO:
Go 是一個開源的編程語言,它能讓構造簡單、可靠且高效的軟件變得容易。
Go是從2007年底由Robert Griesemer, Rob Pike, Ken Thompson主持開發,後來還加入了Ian Lance Taylor, Russ Cox等人,並最終於2009年11月開源,在2012年早些時候發佈了Go 1穩定版本。如今Go的開發已是徹底開放的,而且擁有一個活躍的社區。尤爲擅長併發編程
Python:
Python是一門優秀的綜合語言, Python的宗旨是簡明、優雅、強大,在人工智能、雲計算、金融分析、大數據開發、WEB開發、自動化運維、測試等方向應用普遍,已經是全球第4大最流行的語言。
python的創始人爲吉多·範羅蘇姆(Guido van Rossum)。1989年的聖誕節期間,Guido開始寫Python語言的編譯器。Python這個名字,來自Guido所摯愛的電視劇Monty Python’s Flying Circus。他但願這個新的叫作Python的語言,能符合他的理想:創造一種C和shell之間,功能全面,易學易用,可拓展的語言。
最新的TIOBE排行榜,Python佔據第4, Python崇尚優美、清晰、簡單,是一個優秀並普遍使用的語言。
Python能夠應用於衆多領域,如:數據分析、組件集成、網絡服務、圖像處理、數值計算和科學計算等衆多領域。目前業內幾乎全部大中型互聯網企業都在使用Python,如:Youtube、Dropbox、BT、Quora(中國知乎)、豆瓣、知乎、Google、Yahoo!、Facebook、NASA、百度、騰訊、汽車之家、美團等。
WEB開發——最火的Python web框架Django, 支持異步高併發的Tornado框架,短小精悍的flask,bottle, Django官方的標語把Django定義爲the framework for perfectionist with deadlines(大意是一個爲徹底主義者開發的高效率web框架)
網絡編程——支持高併發的Twisted網絡框架, py3引入的asyncio使異步編程變的很是簡單
爬蟲——爬蟲領域,Python幾乎是霸主地位,Scrapy\Request\BeautifuSoap\urllib等,想爬啥就爬啥
雲計算——目前最火最知名的雲計算框架就是OpenStack,Python如今的火,很大一部分就是由於雲計算
人工智能——誰會成爲AI 和大數據時代的第一開發語言?這本已經是一個不須要爭論的問題。若是說三年前,Matlab、Scala、R、Java 和 Python還各有機會,局面尚且不清楚,那麼三年以後,趨勢已經很是明確了,特別是前兩天 Facebook 開源了 PyTorch 以後,Python 做爲 AI 時代頭牌語言的位置基本確立,將來的懸念僅僅是誰能坐穩第二把交椅。
1989年,Guido開始寫Python語言的編譯器。
1991年,第一個Python編譯器誕生。它是用C語言實現的,並可以調用C語言的庫文件。從一出生,Python已經具備了:類,函數,異常處理,包含表和詞典在內的核心數據類型,以及模塊爲基礎的拓展系統。
Granddaddy of Python web frameworks, Zope 1 was released in 1999
Python 1.0 - January 1994 增長了 lambda, map, filter and reduce.
Python 2.0 - October 16, 2000,加入了內存回收機制,構成了如今Python語言框架的基礎
Python 2.4 - November 30, 2004, 同年目前最流行的WEB框架Django 誕生
Python 2.5 - September 19, 2006
Python 2.6 - October 1, 2008
Python 2.7 - July 3, 2010 #目前業內主流使用的工業版本依然是2.7
In November 2014, it was announced that Python 2.7 would be supported until 2020, and reaffirmed that there would be no 2.8 release as users were expected to move to Python 3.4+ as soon as possible(2014年11月,Python2.7將在2020年中止支持的消息被髮布,而且不會在發佈2.8版本,建議用戶儘量的遷移到3.4+)
Python 3.0 - December 3, 2008 (這裏要解釋清楚 爲何08年就出3.0,2010年反而又推出了2.7?是由於3.0不向下兼容2.0,致使你們都拒絕升級3.0,無奈官方只能推出2.7過渡版本)
Python 3.1 - June 27, 2009
Python 3.2 - February 20, 2011
Python 3.3 - September 29, 2012
Python 3.4 - March 16, 2014
Python 3.5 - September 13, 2015
Python 3.6 - 2016-12-23 發佈python3.6.0版
Python是一門解釋型語言,代碼想運行,必須經過解釋器執行,Python的解釋器自己也能夠看做是個程序(翻譯官司是哪國人不重要),這個程序是什麼語言開發的呢? 答案是好幾種語言? 由於Python有好幾種解釋器,分別基於不一樣語言開發,每一個解釋器特色不一樣,但都能正常運行咱們的Python代碼,下面分別來看下:
當咱們從Python官方網站下載並安裝好Python 2.7後,咱們就直接得到了一個官方版本的解釋器:CPython。這個解釋器是用C語言開發的,因此叫CPython。在命令行下運行python就是啓動CPython解釋器。CPython是使用最廣的Python解釋器。
IPython是基於CPython之上的一個交互式解釋器,也就是說,IPython只是在交互方式上有所加強,可是執行Python代碼的功能和CPython是徹底同樣的。比如不少國產瀏覽器雖然外觀不一樣,但內核其實都是調用了IE。
CPython用>>>做爲提示符,而IPython用In [序號]:做爲提示符。
PyPy是另外一個Python解釋器,它的目標是執行速度。PyPy採用JIT技術,對Python代碼進行動態編譯(注意不是解釋),因此能夠顯著提升Python代碼的執行速度。
絕大部分Python代碼均可以在PyPy下運行,可是PyPy和CPython有一些是不一樣的,這就致使相同的Python代碼在兩種解釋器下執行可能會有不一樣的結果。若是你的代碼要放到PyPy下執行,就須要瞭解PyPy和CPython的不一樣點。
Jython是運行在Java平臺上的Python解釋器,能夠直接把Python代碼編譯成Java字節碼執行。
IronPython和Jython相似,只不過IronPython是運行在微軟.Net平臺上的Python解釋器,能夠直接把Python代碼編譯成.Net的字節碼。
Python目前已支持全部主流操做系統,在Linux,Unix,Mac系統上自帶Python環境,在Windows系統上須要安裝一下。
官網下載連接:https://www.python.org/downloads/
更多安裝方法能夠參考 Python3的安裝
下面以 Windows 系統爲例,打開官網 https://www.python.org/downloads/windows/ 下載中心
下載以後雙擊打開,勾選上 Add to PATH就不用本身配置環境變量了。
以後一路默認 next 就安裝完成了。
安裝
下載地址:https://www.jetbrains.com/pycharm/download 選擇Professional 專業版
(但專業版是收費的,一年一千多,不便宜。怎麼辦?先百度再淘寶,不行問知乎。。。分享個破解插件)
註冊完成後啓動,會讓你先建立一個項目,其實就是一個文件夾,咱們之後的代碼都存在這裏面
你之後寫的項目可能有成百上千個代碼文件 ,全放在一塊兒可很差,因此通常把一樣功能的代碼放在一個目錄,咱們如今以天爲單位,爲天天的學習建立一個目錄day1,day2,day3...這樣
建立代碼文件
執行代碼
更多設置能夠參考pycharm 的基本使用和官方文檔
python程序有兩種編寫⽅方式:
1. 進入cmd控制檯. 輸入python進入編輯模式. 這時候咱們能夠直接編寫python程序
2. 也能夠在.py文件中編寫python代碼.經過python命令來執⾏python代碼
1 print("Hello World!")
變量:將運算的中間結果暫存到內存,以便便後續程序調⽤用. 變量的命名規則:
1, 變量由字⺟, 數字,下劃線搭配組合⽽而成
2, 不能夠用數字開頭,更不能是全數字
3,不能是pythond的關鍵字, 這些符號和字母已經被python佔用, 不能夠更改
4,不要用中⽂
5,名字要有意義
6,不要太⻓
7, 區分⼤小寫
8,推薦⼤你們使⽤用駝峯體或者下劃線命名駝峯體: 除⾸字母外的其餘每一個單詞首字⺟大寫
下劃線: 每一個單詞之間⽤下劃線分開
print(3+6) print("3+6 媽咪媽咪哄") # 被引號括起來的內容是字符串. 原樣輸出 # 註釋 用來標註代碼信息的, 被註釋的內容不會被執行 單行註釋 """ 多行註釋. ''' 或者 "" " 括起來的內容 """ # 變量 print(3 + 6) # 9 print((3+6)/5) print((3+6)/5 + 3) print(((3+6)/5 + 3) * 2) # 因爲算數優先級先算 */ 後算+- # 變量: 把程序運行過程當中產生的值. 暫時存儲在內存. 方便後面的程序調用 rng = 3+6 # 運算順序. 把3+6的結果賦值給前面的變量a print(rng/5) ig = rng/5 print(ig + 3) # 數學上的等價代換 x = 1024 * 768 y = x * 2 # 變量的名字 age = 20 length = 30 # 命名規範 # 1. 用數字.字母.下劃線組成 # 2. 不能用數字開頭. 更不能是純數字 # 3. 不能使用python的關鍵字 # 4. 不要用中文 # 5. 不要太長 # 前端除外 # 6. 要有意義 # 7. 區分大小寫 # 8. 推薦使用駝峯或者下劃線 # 每一個單詞的首字母大寫 # 用下劃線分隔每一個單詞 # AgeOfAlex = 88 # ageofalex = 88 # birthday_of_alex = 1888 # a = 10 # A = 20 # print(a) # print(A) # libaoku = "藥匣子" # alex_胡辣湯 = 88 # print(alex_胡辣湯) ''' 判斷下面的變量命名是否合法: __alex = 188 合法 _$_hehe = 11 不合法 __ = 22 合法 alex_胡辣湯 = 88 合法,可是不要使用中文 99_piyanping = 66 不合法 99gamaoling = 180 不合法 ganmaoling_999 = 18 合法 buganmaozenmeyong_ganmaoling = 66 合法可是不要太長 ''' # 常量通常全部字母都大寫 PI = 3.141592653 print(PI) PI = 3 print(PI) BIRTH_OF_ALEX = 1888 Q_HURT = 200
在python中不存在絕對的常量. 約定俗成, 全部字⺟大寫就是常量
例如: PI = 3.141592653
BIRTH_OF_SYLAR = 1990
有時候咱們寫的東⻄不⼀定都是給用戶看的. 或者不但願解釋器執行. 那咱們可使用#來 註釋掉代碼. 被註釋的內容是不會執⾏的.能夠⽅便後⾯的程序員來拜讀你的代碼
單⾏註釋: # 被註釋的內容
多⾏註釋:''' 被註釋的內容 ''', """這個也是多⾏註釋"""
常⻅見的數字都是int類型. 用於計算或者⼤小的比較
在32位機器上int的範圍是: -2**31~2**31-1,即-2147483648~2147483647
在64位機器上int的範圍是: -2**63~2**63-1,即-9223372036854775808~9223372036854775807
夠你⽤了吧. 注意這些是整數.
在 Python 中,凡是用引號引發來的,都是字符串.
字符串能夠用單引號,雙引號,或者三引號引發來,沒有什麼區別,只是一些特殊的格式須要用不同的引號.
好比:
msg = "My name is Alex , I'm 22 years old!" 這個就須要單雙引號配合。
msg = """
今天我想寫⾸首⼩小詩, 歌頌個人同桌, 你看他那烏⿊黑的短髮, 好像⼀一隻炸⽑毛雞。
"""
想多⾏賦值一個字符串,就須要三引號。
數字類型有 +-*/ 字符串有麼?
字符串只有 + *。
#字符串的拼接
s1 = 'a '
s2 = 'bc'
#print(s1 + s2)
#相乘 str*int
name = '堅強'
#print(name*8)
真或者假, True和False
# 1. 整數(int) integer 直接寫出數字就是整數 a = 10 # 查看變量的數據類型 type() print(type(a)) # <class 'int'> class類, 類型. 類別 # 可以執行的操做, + - * / % // ** print(1+2) print(1-2) print(1 * 2) print(1/2) print(10/3) # 計算機中是沒法準確的表示一個小數的 # 1-1000000000 明確的數字的個數的 # 0-1 0.01 0.1 0.001 0.0001 0.0000001 0.99 0.991 # 0.0001 * 100000 => 10 / 100000 print(10%3) # 10/3 = 3......1 # 幫咱們求某個數是不是xxx的倍數 print(5%2) # 不能整除 print(99999999999 % 100000000000000) # ??? 9999/10000 = 0....9999 print(10//3) # 整除. 地板除 # 2048 print(2**0) # 1 print(2**1) # 2 print(2**2) # 4 print(2**3) # 8 print(2**4) # 16 print(2**5) # 32 print(2**6) # 64 print(2**7) # 128 print(2**8) # 256 print(2**9) # 512 print(2**10) # 1024G = 1T # 字符串(str) string, 用單引號, 雙引號, 三引號引發來的內容都是字符串 a = """今每天氣不錯, 外面一點兒霧霾都沒有!""" print(type(a)) # 查看數據類型 <class 'str'> a = '牀前明月光, \n疑是地\n上霜, \n舉頭望明月, \n低頭思故鄉' # \n 轉義字符. 換行 print(a) # 字符串的相關操做(初步瞭解) # + 字符串的鏈接 # * 數字 字符串重複n次 a = "周杰倫" b = "昆凌" print(a + "不喜歡" + b) # 拼接操做 print(a + 10) # str和int不能相加 a = "alex" print(a*20) # 布爾值(bool) boolean 命題 True真命題, False假命題 # bool值用來作判斷的. 沒有操做 # alex是一我的 真的 # wusir是一個品德高尚的人 假的 a = 1>2 print(a) # False b = 33 > 22 print(b) print(type(a)) # <class 'bool'>
使用input()函數,可讓咱們和計算機互動起來
語法:
內容 = input(提示信息)
這里能夠直接獲取到用戶輸入的內容
print("開始") # = 賦值. 把等號右邊的內容賦值給左邊 s = input("這裏是input:") # input輸入. 讓用戶輸入一些內容. 程序會停在這句話. 阻塞. # input結束的時候. 會自動的收集到用戶輸入的內容. 把內容返回給前面的變量 print("結束") print("用戶輸入的內容是", s) # print能夠一次性打印多個內容 print("大哥", "你的", "表", "不錯") a = input("請輸入一個a:") # 獲取到的內容都是字符串 b = input("請輸入一個b:") # print(a + b) # 拼接 # 經過類型轉換把字符串轉換成int c = int(a) # int: 整數 把字符串轉化成int d = int(b) print(c + d) a = int(input("請輸入一個a:")) # 獲取到的內容都是字符串 b = int(input("請輸入一個b:")) # print(a + b) # 拼接 # 經過類型轉換把字符串轉換成int print(a + b) a = 10 b = 20 print(str(a) + str(b))
你在⽣活中是否是常常遇到各類選擇,好比玩⾊子,猜⼤小,⽐如選擇⾛走那條路路回家?Python程序中也會遇到這種狀況,這就⽤到了if語句。
# if 若是. 條件的判斷 ''' if 條件: if語句塊 當條件成立的時候會執行if語句塊, 若是條件不成立. 不執行語句塊的內容 ''' money = int(input("請輸入你兜裏的錢:")) # 300 # if..else if money > 500: print("吃燒烤") print("喝啤酒") print("找好朋友聊聊天") else: # 不然. 條件不成立 print("吃泡麪") print("蓋澆飯") print("老乾媽+饅頭") # if...elif...else if money > 500: print("吃燒烤") print("喝啤酒") print("找好朋友聊聊天") elif money > 400: # 不然. 若是xxxx print("火鍋") print("醬牛肉") print("鍋包肉") # elif money >10: # print("呵呵") elif money > 300: print("路邊攤") print("大寶劍") elif money > 200: print("麻辣香鍋") print("蓋澆飯") elif money > 100: print("烤冷麪") else: # 小於100 print("餓着") # if...elif...else 有一個成立了.其餘的都不走了 print("沒錢了") # 90 -> 優秀(A) # 80 -> 良好(B) # 70 -> 中等(C) # 60 -> 及格 # 60 如下 不及格 # 優秀, 良好, 中等, 及格, 不及格 score = int(input("請輸入你的分數:")) if score >= 90: print("優秀") elif score >= 80: print("良好") elif score >= 70: print("中等") elif score >= 60: print("及格") else: print("不及格") # if 嵌套 print("咣咣咣") gender = input("請輸入你的性別:") if gender == "男": # = 賦值 == 判斷 print("去隔壁. alex等着你") else: # 不是男 ask = input("請問是包租婆麼?") if ask == "是": print("去隔壁, alex等着你, wusir也在!") else: # 不是包租婆 height = int(input("請問你多高了")) if height > 200: print("太可怕了. 去隔壁, 去隔壁") else: print("西瓜又大又甜!") # 嵌套的層數不要太多. 通常不超過3-5層 # 弱類型 a = 10 print(type(a)) a = "胡辣湯" print(type(a))
第一種語法:
if 條件: #冒號是將條件與結果分開。
結果1。 # 四個空格,或者一個tab鍵,這個是告訴程序滿⾜這個條件的
結果2。
若是條件是真(True) 執⾏結果1, 而後結果2, 若是條件假(False) 直接結果2
第二種語法:
If 條件:
結果1
else:
結果2
代碼3
第三種語法:
If 條件1:
結果1
elif 條件2:
結果2
......
else:
結果n
第四種語法(嵌套):
If 條件1:
結果1
If 條件2:
結果2
else:
結果3
else:
結果4
能夠無限的嵌套. 可是在實際開發中,盡量不要超過三層嵌套
在生活中,咱們遇到過循環的事情吧?好比循環聽歌。在程序中,也是存在的,這就是流程空語句while。
模擬一下循環聽歌:
while True:
print('咱們不同')
print('咱們都同樣')
print('有啥不同')
語法:
while 條件:
結果
若是條件是真, 則直接執⾏結果. 而後再次判斷條件,直到條件是假,中止循環.
那咱們怎麼終止循環呢?
結束循環: 1,改變條件. 2,break
1, break: 馬上跳出循環. 打斷的意思
2, continue: 停⽌本次循環, 繼續執⾏下一次循環.
while True: content = input("請輸入你要噴的內容, 輸入Q退出") if content == "Q": # 退出程序 打斷循環 break # 直接跳出循環 print("你對打野說:", content) if True: print("娃哈哈") # 最多噴三次 count = 1 while count <= 3: # count = 1 # 次數, 死循環 content = input("請輸入你要噴的內容") print("你要對上單說:", content) # 改變count count = count + 1 # continue while True: content = input("請輸入你要噴的內容, 輸入Q退出") if content == "": continue # 中止當前本次循環. 繼續執行下一次循環 不會完全終止循環,只是中斷不會終止. if content == "Q": # 退出程序 打斷循環 break # 直接跳出循環 print("你對打野說:", content) # 可以讓循環退出: 1. break 2. 改變條件 # continue 中止當前本次循環. 繼續執行下一次循環 # break 完全的幹掉一個循環 # 讓程序從1數數, 數到100 count = 1 while count <= 100: print(count) # 1 count = count + 1 # 計算 1-100之間全部的數的和 sum = 0 # sum: 0 + 1 + 2 + 3 + 4....99 + 100 count = 1 # count: 1, 2, 3, 4, 99,100, 101 while count <= 100: sum = sum + count # 累加運算 count = count + 1 print(sum) # 數數. 1-100奇數 # 方法1 count = 1 while count <= 100: print(count) count = count + 2 # 方法2 count = 1 while count <= 100: if count % 2 == 1: print(count) else: print("偶數....") count = count + 1