1.CPU 記憶體 硬碟 操作系統 CPU:電腦的運算和控制中心,相當於人類的大腦。 記憶體:用於暫時存放CPU中的運算數據,以及與硬碟等外部存儲器交換的數據。(暫時存儲數據,臨時載入數據及應用程式) 4G,8G,16G,32G 速度快,效率高,造價高 斷電數據丟失 硬碟:磁碟,長期存儲數據,存放文件 ...
1.CPU 記憶體 硬碟 操作系統
CPU:電腦的運算和控制中心,相當於人類的大腦。
記憶體:用於暫時存放CPU中的運算數據,以及與硬碟等外部存儲器交換的數據。(暫時存儲數據,臨時載入數據及應用程式) 4G,8G,16G,32G
- 速度快,效率高,造價高 斷電數據丟失
硬碟:磁碟,長期存儲數據,存放文件,視頻,音頻等等。500G,1T
- 造價相對低
操作系統:是一個連接電腦硬體與所有軟體的一個軟體。
2.Python的發展與應用
Python的創始人為吉多·範羅蘇姆(Guido van Rossum)。
Python主要應用領域:
雲計算:雲計算最火的語言, 典型應用OpenStack
WEB開發: 眾多優秀的WEB框架, 典型WEB框架有Django
科學運算、人工智慧: 典型庫NumPy, SciPy, Matplotlib, Enthought librarys,pandas
系統運維: 運維人員必備語言
金融:量化交易,金融分析,在金融工程領域,Python不但在用,且用的最多,而且重要性逐年提高。
圖形GUI: PyQT, WxPython,TkInter
3.Python的歷史
Python崇尚優美、清晰、簡單
python2x,python3x源碼有區別:
python2x: C,java大牛貢獻源碼: 重覆代碼多,冗餘,代碼不規範。
python3x: 源碼規範,清晰,簡單
python3.x不向下相容
4.編程語言分類(重點)
- 編譯型:將代碼一次性全部編譯成二進位,然後再執行。如C語言,C++,Go
- 優點:執行效率高
- 缺點:開發效率低,不能跨平臺
- 解釋型:逐行解釋成二進位,逐行運行。如Python,PHP
- 優點:開發效率高,可以跨平臺
- 缺點:執行效率低
- python是一門動態解釋性的強類型定義語言
5.Python的優缺點:
- 優點:
開發效率非常高
高級語言
可移植性
可擴展性
可嵌入性 - 缺點:
速度慢
代碼不能加密
線程不能利用多CPU問題
6.Python的種類:
- Cpython:官方推薦解釋器,這個解釋器是用C語言開發的,所以叫CPython。可以將python代碼轉化成C語言能識別的位元組碼。
- Jpython: Jython(Jpython)是運行在Java平臺上的Python解釋器,可以把python代碼轉化成Java語言能識別的位元組碼
- Ironpython:可以轉化成.net語言能識別的位元組碼。
- pypy: 動態編譯,一次性全部轉化
- 註:不同解釋器書寫Python的規則一樣
7.安裝Python解釋器的流程
8.運行第一個Python代碼
print('hello 老鐵')
win+R ---cmd---輸入:python 空格 文件的路徑 回車
- 所有的標點都要是英文的,print後的引號內可以有中文。
- cmd下按方向鍵的上鍵可以選擇最近輸入的內容
- Notepad++: 在上一行結尾按ctrl+d 將上一行內容全部複製。
9.變數(重點)
- 變數:把程式運行的中間結果臨時的存在記憶體里,以便後續的代碼調用。
變數只是一個指代關係,必須有實實在在對應的數據類型。同一個變數,在記憶體中只能出現一個。
變數在記憶體中是唯一的,變數必須有它真正指向的實際數據。
why:使程式更加簡潔
print(1+2+3+4+5)
print((1+2+3+4+5)*3/2)
print((((1+2+3+4+5)*3/2)+100)/24)
# x,y,z 變數
x = 1+2+3+4+5
y = x*3/2
z = (y + 100) / 24
print(x,y,z) #print輸出列印多個,用逗號分隔
x8 = 100 # True
b__ = 12 # True
4g = 32 # False 變數名不能以數字開頭
_ = 11 # True
*r = 12 # False 變數名只能由字母,數字,下劃線任意組合。
r3t4 = 10 # True
t_ = 66 # True
# 變數的小高級:
age1 = 18
age2 = age1
age3 = age2
age2 = 12
print(age1,age2,age3) # 18 12 18
程式從上到下執行,變數只能指向數據,不能指向變數。
變數在記憶體是唯一命名的,不會出現兩個age2。出現多個age2,只有1個age2。
what:x y z 變數:代指一些內容
how:變數命名規範
- 變數全部由數字,字母,下劃線任意組合。
- 不能以數字開頭。
- 不能是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']
- 要具有描述性。見名知意 name= '太白金星'
- 不能使用中文。
- 不能過長。
- 推薦
- 駝峰體:AgeOfOldboy = 73
- 下劃線:age_of_oldboy = 73 number_of_students = 56
where:
代指一些複雜過長的數據。
content = '''sfkdsjalfjdslfksdjkfhsdajkfhsdjkfshdfsdkfhsdkfjsldakfjsdaflsdafjshdafjkdsfhkjsdlf
fskdfhsdkfhsdkjfhsdkjfhskdfhsdkjfhsdkfkhsdflsafksjdfhskdajfhskdjfhskda'''
10.常量
why :生活中一直不變的:π,身份證號碼,歷史發生的時間
what: 常量:一直不變的量或在程式運行過程中不會改變的量。python中沒有真正的常量,為了應和其他語言的口味,程式員約定俗成用變數名全部大寫代表常量
how: 將變數名全部大寫,放在文件的最上面。
where: 設置一些不變的量 :身份證號,id等
BIRTH_OF_CHINA = 1949
# 常量
# 約定俗成,不能改變
NAME = '太白'
print(NAME #太白
11.註釋(重點)
why:文言文中對一些晦澀難懂的成語或者經典的出處作解釋說明,便於你理解。
便於你理解對方的代碼,自己的代碼。
what: 註釋
how: (怎麼用)
單行註釋: #
多行註釋: '''被註釋內容''' (3個單引號) """被註釋內容"""(3個雙引號)
where:(用在哪)
難以理解的代碼後面,加註釋。
函數,類,文件都需要註釋,解釋說明。
12.基礎數據類型(重點)
why:
人類接觸一些信息會做一些比較精準的劃分。比如數字,漢字,英文......
100, '中國' 機器是很傻的,你要是不給他區分,他是分辨不出來的。人要按一定規則區分,然後告訴它是什麼。
我們告訴電腦:
100 ,102 ,就是數字(int), 可以+ - * / ....
'中國','hello' ,'薩瓦迪卡' 文字,:用來記錄信息,描述信息等等。【單,雙引號均可】
[1, 2, 3, '中國'] 列表,他能做他相應的一些操作即可。
python的基礎數據類型:
int(整型): 1 ,2, 123, ....
進行+ - * / . 運算
i = 100 i1 = 2 i2 = i*i1 print(i2) #200 變數的數據類型:與變數指向的數據的數據類型相同。
str: 凡是用引號引起來的數據就稱之為字元串。
' '," ", ''' ''' , """ """
# str:
s1 = 'day01'
s2 = "Python22期"
s2 = '''Python22期'''
#單雙引號可以配合使用
content = 'I am taibai, 18 year old'
content = "I'm taibai, 18 year old"
#三引號:用於換行的字元串,【多引號什麼作用呢?作用就是多行字元串必須用多引號】比如一首詩
msg = '''
今天我想寫首小詩,
歌頌我的同桌,
你看他那烏黑的短髮,
好像一隻炸毛雞。
'''
print(msg)
# str 可否加減乘除? ------> + *
1. str + str 字元串的拼接(重點)--字元串與字元串相加,相加就是簡單的拼接,字元串的拼接只能是雙方都是字元串
s1 = 'alex'
s2 = 'sb'
print(s1 + s2) #alexsb
2. str * int ---字元串與整數相乘
s1 = '堅強'
print(s1*8) #堅強堅強堅強堅強堅強堅強堅強堅強
bool :True False
# bool : True False 不帶引號
print(2 > 1) #True
print(3 < 1) #False
print(True) #True
print('True') #True 'True'是字元串
直接列印出來,不能判斷是哪種類型。可以用 type() 查看:判斷該變數指向的數據是何種數據類型
s1 = '100'
s2 = 100
print(s1,type(s1)) #100 <class 'str'>
print(s2,type(s2)) #100 <class 'int'>
13.用戶交互input
why: 在網頁上,app上 輸入賬號與密碼。
what: 用戶交互input
how:
input: 通過input輸入的內容全部都是字元串類型。字元串要轉換成數據才能進行比較,如 int(age)
引號內為提示信息。
#示例
username = input('請輸入用戶名:')
password = input('請輸入密碼:')
print(username,type(username))
print(password,type(password))
#運行結果:
請輸入用戶名:alex
請輸入密碼:123
alex <class 'str'>
123 <class 'str'>
#讓用戶輸入姓名,年齡,性別,然後列印一句話'我叫: ,今年:,性別:'
name = input('請輸入姓名:') #將用戶輸入的內容賦值給 name 變數
age = input('請輸入年齡:')
sex = input('請輸入性別:')
msg = '我叫: ' + name + ',今年:' + age + ',性別:' + sex
print(msg)
#運行結果:
請輸入姓名:alex
請輸入年齡:18
請輸入性別:boy
我叫: alex,今年:18,性別:boy
name = '太白'
print(name) #太白 變數
print('name')#name 字元串,凡是用引號引起來的數據就稱之為字元串。
14.流程式控制制語句if
why: 生活中的選擇,如回家,有n條路,你走哪條路,取決於你的心情。
what: if語句具有分流作用 在程式里預設一些條件判斷語句,滿足哪個條件,就執行哪個條件下的代碼。這個過程就叫流程式控制制。
how:
強制縮進:目的是為了讓程式知道,每段代碼依賴哪個條件。
Python的縮進有以下幾個原則:
- 頂級代碼必須頂行寫,即如果一行代碼本身不依賴於任何條件,那它必須不能進行任何縮進
- 同一級別的代碼,縮進必須一致
- 官方建議縮進用4個空格
基本結構: if 條件: 結果
單獨if
print(111) if 2 < 1: print(666) print(333) print(222) #結果: 111 222
if else 二選一
s1 = '100' print(s1,type(s1)) #100 <class 'str'> i1 = int(s1) print(i1,type(i1)) #100 <class 'int'> #示例 age = input('請輸入年齡:') if int(age) > 18: #字元串要轉換成數據才能進行比較,如 int(age) print('恭喜你,成年了!') else: print('小屁孩兒')
if elif elif .... 多選一,只能選一個 :從上到下依次判斷,只要滿足一個條件,就不會再往下執行代碼
num = int(input('猜點數:')) #字元串轉換為整數 if num == 1: print('晚上請你吃飯') elif num == 3: print('一起溜達') elif num == 2: print('請你大寶劍')
if elif elif .... else 多選一
num = int(input('猜點數:')) if num == 1: print('晚上請你吃飯') elif num == 3: print('一起溜達') elif num == 2: print('請你大寶劍') else: print('太笨了....') print('組合') #運行結果示例: 請輸入數字:4 太笨了.... 組合
嵌套的if
username = input('請輸入用戶名:') password = input('請輸入密碼:') code = 'qwer' your_code = input('請輸入驗證碼:') if your_code == code: if username == 'taibai' and password == '123': print('登錄成功') else: print('賬號或者密碼錯誤') else: print('驗證碼錯誤') #運行結果示例: 請輸入用戶名:taibai 請輸入密碼:123 請輸入驗證碼:qwer 登陸成功