1、cpu,內存,硬盤,操做系統介紹
CPU:中央處理器,至關於人大腦。 飛機html
內存:臨時存儲數據。 8g,16g。 高鐵
python
一、成本高;算法
二、斷電即消失;編程
硬盤:長期存儲大量的數據。 1T 512G等等 步行
存儲文件,視頻,等等。多線程
上面這三個都是計算機的硬件。
硬件之間不能直接轉移數據。
操做系統:管理,協調,計算機硬件與計算機軟件之間的'橋樑';編程語言
2、python2與python3的區別
python:優美,清晰,簡單。
python2x:
源碼重複,混亂,冗餘。
源碼不規範。
python3x: 源碼整合,優美,清晰,簡單ide
3、python是什麼樣的變成語言
編程語言主要從如下幾個角度爲進行分類,編譯型和解釋型、靜態語言和動態語言、強類型定義語言和弱類型定義語言,每一個分類表明什麼意思呢,咱們一塊兒來看一下。函數
編譯型與解釋型。工具
編譯器是把源程序的每一條語句都編譯成機器語言,並保存成二進制文件,這樣運行時計算機能夠直接以機器語言來運行此程序,速度很快; post
而解釋器則是隻在執行程序時,才一條一條的解釋成機器語言給計算機來執行,因此運行速度是不如編譯後的程序運行的快的.
這是由於計算機不能直接認識並執行咱們寫的語句,它只能認識機器語言(是二進制的形式)
編譯型語言與解釋型語言的優缺點
編譯型
優勢:編譯器通常會有預編譯的過程對代碼進行優化。由於編譯只作一次,運行時不須要編譯,因此編譯型語言的程序執行效率高。能夠脫離語言環境獨立運行。
缺點:編譯以後若是須要修改就須要整個模塊從新編譯。編譯的時候根據對應的運行環境生成機器碼,不一樣的操做系統之間移植就會有問題,須要根據運行的操做系統環境編譯不一樣的可執行文件。
解釋型
優勢:有良好的平臺兼容性,在任何環境中均可以運行,前提是安裝瞭解釋器(虛擬機)。靈活,修改代碼的時候直接修改就能夠,能夠快速部署,不用停機維護。
缺點:每次運行的時候都要解釋一遍,性能上不如編譯型語言。
4、python語言的優缺點
優勢:
- Python的定位是「優雅」、「明確」、「簡單」,因此Python程序看上去老是簡單易懂,初學者學Python,不但入門容易,並且未來深刻下去,能夠編寫那些很是很是複雜的程序。
- 開發效率很是高,Python有很是強大的第三方庫,基本上你想經過計算機實現任何功能,Python官方庫裏都有相應的模塊進行支持,直接下載調用後,在基礎庫的基礎上再進行開發,大大下降開發週期,避免重複造輪子。
- 高級語言————當你用Python語言編寫程序的時候,你無需考慮諸如如何管理你的程序使用的內存一類的底層細節
- 可移植性————因爲它的開源本質,Python已經被移植在許多平臺上(通過改動使它可以工 做在不一樣平臺上)。若是你當心地避免使用依賴於系統的特性,那麼你的全部Python程序無需修改就幾乎能夠在市場上全部的系統平臺上運行
- 可擴展性————若是你須要你的一段關鍵代碼運行得更快或者但願某些算法不公開,你能夠把你的部分程序用C或C++編寫,而後在你的Python程序中使用它們。
- 可嵌入性————你能夠把Python嵌入你的C/C++程序,從而向你的程序用戶提供腳本功能。
缺點:
- 速度慢,Python 的運行速度相比C語言確實慢不少,跟JAVA相比也要慢一些,所以這也是不少所謂的大牛不屑於使用Python的主要緣由,但其實這裏所指的運行速度慢在大多數狀況下用戶是沒法直接感知到的,必須藉助測試工具才能體現出來,好比你用C運一個程序花了0.01s,用Python是0.1s,這樣C語言直接比Python快了10倍,算是很是誇張了,可是你是沒法直接經過肉眼感知的,由於一個正常人所能感知的時間最小單位是0.15-0.4s左右,哈哈。其實在大多數狀況下Python已經徹底能夠知足你對程序速度的要求,除非你要寫對速度要求極高的搜索引擎等,這種狀況下,固然仍是建議你用C去實現的。
- 代碼不能加密,由於PYTHON是解釋性語言,它的源碼都是以名文形式存放的,不過我不認爲這算是一個缺點,若是你的項目要求源代碼必須是加密的,那你一開始就不該該用Python來去實現。
- 線程不能利用多CPU問題,這是Python被人詬病最多的一個缺點,GIL即全局解釋器鎖(Global Interpreter Lock),是計算機程序設計語言解釋器用於同步線程的工具,使得任什麼時候刻僅有一個線程在執行,Python的線程是操做系統的原生線程。在Linux上爲pthread,在Windows上爲Win thread,徹底由操做系統調度線程的執行。一個python解釋器進程內有一條主線程,以及多條用戶程序的執行線程。即便在多核CPU平臺上,因爲GIL的存在,因此禁止多線程的並行執行。關於這個問題的折衷解決方法,咱們在之後線程和進程章節裏再進行詳細探討。
當咱們編寫Python代碼時,咱們獲得的是一個包含Python代碼的以.py
爲擴展名的文本文件。要運行代碼,就須要Python解釋器去執行.py
文件。
因爲整個Python語言從規範到解釋器都是開源的,因此理論上,只要水平夠高,任何人均可以編寫Python解釋器來執行Python代碼(固然難度很大)。事實上,確實存在多種Python解釋器。
5、python的種類
Cpython:官方推薦的解釋器,他能夠將你的python代碼轉化成C語言識別的字節碼,。
Jpython: 他能夠將你的python代碼轉化成JAVA識別的字節碼,運行。
Ironpython: 他能夠將你的python代碼轉化成C#識別的字節碼,運行。
....
6、python2與python3的編碼
python2x:默認ASCII: 支持英文,字母,數字。
如何解決:python2x支持中文:
文件的首行:# -*- encoding: utf-8 -*-
文件的首行:# encoding: utf-8 兩種方法均可以
python3x: 默認utf-8: 識別中文,英文,字母,數字。
運行python的第一個程序;
一、win+R打開命令行窗口
二、輸入python+空格+文件路徑,回車運行你的python代碼;
進入python解釋器若想退出按 exit()
7、變量
變量:把程序運行的中間結果臨時的存在內存裏,以便後續的代碼調用。
變量的定義規則:
一、變量只能由 數字,字母,下劃線任意組合。
二、不能以數字開頭。
三、不能是python中的關鍵字。
1
|
[
'and'
,
'as'
,
'assert'
,
'break'
,
'class'
,
'continue'
,
'def'
,
'del'
,
'elif'
,
'else'
,
'except'
,
'exec'
,
'finally'
,
'for'
,
'from'
,
'global'
,
'if'
,
'import'
,
'in'
,
'is'
,
'lambda'
,
'not'
,
'or'
,
'pass'
,
'print'
,
'raise'
,
'return'
,
'try'
,
'while'
,
'with'
,
'yield'
]
|
四、變量要具備可描述性。
name = 'alex'
age = 73
五、變量不能使用中文。
六、變量不宜過長。
變量的命名:
#駝峯體 AgeOfOldboy = 56 NumberOfStudents = 80 #下劃線 age_of_oldboy = 56 number_of_students = 80
8、常量
常量即指不變的量,如pai 3.141592653..., 或在程序運行過程當中不會改變的量
常量的設置:所有大寫的變量,就是常量。
工做中: 你想設置一些變量不想讓別人修改,或者你在看別人代碼時,看到了一些所有大寫的變量,他就是常量。
9、註釋
單行註釋用;#被註釋內容
多行註釋用;'''被註釋內容'''
那麼都在哪裏應該添加註釋呢?
例子:
- 關鍵節點:或者一些難以理解的代碼加註釋;
- 文件:文件的描述
- 函數:函數的描述
- 類:類的描述
10、基礎數據類型初識
什麼是數據類型?
咱們人類能夠很容易的分清數字與字符的區別,可是計算機並不能呀,計算機雖然很強大,但從某種角度上看又很傻,除非你明確的告訴它,1是數字,「漢」是文字,不然它是分不清1和‘漢’的區別的,所以,在每一個編程語言裏都會有一個叫數據類型的東東,其實就是對經常使用的各類數據類型進行了明確的劃分,你想讓計算機進行數值運算,你就傳數字給它,你想讓他處理文字,就傳字符串類型給他。Python中經常使用的數據類型有多種,今天咱們暫只講3種, 數字、字符串、布爾類型
一、整數類型(int)
int(整型)
在32位機器上,整數的位數爲32位,取值範圍爲-2**31~2**31-1,即-2147483648~2147483647
在64位系統上,整數的位數爲64位,取值範圍爲-2**63~2**63-1,即-9223372036854775808~9223372036854775807
long(長整型)
跟C語言不一樣,Python的長整數沒有指定位寬,即:Python沒有限制長整數數值的大小,但實際上因爲機器內存有限,咱們使用的長整數數值不可能無限大。
注意,自從Python2.2起,若是整數發生溢出,Python會自動將整數數據轉換爲長整數,因此現在在長整數數據後面不加字母L也不會致使嚴重後果了。
注意:在Python3裏再也不有long類型了,全都是int
>>> a= 2**64 >>> type(a) #type()是查看數據類型的方法 <type 'long'> >>> b = 2**60 >>> type(b) <type 'int'>
float(浮點型)
浮點數用來處理實數,即帶有小數的數字。相似於C語言中的double類型,佔8個字節(64位),其中52位表示底,11位表示指數,剩下的一位表示符號。
complex(複數)
>>> name = "Alex Li" #雙引號 >>> age = "22" #只要加引號就是字符串 >>> age2 = 22 #int >>> >>> msg = '''My name is taibai, I am 22 years old!''' #我擦,3個引號也能夠 >>> >>> hometown = 'ShanDong' #單引號也能夠
那單引號、雙引號、多引號有什麼區別呢? 讓我大聲告訴你,單雙引號木有任何區別,只有下面這種狀況 你須要考慮單雙的配合
msg = "My name is Alex , I'm 22 years old!"
多引號什麼做用呢?做用就是多行字符串必須用多引號
msg = ''' 今天我想寫首小詩, 歌頌個人同桌, 你看他那烏黑的短髮, 好像一隻炸毛雞。 ''' print(msg)
字符串拼接
數字能夠進行加減乘除等運算,字符串呢?讓我大聲告訴你,也能?what ?是的,但只能進行"相加"和"相乘"運算。
>>> name 'Alex Li' >>> age '22' >>> >>> name + age #相加其實就是簡單拼接 'Alex Li22' >>> >>> name * 10 #相乘其實就是複製本身多少次,再拼接在一塊兒 'Alex LiAlex LiAlex LiAlex LiAlex LiAlex LiAlex LiAlex LiAlex LiAlex Li'
注意,字符串的拼接只能是雙方都是字符串,不能跟數字或其它類型拼接
>>> type(name),type(age2) (<type 'str'>, <type 'int'>) >>> >>> name 'Alex Li' >>> age2 22 >>> name + age2 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: cannot concatenate 'str' and 'int' objects #錯誤提示數字 和 字符 不能拼接
三、布爾值(True,False)
布爾類型很簡單,就兩個值 ,一個True(真),一個False(假), 主要用記邏輯判斷
但其實大家並不明白對麼? let me explain, 我如今有2個值 , a=3, b=5 , 我說a>b你說成立麼? 咱們固然知道不成立,但問題是計算機怎麼去描述這成不成立呢?或者說a< b是成立,計算機怎麼描述這是成立呢?
沒錯,答案就是,用布爾類型
>>> a=3 >>> b=5 >>> >>> a > b #不成立就是False,即假 False >>> >>> a < b #成立就是True, 即真 True
11、用戶交互input
用戶交互input:
當程序須要你輸入一些重要信息:用戶名,密碼 郵箱,手機號,必定要想到用input。
name = input('請輸入用戶名:') passwd = input('請輸入密碼:')
注意:在python3中input 不管你輸入的是什麼內容,出來的都是str類型。
在python2中則不必定,raw_input和python3中input做用同樣。
12、流程控制語句if
if條件語句的5種基本結構;

''' 第一種: if 條件: 結果(代碼) 第二種: if 條件: 結果(代碼) else: 結果(代碼) 第三種: if 條件: 結果(代碼) elif 條件: #elif 可加多個 結果(代碼) elif 條件: 結果(代碼) 第四種: if 條件: 結果(代碼) elif 條件: 結果(代碼) else: 結果(代碼) 第五種:(if嵌套) if 條件: 結果(代碼) if 條件: 結果(代碼) '''