一、軟件開發(fā)的常識
1.什么是軟件
一系列由特定順序組織起來的計(jì)算機(jī)數(shù)據(jù)或者指令
常見的軟件:
系統(tǒng)軟件:windows,Linux,mac os
應(yīng)用軟件:QQ,一系列的播放器播掷,一系列的瀏覽器等 app
2.什么是開發(fā)
就是制作軟件的過程
軟件的出現(xiàn)實(shí)現(xiàn)了人與計(jì)算機(jī)之間的交互
交互方式:
圖形化界面:通過一些現(xiàn)成的界面完成一些任務(wù)
命令行方式:在控制臺輸入一些指令柿菩,計(jì)算機(jī)幫忙完成某件事情
3.DOS命令行
cd 進(jìn)入指定目錄【文件夾】
cd .. 退回到上一級目錄
cd / 退回到根目錄
dir 列出當(dāng)前目錄下所有的文件夾以及文件
4.計(jì)算機(jī)編程語言介紹
人類語言: 人與人溝通的語言
計(jì)算機(jī)語言: 人與計(jì)算機(jī)溝通的語言
計(jì)算機(jī)的組成:
1, 硬件: 如鼠標(biāo)圾另,鍵盤帮碰,顯示器电谣,顯卡浑彰,內(nèi)存條恭理, 硬盤,主板等計(jì)算機(jī)設(shè)備或部件
2, 操作系統(tǒng): 基于硬件郭变,用于管理和運(yùn)行應(yīng)用程序颜价,是硬件和軟件的橋梁
3, 軟件: 應(yīng)用程序, 依賴于運(yùn)行的操作系統(tǒng)
常見編程語言:
C, C++, JAVA, PHP, PYTHON, JS,html,css, Go, Object-C, Swift, 易語言。
?
C: 底層開發(fā), 面向過程诉濒,速度快
C++: 面向?qū)ο笾苈祝度胧剑珹ndroid底層未荒,做游戲专挪, 跨平臺
Java: 后端語言, 開發(fā)企業(yè)級系統(tǒng),開發(fā)Android
C#: 后端語言片排, 用于Unity3D游戲寨腔,如:王者榮耀
php: 后端語言,號稱世界上最好的語言率寡。
Python: 高層語言迫卢,簡單易學(xué)。
OC: 號稱世界上最優(yōu)雅的語言冶共,開發(fā)iOS
Swift: 開發(fā)iOS, 開源(開放源代碼)
JS: javascript乾蛤, 前端必備語言
html + css: html:前端的標(biāo)簽每界, css:樣式</pre>
二、Python的概述
1.Python語言
python是一種解釋型, 面向?qū)ο? 動態(tài)數(shù)據(jù)類型的高級程序設(shè)計(jì)語言.
腳本語言:c, js, php, python, jsp, asp
弱類型/強(qiáng)類型 弱類型: a = 10 強(qiáng)類型: int a = 10
python由Guido van Rossum(荷蘭) 于1989年底發(fā)明,第一個(gè)公開發(fā)行版發(fā)行于1991年
2.Python的簡介
python是一種解釋性語言: 開發(fā)過程中沒有編譯這個(gè)環(huán)節(jié),類似于PHP和JS語言,是腳本語言
是一個(gè)交互式語言: 可以在一個(gè)python提示符,直接互動執(zhí)行程序
是面向?qū)ο笳Z言: python支持面向?qū)ο蟮娘L(fēng)格或代碼封裝在對象的編程技術(shù)
python是初學(xué)者的語言: python對初級程序員而言, 是一種偉大的語言, 他支持廣泛的應(yīng)用程序開發(fā),從簡單的文字處理到www瀏覽器再到游戲都可以使用python
3.為什么學(xué)習(xí)Python
python語言排行榜, python的薪資, python的就業(yè)崗位數(shù)量, python發(fā)展前景
python應(yīng)用廣泛
Python 是最接近AI(人工智能)的語言
Python 是跨平臺的【Python程序可以運(yùn)行在windows幻捏、linux盆犁,Macos上命咐,例如:在windows上書寫的Python程序篡九,可以在linux或者macos上運(yùn)行】
4.Python發(fā)展史
參考鏈接: [http://www.cnblogs.com/vamei/archive/2013/02/06/2892628.html]
author.png
Python的作者,Guido von Rossum醋奠,是荷蘭人榛臼。1982年,Guido從阿姆斯特丹大學(xué)(University of Amsterdam)獲得了數(shù)學(xué)和計(jì)算機(jī)碩士學(xué)位窜司。
1989年沛善,為了打發(fā)圣誕節(jié)假期,Guido開始寫Python語言的編譯/解釋器塞祈, Python來自Guido所摯愛的電視劇Monty Python's Flying Circus (BBC1960-1970年代播放的室內(nèi)情景幽默劇金刁,以當(dāng)時(shí)的英國生活為素材)。他希望這個(gè)新的語言叫做Python的語言 (python翻譯:蟒蛇)
1991年议薪,第一個(gè)Python編譯器(同時(shí)也是解釋器)誕生尤蛮。它是用C語言實(shí)現(xiàn)的。從一出生斯议,Python已經(jīng)具有了:類(class)产捞,函數(shù)(function),異常處理(exception)哼御,包括列表(list)和詞典(dictionary)在內(nèi)的核心數(shù)據(jù)類型坯临,以及模塊(module)為基礎(chǔ)的拓展系統(tǒng)。
5.Python的優(yōu)缺點(diǎn)【了解】
5.1優(yōu)點(diǎn)
簡單:Python是一種代表簡單主義思想的語言
易學(xué):就如同你即將看到的一樣恋昼,Python極其容易上手看靠。前面已經(jīng)提到了,Python有極其簡單的語法
高層語言:當(dāng)你用Python語言編寫程序的時(shí)候液肌,你無需考慮諸如如何管理你的程序使用的內(nèi)存一類的底層細(xì)節(jié)
可移植性:由于它的開源本質(zhì)挟炬,Python已經(jīng)被移植在許多平臺上
解釋性語言: 類似PHP和JS語言,Python語言寫的程序不需要編譯成二進(jìn)制代碼而是直接從源代碼運(yùn)行程序矩屁。 而 編譯性語言比如C或C++寫的程序一般是先從源文件編譯成二進(jìn)制代碼辟宗,再編譯二進(jìn)制代碼來運(yùn)行程序。
面向?qū)ο螅篜ython既支持面向過程的編程也支持面向?qū)ο蟮木幊?/p>
可嵌入性:你可以把Python嵌入你的C/C++程序吝秕,從而向你的程序用戶提供腳本功能
豐富的庫:Python標(biāo)準(zhǔn)庫確實(shí)很龐大泊脐。
GUI圖形界面
5.2缺點(diǎn)
強(qiáng)制縮進(jìn)
運(yùn)行速度相對較慢, 因?yàn)槭歉邔诱Z言烁峭, 打個(gè)比方:C語言1s容客, Java10s, python100s, 但是運(yùn)行時(shí)間都會非筹躅酰快, 比如c語言0.01ms, python1ms, 網(wǎng)絡(luò)消耗1s, 那么c語言1.00001秒缩挑, python1.001秒但两, 所以真正運(yùn)行程序時(shí)相差不大
代碼不能進(jìn)行加密【源代碼】
6.Python的應(yīng)用
YouTube:視頻網(wǎng)站
Facebook:社交
知乎
春雨醫(yī)生
Python擅長的區(qū)域
web開發(fā):
爬蟲開發(fā):
數(shù)據(jù)分析:
人工智能:算法,高數(shù)
后端開發(fā)供置,網(wǎng)站谨湘,電子商城,OA系統(tǒng)
三芥丧、數(shù)據(jù)的存儲
1.思考問題
1.為什么使用計(jì)算機(jī)
為了存儲數(shù)據(jù)紧阔,快速處理數(shù)據(jù)
2.數(shù)據(jù)存儲在計(jì)算機(jī)的什么位置
數(shù)據(jù)存儲在內(nèi)存(緩存/臨時(shí)存儲)中, 存在硬盤(持久化)
3.計(jì)算機(jī)如何存儲數(shù)據(jù)的
計(jì)算機(jī)存儲數(shù)據(jù)【數(shù)據(jù)包括數(shù)字,英文续担,中文擅耽,文件等】, 最終是以二進(jìn)制存儲在硬盤或內(nèi)存中
計(jì)算機(jī)是如何存儲數(shù)字的
2.內(nèi)存
2.1概述
內(nèi)存是計(jì)算機(jī)的組成部分物遇,作用是與cpu溝通的橋梁乖仇,計(jì)算機(jī)中所有的程序都是在內(nèi)存中運(yùn)行
內(nèi)存【Memory】,內(nèi)存儲器,作用暫時(shí)存放cpu中的運(yùn)算數(shù)據(jù)
2.2抽象理解
一個(gè)開關(guān)询兴,有兩種狀態(tài)乃沙,打開或者關(guān)閉,在計(jì)算機(jī)中使用0和1表示
2.3單位
硬盤:1T
計(jì)算機(jī)中表示數(shù)據(jù)的最小單位:比特 【bit ----b】,又被稱為位
計(jì)算機(jī)中處理數(shù)據(jù)的最小單位:字節(jié)【Byte----B】
單位換算:1B = 8b【掌握】
KB MB GB TB PB EB.....DB
存儲單位 :
1byte = 8bit
1KB = 1024 byte
1MB = 1024 KB
1GB = 1024MB
計(jì)算機(jī)在內(nèi)存中以二進(jìn)制的形式存儲數(shù)據(jù)【主要使用0和1進(jìn)行表示】【十進(jìn)制】
3.進(jìn)制
3.1 什么是進(jìn)制
a.進(jìn)制就是進(jìn)位的制度蕉朵,一種進(jìn)位的方式
例如:十進(jìn)制:逢十進(jìn)一
二進(jìn)制:逢二進(jìn)一
八進(jìn)制崔涂,十六進(jìn)制【是由二進(jìn)制演變來的】
b. 常見的進(jìn)制:
二進(jìn)制(0和1)
十進(jìn)制(0~9的整數(shù))
八進(jìn)制(0~7的整數(shù),用數(shù)字0開頭)
十六進(jìn)制(09和af【不區(qū)分大小寫】始衅,用0x或者0X開頭)
3.2 進(jìn)制的特點(diǎn)
a.每種進(jìn)制都有確定的符號集
b.每種進(jìn)制采用的是位置表示法冷蚂,位置不同,表示的意義不同汛闸,值的不同取決于它所在位的權(quán)值有關(guān)
舉例:
注意:下面的^表示的是次方
145:100 = 10^2
761:1 = 10^0
817:10 = 10^1
145 = 1x10^2 + 4x10^1 + 5x10^0
c.二進(jìn)制的計(jì)算
0+0=0
1+0=1
0+1=1
1+1= 10 【逢二進(jìn)一】
3.3 進(jìn)制之間的轉(zhuǎn)換
a.十進(jìn)制 -> 二進(jìn)制
轉(zhuǎn)換原理:對十進(jìn)制進(jìn)行除2的運(yùn)算蝙茶,直到商為0為止,然后將各個(gè)步驟中得到的余數(shù)倒著寫出來.
b.二進(jìn)制 -> 十進(jìn)制
轉(zhuǎn)換原理:將二進(jìn)制按照權(quán)展開诸老,相加即可得到十進(jìn)制
舉例:
110 = 1x2^2 + 1x2^1 + 0x2^0 = 4 + 2 = 6 10010110 = 1x2^7 + 1x2^4 + 1x2^2 + 1x2^1= 150
c.二進(jìn)制 -> 八進(jìn)制
轉(zhuǎn)換原理:每三位二進(jìn)制按權(quán)展開隆夯,相加得到1位八進(jìn)制,實(shí)現(xiàn)思路:從右向左進(jìn)行分組别伏,每3位為一組蹄衷,不足是補(bǔ)0,將每一組進(jìn)行二進(jìn)制轉(zhuǎn)換十進(jìn)制的14操作厘肮,最后將每一組得到的結(jié)果連起來
舉例:
10010110 -> 010 010 110 -> 2 2 6 -> 226 -> 0226
1010001 -> 001 010 001 -> 1 2 1 -> 121 -> 0121
d.二進(jìn)制 -> 十六進(jìn)制
轉(zhuǎn)換原理:每四位二進(jìn)制按權(quán)展開愧口,相加得到1位八進(jìn)制,實(shí)現(xiàn)思路:從右向左進(jìn)行分組类茂,每4位為一組耍属,不足是補(bǔ)0托嚣,將每一組進(jìn)行二進(jìn)制轉(zhuǎn)換十進(jìn)制的操作,最后將每一組得到的結(jié)果連起來
舉例:
10010110 -> 1001 0110 -> 9 6 -> 96 -> 0x96
1010001 -> 0101 0001 -> 5 1 -> 0x51
10111110 -> 1011 1110 -> 11 14 -> b e -> 0xbe
111011 -> 0011 1011 -> 3 11 -> 3 b -> 0x3b
e.十進(jìn)制 -> 八進(jìn)制或者十六進(jìn)制
轉(zhuǎn)換原理:
先將十進(jìn)制轉(zhuǎn)換為二進(jìn)制厚骗,然后再將二進(jìn)制轉(zhuǎn)換為八進(jìn)制或者十六進(jìn)制
f.八進(jìn)制或者十六進(jìn)制 -> 十進(jìn)制
轉(zhuǎn)換原理:
將八進(jìn)制或者十六進(jìn)制按照權(quán)展開示启,相加,類似于二進(jìn)制轉(zhuǎn)換為十進(jìn)制
3.4 原碼,反碼,補(bǔ)碼
a. 為什么會出現(xiàn)原碼反碼補(bǔ)碼领舰?
數(shù)值是正負(fù)之分的【原碼反碼補(bǔ)碼主要針對的是負(fù)數(shù)】
b. 原碼反碼補(bǔ)碼的表示
原碼:這個(gè)數(shù)的二進(jìn)制表示形式夫嗓,高位表示符號位,1表示負(fù)數(shù)提揍,0表示正數(shù)
0000 0110
反碼:將原碼除了符號位之外進(jìn)行取反【0 -> 1 , 1 -> 0】
補(bǔ)碼:在反碼的基礎(chǔ)上加1【0000 0001】
注意:對于一個(gè)正數(shù)而言啤月,原碼,反碼以及補(bǔ)碼都是同一個(gè)劳跃,都是這個(gè)數(shù)的二進(jìn)制表示形式
6 -> 0000 0110【原碼反碼補(bǔ)碼】
【面試題】計(jì)算機(jī)底層處理數(shù)據(jù)采用的原碼,反碼還是補(bǔ)碼浙垫?
10 + (-10) = 0 【0000 0000】
10:0000 1010 -10:1000 1010
驗(yàn)證:
?
原碼:
0000 1010
1000 1010
1001 0100 -> 結(jié)論:計(jì)算機(jī)底層處理數(shù)據(jù)的時(shí)候采用的不是原碼
反碼:
-10的反碼:1000 1010【原】 -> 1111 0101【反】
0000 1010
1111 0101
1111 1111 -> 計(jì)算機(jī)底層處理數(shù)據(jù)的時(shí)候采用的不是反碼
0000 0001【原】 -> 1000 0001【-1原】 -> 1111 1110【-1反】 -> 11111111【-1補(bǔ)】
?
補(bǔ)碼:
-10的補(bǔ)碼:1000 1010【原】 -> 1111 0101【反】 -> 1111 0110【補(bǔ)】
0000 1010
1111 0110
10000 0000 -> 1表示溢出
結(jié)論:在計(jì)算機(jī)的底層刨仑,處理數(shù)據(jù)采用的是補(bǔ)碼的形式</pre>
4.編碼
123 -10
中國 hello
在計(jì)算機(jī)底層,會存在映射表,則這個(gè)映射表被稱為編碼格式
假設(shè):
a----->1
b----->2
c----->3
h ---->10
abc----->123---->0001 0010 0011
ASCII碼:美國人用的編碼夹姥, 一個(gè)字節(jié)表示 128
32~126(共95個(gè))是字符(32是空格)杉武,其中48~57為0到9十個(gè)阿拉伯?dāng)?shù)字。
65~90為26個(gè)大寫英文字母辙售,97~122號為26個(gè)小寫英文字母轻抱,其余為一些標(biāo)點(diǎn)符號、運(yùn)算符號等旦部。
例如:
0的ASCII碼是48 a的ASCII碼是97 A的ASCII碼是65
GBK: 中文編碼
韓國祈搜, 日本
unicode: 國際編碼, 萬國碼
占用2個(gè)字節(jié)
utf-8 : 以后都是使用這個(gè)編碼, 國際編碼, 中文占3個(gè)字節(jié)士八,比較生疏的中文會占4個(gè)字節(jié)
結(jié)論:無論數(shù)字容燕,中文,英文或者特殊符號在計(jì)算機(jī)的底層都是轉(zhuǎn)化為了二進(jìn)制婚度,然后進(jìn)行存儲
5.存儲數(shù)據(jù)
a.計(jì)算機(jī)存儲數(shù)據(jù)的過程:
需要先在內(nèi)存中開辟空間蘸秘,然后將數(shù)據(jù)轉(zhuǎn)化成二進(jìn)制存入內(nèi)存. 計(jì)算機(jī)開辟內(nèi)存空間的最小單位為字節(jié)
四、開發(fā)前的準(zhǔn)備工作
1.版本問題
目前蝗茁,Python有兩個(gè)版本醋虏,Python2.x 和 Python3.x
注意:3.x不兼容2.x
2.環(huán)境安裝
環(huán)境:官網(wǎng)下載
注意:
a.可以選擇默認(rèn)路徑,也可以選擇自定義路徑哮翘,但是在選擇的時(shí)候颈嚼,勾選add Path【配置環(huán)境變量,好處:每次需要使用Python環(huán)境的時(shí)候忍坷,不需要每次都進(jìn)入到指定的目錄下,在任意的目錄下都可以直接訪問python.exe】
b.安裝軟件的時(shí)候粘舟,盡量在文件夾名稱中不要出現(xiàn)中文或者空格
3.編寫Python程序的工具
記事本【文本文檔】
notepad++ Editplus sublime等
PyCharm
Python
五熔脂、第一個(gè)Python程序
a, python文件以.py后綴結(jié)尾,創(chuàng)建名為hello.py文件
b, 在hello.py中輸入以下內(nèi)容
print("hello world")
c, 黑屏終端輸入python hello.py 執(zhí)行代碼
六、Python的編碼規(guī)范
a.在每個(gè)語句的后面不要添加分號柑肴,每行最好只書寫一條語句
b.括號的使用:運(yùn)算符中
c.Python中是通過縮進(jìn)【4個(gè)空格】來區(qū)分代碼塊的
d.盡量避免在文件名中出現(xiàn)中文和空格
七霞揉、注釋
注釋在編寫程序的時(shí)候,給代碼添加的一些解釋性的文字
作用:可以提高代碼的可讀性晰骑,以便于以后的參考或者修改
注釋是解釋性文本适秩,在運(yùn)行程序的時(shí)候,會被自動的跳過硕舆,不做處理
分類 ? 單行注釋:只能注釋掉單行的文字 #xxxxxxx
多行注釋【塊注釋】:三個(gè)單引號或者三個(gè)雙引號
注意:對于多行注釋秽荞,選用單引號或者雙引號都可以
如果單純使用雙引號,雙引號的注釋不能嵌套
中文的出現(xiàn)形式:字符串抚官,注釋