天天看點

python基礎總結

一、計算機簡史

電腦的學名就是計算機,最早先是用來做計算的工具。

1623年,法國數學家帕斯卡,這哥們三歲喪母,由擔任稅務官的父親撫養長大。19歲的時候,帕斯卡發明人類有史以來第一台機械計算機 -- 帕斯卡加法器。

1662年與世長辭,

不久後,德國大數學家拉布尼茨看到了帕斯卡的加法電腦,很感興趣。

1674年造出更完美的計算機。

1700年的某天,萊布尼茨的朋友送他一個中國的易圖,受啟發提出二進制運算法則。

第一代:電子管計算機,1946-1958

第二代:半導體計算機,1956-1963年,程式員乃至整個軟體行業萌芽

第三代:內建電路計算機,1964-1971,作業系統也日趨完善

第四代:大規模內建電路計算機

二、計算機結構

電腦之父:馮·諾依曼,提出了計算機的五大部件:輸入裝置、輸出裝置、存儲器、運算器和控制器。

輸入裝置:向電腦提供資料

輸出裝置:向我們提供資料

主機闆:連接配接其他所有裝置,是其他裝置的載體

CPU:中央處理單元,人靠大腦想事情,計算機靠CPU

硬碟:存儲資料和軟體資料的裝置,斷電資料不丢失,也稱為電腦的資料倉庫

記憶體:負責硬碟與CPU之間的資料交換,存儲系統中的臨時資料,斷電後資料丢失

顯示卡:顯示器想要呈現畫面,顯示卡是關鍵,負責在顯示器上顯示資訊,就像是人的眼睛,沒有顯示卡,電腦就無法形成圖像

電源:供電的網卡:幫助我們上網的

其中最重要的就是:CPU、硬碟、記憶體   

三、程式設計語言介紹 

一個不會中文的美國人,和一個不會英文的中國人,如何交流?

想辦法解決~找個翻譯。

同樣,計算機隻懂 0 和 1組成的代碼,如果人類想指令計算機做事,就要用 0 和1告訴計算機做什麼事情,也就是用 0 和 1 與計算機溝通,很累。

但是,計算機又無法了解人類語言。

這不就是 一個不會中文的美國人,和一個不會英文的中國人。

計算機講的是機器語言。

怎麼辦?

定義一套全新的文法規範,說明如何将人類語言轉為計算機語言,這樣,就能使用人類的語言告訴計算機做事。這就是程式設計語言,将程式設計語言翻譯成機器語言,這個過程叫編譯。

學程式設計 == 學文法規則。   

程式設計語言有很多種,比如 python、golang、java、c++,這樣的文法規範,一共有 六百多套。

機器語言,0 和 1 組成的代碼彙編語言,本質上和機器語言相同,隻不過是純英文縮寫,更容易識别和記憶進階語言,和彙編相比,進階語言将多個相關的機器指令合一,去掉了具體的操作。

有很多套與計算機互動的語言,六百多種程式設計語言。

c  各個作業系統的開發語言,1973

c++  c語言的加強版 1983年貝爾實驗室

java  1995年 sun 公司開發

php  1994年,純web開發語言

python  1989年誕生,剛開始被用作腳本語言,處理一些簡單的任務,與 Unix同年誕生,1991年,python釋出第一個正式版本

c#  微軟釋出的一個面向對象的、運作于 .net 之上的進階語言

ruby  一個簡單快捷的面向對象的腳本語言,日本人 松本行弘perl超強大的文字處理能力,是Unix平台上的語言,可以任何人都看不懂的代碼

shell  腳本語言,簡單易學,基于Unix,運維人員必學

gogolang ,谷歌 2009年釋出的,被稱為21世紀c語言,同時具有 python簡潔的特點,也具有c語言高性能的特點

JavaScript  當下使用最廣泛的程式設計語言,主要用來寫前端

nodejs  後端的、全棧式語言 

 四、開發語言分類 

編譯型語言和解釋型語言

計算機本身是不識别進階語言的,當我們運作一個程式的時候,需要一個翻譯來把進階語言轉為機器語言。

這個翻譯的形式,有兩種:

編譯:在程式運作前,首先通過編譯器,将程式編譯成機器語言。比如c語言。寫了一個程式用編譯器把程式翻譯一遍,形成另一個程式把編譯後的程式拿給計算機去執行

解釋:沒有編譯的過程,而是在程式運作的時候,通過解釋器逐行解釋代碼寫了一個程式計算機看一行,我們翻譯一行每次執行程式,都要重新翻譯

編譯型 VS 解釋型

編譯型:

優點:程式執行效率高,可以脫離語言環境運作

缺點:編譯後,如果修改了代碼,那麼整個程式都必須重新編譯

缺點:不同作業系統,使用的機器碼不同,需要針對性的進行編譯

解釋型:

優點:有良好的的平台相容性,在任何環境都能運作(前提是裝了解釋器)

優點:修改代碼直接修改就可以,快速部署,不需要停機維護每次運作都需要重新解釋一遍,性能上不如編譯型語言

動态語言和靜态語言

動态語言:在運作期間才會去做資料類型檢查的語言,也就是說,在使用動态語言寫代碼的時候,不需要為任何變量指定資料類型,python就是一種典型的動态類型語言。

靜态語言:資料類型在編譯期間檢查,寫代碼的時候,必須為變量指明資料類型,c語言和java就是靜态語言。

強類型定義語言和弱類型定義語言

強類型:一旦某個變量指定了資料類型,後續就不能更改,除非進行類型的強制轉換,不然 這個變量永遠是這個資料類型。比如你給一個變量 a 定義為整型,那麼你就不能用小數為 a 指派。

弱類型:資料類型可以被忽略,一個變量可以賦予不同類型的值。python就是弱類型的。

python是一個弱類型,動态語言。 

五、python語言介紹

python的特點

解釋型語言,意味着開發過程中沒有了編譯這個環節互動式語言:可以一邊寫代碼,一邊得到回報

面向對象的語言:支援面向對象的風格和代碼封裝

初學者的語言:對初級程式員來說,python是偉大的,因為他十分易學

python 主要應用領域

雲計算,雲計算領域最火的語言

優秀的web開發語言:豆瓣、油管

科學運算、人工智能

系統運維,運維人員必備語言

金融,量化交易、金融分析

有哪些公司在用python

谷歌:谷歌廣告、谷歌爬蟲

CIA:美國中情局網站就是python開發的

NASA:美國航天局大量使用python

YouTube:全球最大的視訊網站

Instagram:美國最大的圖檔社交網站

Facebook:大量的基礎庫是使用Python開發的

豆瓣:該公司幾乎所有業務都是python開發的

知乎:國内最大的問答社群

春雨醫生:國内知名的線上醫療網站

搜狐、金山、騰訊、盛大、網易、百度、阿裡、洋芋、新浪,等公司,都有python開發的

python是一門動态解釋型的弱類型定義語言。 

python的缺點:運作效率低代碼不能加密線程不能利用多CPU 

 六、簡單邏輯判斷與縮進介紹

age = intput("請輸入年齡>>>")
print(age)      

在程式中預設一個年齡,然後讓使用者去猜。

age = 20
guess_age = input("請輸入你猜測的年齡>>>")
guess_age = int(guess_age)
if age == guess_age:
    print("恭喜你猜對了")
else
    print("不好意思猜錯了")      

在python中 ,一個等号代表指派,兩個等号代表相等判斷。

每個判斷内的代碼前方都有一塊空白,

這個空白,我們就稱為縮進,

去掉這段空白,代碼邏輯就會異常。

并且不允許混用縮進官方建議使用4個空格作為縮進

如果邏輯判斷有很多條,可以使用 elif,比如判斷某個學生的成績

score = int(input("請輸入學員成績>>>"))
if score > 90:
    print("優秀學員")
elif score > 80:
    print("成績良好")
elif score > 70:
    print("成績一般")
elif score >= 60:
    print("剛及格")
else:
    print("不及格,回家挨揍")      

在 if 邏輯判斷中,如果某個判斷成立了,就不會執行後面判斷,如果所有判斷都沒成立,就執行else,else不是必須寫的。

邏輯運算符

and,與運算符,需要兩邊同時成立,才為真,任意一邊不成立,就是假

num1 = 1
num2 = 2
num3 = 3
if num3 > 2 and num2 > 9:
    print("pass")  # 這個pass不會被列印出來      

or,或運算符,兩邊任意成立一個,結果就是真,兩邊全不成立,結果才為假

num1 = 1
num2 = 2
num3 = 3
if num3 > 2 or num2 > 9:
    print("pass")  # 這個pass會被列印出來      

!,非運算符,就是取反的意思

num1 = 1
num2 = 2
num3 = 3
if !(num3 > 2 or num2 > 9):
    print("pass")  # 這個pass不會被列印出來      

判斷三個數字的最大值和最小值(不考慮相等的情況)

測試用例設計思路:

第一個數字最大的兩種情況

   第二個數字最小

   第三個數字最小

第二個數字最大的兩種情況

   第一個數字最小

第三個數字最大的兩種情況

python基礎總結

七、循環

之前寫的猜年齡小遊戲隻能猜一次,現在希望添加功能,讓使用者一直猜,直到猜對為止,怎麼做呢?

python基礎總結

 上述代碼實作了使用者多次猜測的需求,但是卻引入了一個bug,即使使用者猜對了,也會提示使用者繼續猜,這顯然不合理,我們希望使用者猜對以後,遊戲就結束了。

python基礎總結

 break 的作用就是完全終止整個循環,我們判斷使用者輸入正确,就直接使用 break 結束循環。

通過 while 循環,列印0-100之間所有的整數

python基礎總結

加一個需求,如果數字能被 3 整數,就不列印,怎麼做

python基礎總結

 continue 的作用就是跳過本次循環,不再執行後面的代碼。

python基礎總結

 可以再 while 循環後面加一個首尾的語句,在沒有 break 或代碼報錯的前提下,else中的内容會在循環結束後執行。

for 循環用于疊代序列(清單、元組、字典、集合、字元串)

python基礎總結

 for 循環也可以使用 break 語句和 continue 語句。

如需循環指定的次數,可以使用 range 函數,range 函數傳回一個數字序列,預設情況下從 0 開始,并預設,每次循環遞增1,直到指定的數字結束。

python基礎總結

 八、清單、元組操作

清單使我們以後最常用的資料類型之一,通過清單可以對資料實作最友善的存儲、修改等操作。

定義一個清單:

python基礎總結
python基礎總結
python基礎總結

 元組其實和清單差不多,也是存一組資料,隻不過,元組一旦被建立,就不能修改,是以又叫隻讀清單。

 程式練習:

請寫出以下購物車程式啟動程式後,讓使用者輸入自己的工資,然後列印菜單清單(要列印編号和商品名,商品名從一開始數)允許使用者根據商品編号購買商品使用者選擇商品後,檢測餘額是否足夠,足夠就直接扣款,不夠就提醒充值可随時退出程式,退出時,列印已購買的商品和餘額

python基礎總結

 九、字典

字典是一種 key-value 的資料類型,使用起來有點像新華字典。新華字段通過拼音、筆畫查找内容。

python中的字典,通過 key 查找内容。

python基礎總結

十、集合

 https://www.cnblogs.com/shuaiyuan/p/14985561.html