1.計算機基礎知識python
(1)計算機由cpu(中央處理器)、內存、硬盤、輸入輸出設備組成linux
(2)操做系統是控制計算機硬件工做的流程(軟件)web
(3)應用程序是安裝在操做系統之上的軟件編程
2.python簡介python3.x
(1)python的創始人爲吉多·範羅蘇姆(Guido van Rossum),應用領域爬蟲、web、人工智能、自動化運維、雲計算、金融、遊戲等領域,應用的公司google、yutube、nasa、知乎、豆瓣等安全
(2)python優勢: 簡潔,高級語言,可移植性,開發效率高(有強大的第三方類庫),可嵌入,可擴展運維
缺點:速度慢、不能加密、線程不能利用多CPU問題編程語言
(3)python是什麼編程語言:
編程語言主要從如下幾個角度爲進行分類,編譯型和解釋型、靜態語言和動態語言、強類型定義語言和弱類型定義語言性能
編譯型與解釋型
編譯器是把源程序的每一條語句都編譯成機器語言,並保存成二進制文件,這樣運行時計算機能夠直接以機器語言來運行此程序,速度很快;
而解釋器則是隻在執行程序時,才一條一條的解釋成機器語言給計算機來執行,因此運行速度是不如編譯後的程序運行的快的.
這是由於計算機不能直接認識並執行咱們寫的語句,它只能認識機器語言(是二進制的形式)優化
編譯型
優勢:編譯器通常會有預編譯的過程對代碼進行優化。由於編譯只作一次,運行時不須要編譯,因此編譯型語言的程序執行效率高。能夠脫離語言環境獨立運行。
缺點:編譯以後若是須要修改就須要整個模塊從新編譯。編譯的時候根據對應的運行環境生成機器碼,不一樣的操做系統之間移植就會有問題,須要根據運行的操做系統環境編譯不一樣的可執行文件。
解釋型
優勢:有良好的平臺兼容性,在任何環境中均可以運行,前提是安裝瞭解釋器(虛擬機)。靈活,修改代碼的時候直接修改就能夠,能夠快速部署,不用停機維護。
缺點:每次運行的時候都要解釋一遍,性能上不如編譯型語言
動態語言和靜態語言
常咱們所說的動態語言、靜態語言是指動態類型語言和靜態類型語言
(1)動態類型語言:動態類型語言是指在運行期間纔去作數據類型檢查的語言,也就是說,在用動態類型的語言編程時,永遠也不用給任何變量指定數據類型,該語言會在你第一次賦值給變量時,
在內部將數據類型記錄下來。Python和Ruby就是一種典型的動態類型語言,其餘的各類腳本語言如VBScript也多少屬於動態類型語言。
(2)靜態類型語言:靜態類型語言與動態類型語言恰好相反,它的數據類型是在編譯其間檢查的,也就是說在寫程序時要聲明全部變量的數據類型,C/C++是靜態類型語言的典型表明,
其餘的靜態類型語言還有C#、JAVA等
強類型定義語言和弱類型定義語言
(1)強類型定義語言:強制數據類型定義的語言。也就是說,一旦一個變量被指定了某個數據類型,若是不通過強制轉換,那麼它就永遠是這個數據類型了。
舉個例子:若是你定義了一個整型變量a,那麼程序根本不可能將a看成字符串類型處理。強類型定義語言是類型安全的語言。
(2)弱類型定義語言:數據類型能夠被忽略的語言。它與強類型定義語言相反,一個變量能夠賦不一樣數據類型的值。
弱類型定義語言在速度上可能略遜色於強類型定義語言,可是強類型定義語言帶來的嚴謹性可以有效的避免許多錯誤。另外,「這門語言是否是動態語言」與「這門語言是否類型安全」之間是徹底沒有聯繫的!
經過上面這些介紹,咱們能夠得出,python是一門動態解釋性的弱類型定義語言。
python解釋器種類:
CPython: 官方使用的解釋器
IPython: 基於CPython之上的一個交互式解釋器,在交互方式上有所加強
PyPy: 是另外一個Python解釋器,對py代碼進行動態編譯,速度快
Jython: 是運行在Java平臺上的Python解釋器
IronPython: 是運行在微軟.Net平臺上的Python解釋器
3.快速入門
(1)python官網www.python.org
第一個python程序
print("hello world",'你好','世界') 結果 hello world 你好 世界
注意:python在執行過程當中會自動生成一個與其同名的 .pyc 文件,該文件就是Python解釋器編譯以後產生的字節碼
(2)python3與python2的區別
python3默認用的utf-8字節碼,python2默認用的ASCII碼(默認不識別中文,須要coding定義)
(3)變量命名規範
一、由字母,數字,下劃線任意組成
二、不能以數字開頭
三、禁止使用python中的關鍵字 ['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']
四、不能使用中文和拼音命名
五、作到簡明知意
六、嚴格區分大小寫
(4)推薦寫法:
大駝峯 AgeOfOldboy = 56
小駝峯 ageOfOldboy = 56
下劃線 age_of_oldboy = 56
查看python內部關鍵字
1 import keyword 2 print(keyword.kwlist)
4.註釋和變量
單行註釋
#要註釋的代碼
多行註釋
# 須要註釋的代碼1
# 須要註釋的代碼2
……
方法二
'''
須要註釋的代碼
'''
方法三
"""
須要註釋的代碼
"""
(3)變量的賦值
name = 'bob'
(4)常量:常量就是將變量名大寫,儘可能保持不更改的一種量
5.初識基礎數據類型
查看變量的數據類型 type()
整型 int 用於計算比較
計算機中是沒法準確的表示一個小數的(全部語言都有這樣的問題) print(10/3) 結果 3.3333333333333335 print(999%10000) 結果 999 二進制計算 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) # 1024
float 浮點數
1 爲何要叫浮點數: 由於小數點是浮動的 2 浮點數能表示的數學上的數字: 有理數(有限小數 無限循環小數) 3 浮點數的小數點是不許確的: 小數的小數位是轉換成二進制存儲 4 若是你建立的變量自己帶小數點,那麼這個變量的數據類型直接就是浮點數 5 全部的除法(除了//)獲得的都是小數 6 浮點數若是太長請轉換成字符串存儲,好比a = '1.71264864975975073507505' 7 1.2 8 2.3333344 9 2.56789*10**2 = 256.789 10 11 注意: 12 python2.x 整數除以整數就會取整(向下取整),有一個數浮點數,就按照浮點數計算 13 python3.x 全部的除(除了//)的結果都是小數 14 注意除數不能爲0,不然報錯
字符串 str 在Python中,用單引號,雙引號,或者三引號引發來的都是字符串,字符串不能相除或相減,能夠相加相乘,只是一些特殊的格式須要不用的引號
1 相加的時候雙方必須都是字符串(也稱爲拼接) 2 name = "bob" 3 hobby = "linux" 4 new = name+hobby 5 print(new) 6 結果 7 boblinux 8 9 只能是數字和字符串相乘 10 name = "bob" 11 new = name * 2 12 print(new) 13 結果 14 bobbob 15 16 換行打印 17 a = '牀前明月光, \n疑是地上霜, \n舉頭望明月, \n低頭思故鄉.' # \n 轉義字符. 換行 18 print(a) 19 結果 20 牀前明月光, 21 疑是地上霜, 22 舉頭望明月, 23 低頭思故鄉.
布爾值 bool
1 True 真 2 False 假
6.程序交互
(1)input()括號內的內容必須是字符串,也稱爲提示語句,用input獲取到的內容都是字符串
1 例1 2 s1 = input("請輸入: ") 3 print(type(s1)) 4 結果 5 請輸入: 11 6 <class 'str'> 7 例2 8 s1 = int(input("請輸入: ")) 9 print(type(s1)) 10 結果 11 請輸入: 22 12 <class 'int'>
(2)將字符串轉換成數字
1 num = int("88") 2 print(type(num))
(3)將數字轉換成字符串
1 s = srt("123") 2 print(type(s))
7.格式化輸出
%s 字符串
%d或%i 整型(數字)
%f 浮點數(小數)
%% 轉義符
1 事例一 2 name = input("請輸入姓名:") 3 age = int(input("請輸入年齡:")) 4 job = input("請輸入職業:") 5 hobbie = input("請輸入愛好:") 6 print(''' 7 ---------------- info of %s -------------- 8 Name : %s 9 Age : %d 10 Job : %s 11 Hobbie : %s 12 ------------------- end------------------- 13 '''%(name,name,age,job,hobbie)) 14 # 注意點: 必須按照相對應的數量來填充 使用位置來填充參數 15 16 方法二 17 print(f''' 18 ---------------- info of {name} -------------- 19 Name : {name} 20 Age : {age} 21 Job : {job} 22 Hobbie : {hobbie} 23 ------------------- end------------------- 24 ''') 25 #應用場景: 動態獲取用戶數據並寫入固定格式+號也能夠 26 27 事例二 28 name = 'bob' 29 print('工程師%s剩餘30%%的數據沒有拷貝'%(name))
8.if條件語句
一、單條件if語句
1 if 條件: 2 代碼塊
二、雙條件if語句
1 if 條件: 2 代碼塊1 3 else: 4 代碼塊2
三、三條件if語句
1 if 條件: 2 代碼塊 3 elif: 4 代碼塊 5 elif: 6 代碼塊
四、多條件if語句
1 if 條件: 2 代碼塊 3 elif: 4 代碼塊 5 elif: 6 代碼塊 7 else: 8 代碼塊
五、嵌套if語句
1 if 條件: 2 if 條件: 3 代碼塊