一、計算機簡史
電腦的學名就是計算機,最早先是用來做計算的工具。
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不會被列印出來
判斷三個數字的最大值和最小值(不考慮相等的情況)
測試用例設計思路:
第一個數字最大的兩種情況
第二個數字最小
第三個數字最小
第二個數字最大的兩種情況
第一個數字最小
第三個數字最大的兩種情況

七、循環
之前寫的猜年齡小遊戲隻能猜一次,現在希望添加功能,讓使用者一直猜,直到猜對為止,怎麼做呢?
上述代碼實作了使用者多次猜測的需求,但是卻引入了一個bug,即使使用者猜對了,也會提示使用者繼續猜,這顯然不合理,我們希望使用者猜對以後,遊戲就結束了。
break 的作用就是完全終止整個循環,我們判斷使用者輸入正确,就直接使用 break 結束循環。
通過 while 循環,列印0-100之間所有的整數
加一個需求,如果數字能被 3 整數,就不列印,怎麼做
。
continue 的作用就是跳過本次循環,不再執行後面的代碼。
可以再 while 循環後面加一個首尾的語句,在沒有 break 或代碼報錯的前提下,else中的内容會在循環結束後執行。
for 循環用于疊代序列(清單、元組、字典、集合、字元串)
for 循環也可以使用 break 語句和 continue 語句。
如需循環指定的次數,可以使用 range 函數,range 函數傳回一個數字序列,預設情況下從 0 開始,并預設,每次循環遞增1,直到指定的數字結束。
八、清單、元組操作
清單使我們以後最常用的資料類型之一,通過清單可以對資料實作最友善的存儲、修改等操作。
定義一個清單:
元組其實和清單差不多,也是存一組資料,隻不過,元組一旦被建立,就不能修改,是以又叫隻讀清單。
程式練習:
請寫出以下購物車程式啟動程式後,讓使用者輸入自己的工資,然後列印菜單清單(要列印編号和商品名,商品名從一開始數)允許使用者根據商品編号購買商品使用者選擇商品後,檢測餘額是否足夠,足夠就直接扣款,不夠就提醒充值可随時退出程式,退出時,列印已購買的商品和餘額
九、字典
字典是一種 key-value 的資料類型,使用起來有點像新華字典。新華字段通過拼音、筆畫查找内容。
python中的字典,通過 key 查找内容。
十、集合
https://www.cnblogs.com/shuaiyuan/p/14985561.html