第一章 python基礎
第一章 python基礎
1.1 編程語言介紹
- 1.2 Python介紹
- 1.3 Python安裝
- 1.4 第一個Python程序
- 1.5 變量
- 1.6 程序交互
- 1.7 基本數據類型
- 1.8 格式化輸出
- 1.9 基本運算符
- 1.10 流程控制之 if ... else
- 1.11 流程控制之 循環
- 1.12 開發工具IDE
- 1.13 本章小節
- 1.14 Python開發規範指南
1.1編程語言介紹
什麽是編程?為什麽要編程?
答: 編程 是個動詞,編程==寫代碼,寫代碼為了什麽? 為了讓計算機幹你想要幹的事情,比如,馬化騰想跟別人聊天,於是寫了個聊天軟件,這個軟件就是一堆代碼的集合,這些代碼是什麽?這些代碼是計算機能理解的語言。
有哪些編程語言?
答:編程語言總體分以為機器語言、匯編語言、高級語言。
總結
機器語言
優點是最底層,速度最快,缺點是最復雜,開發效率最低
匯編語言
優點是比較底層,速度最快,缺點是復雜,開發效率最低
高級語言
編譯型語言執行速度快,不依賴語言環境運行,跨平臺差
解釋型跨平臺好,一份代碼,到處使用,缺點是執行速度慢,依賴解釋器運行
主流語言介紹
*2017年5月數據(https://www.tiobe.com/tiobe-index/ )
長期語言排名
下面介紹下幾個主流的編程語言:
C語言:
C語言是一種計算機程序設計語言,它既具有高級語言的特點,又具有匯編語言的特點。它由美國貝爾研究所的D.M.Ritchie於1972年推出,1978年後,C語言已先後被移植到大、中、小及微型機上,它可以作為工作系統設計語言,編寫系統應用程序,也可以作為應用程序設計語言,編寫不依賴計算機硬件的應用程序。它的應用範圍廣泛,具備很強的數據處理能力,不僅僅是在軟件開發上,而且各類科研都需要用到C語言,適於編寫系統軟件,三維,二維圖形和動畫,具體應用比如單片機以及嵌入式系統開發。
C++:
C++是C語言的繼承的擴展,它既可以進行C語言的過程化程序設計,又可以進行以抽象數據類型為特點的基於對象的程序設計,還可以進行以繼承和多態為特點的面向對象的程序設計。C++擅長面向對象程序設計的同時,還可以進行基於過程的程序設計,因而C++就適應的問題規模而論,大小由之。
C++不僅擁有計算機高效運行的實用性特征,同時還致力於提高大規模程序的編程質量與程序設計語言的問題描述能力。
JAVA:
Java是一種可以撰寫跨平臺應用軟件的面向對象的程序設計語言,是由Sun Microsystems公司於1995年5月推出的Java程序設計語言和Java平臺(即JavaSE, JavaEE, JavaME)的總稱。Java 技術具有卓越的通用性、高效性、平臺移植性和安全性,廣泛應用於個人PC、數據中心、遊戲控制臺、科學超級計算機、移動電話和互聯網,同時擁有全球最大的開發者專業社群。在全球雲計算和移動互聯網的產業環境下,Java更具備了顯著優勢和廣闊前景。
PHP:
PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本預處理器”)是一種通用開源腳本語言。語法吸收了C語言、Java和Perl的特點,利於學習,使用廣泛,主要適用於Web開發領域
Ruby:
Ruby 是開源的,在Web 上免費提供,但需要一個許可證。[4]
Ruby 是一種通用的、解釋的編程語言。
Ruby 是一種真正的面向對象編程語言。
Ruby 是一種類似於 Python 和 Perl 的服務器端腳本語言。
Ruby 可以用來編寫通用網關接口(CGI)腳本。
Ruby 可以被嵌入到超文本標記語言(HTML)。
Ruby 語法簡單,這使得新的開發人員能夠快速輕松地學習 Ruby
GO:
Go 是一個開源的編程語言,它能讓構造簡單、可靠且高效的軟件變得容易。
Go是從2007年末由Robert Griesemer, Rob Pike, Ken Thompson主持開發,後來還加入了Ian Lance Taylor, Russ Cox等人,並最終於2009年11月開源,在2012年早些時候發布了Go 1穩定版本。現在Go的開發已經是完全開放的,並且擁有一個活躍的社區。
由其擅長並發編程
Python:
Python是一門優秀的綜合語言, Python的宗旨是簡明、優雅、強大,在人工智能、雲計算、金融分析、大數據開發、WEB開發、自動化運維、測試等方向應用廣泛,已是全球第4大最流行的語言。
1.2 Python介紹
主要應用領域:
-
WEB開發——最火的Python web框架Django, 支持異步高並發的Tornado框架,短小精悍的flask,bottle, Django官方的標語把Django定義為the framework for perfectionist with deadlines(大意是一個為完全主義者開發的高效率web框架)
-
網絡編程——支持高並發的Twisted網絡框架, py3引入的asyncio使異步編程變的非常簡單
-
爬蟲——爬蟲領域,Python幾乎是霸主地位,Scrapy\Request\BeautifuSoap\urllib等,想爬啥就爬啥
-
雲計算——目前最火最知名的雲計算框架就是OpenStack,Python現在的火,很大一部分就是因為雲計算
-
人工智能——誰會成為AI 和大數據時代的第一開發語言?這本已是一個不需要爭論的問題。如果說三年前,Matlab、Scala、R、Java 和 Python還各有機會,局面尚且不清楚,那麽三年之後,趨勢已經非常明確了,特別是前兩天 Facebook 開源了 PyTorch 之後,Python 作為 AI 時代頭牌語言的位置基本確立,未來的懸念僅僅是誰能坐穩第二把交椅。
- 自動化運維——問問中國的每個運維人員,運維人員必須會的語言是什麽?10個人相信會給你一個相同的答案,它的名字叫Python
- 金融分析——我個人之前在金融行業,10年的時候,我們公司寫的好多分析程序、高頻交易軟件就是用的Python,到目前,Python是金融分析、量化交易領域裏用的最多的語言
- 科學運算—— 你知道麽,97年開始,NASA就在大量使用Python在進行各種復雜的科學運算,隨著NumPy, SciPy, Matplotlib, Enthought librarys等眾多程序庫的開發,使的Python越來越適合於做科學計算、繪制高質量的2D和3D圖像。和科學計算領域最流行的商業軟件Matlab相比,Python是一門通用的程序設計語言,比Matlab所采用的腳本語言的應用範圍更廣泛
- 遊戲開發——在網絡遊戲開發中Python也有很多應用。相比Lua or C++,Python 比 Lua 有更高階的抽象能力,可以用更少的代碼描述遊戲業務邏輯,與 Lua 相比,Python 更適合作為一種 Host 語言,即程序的入口點是在 Python 那一端會比較好,然後用 C/C++ 在非常必要的時候寫一些擴展。Python 非常適合編寫 1 萬行以上的項目,而且能夠很好地把網遊項目的規模控制在 10 萬行代碼以內。另外據我所知,知名的遊戲<文明>就是用Python寫的
Python發展前景:知乎上的一篇文章:https://www.zhihu.com/question/22112542/answer/166053516
Python的種類:
CPython
當我們從Python官方網站下載並安裝好Python 2.7後,我們就直接獲得了一個官方版本的解釋器:CPython。這個解釋器是用C語言開發的,所以叫CPython。在命令行下運行python就是啟動CPython解釋器。
CPython是使用最廣且被的Python解釋器。教程的所有代碼也都在CPython下執行。
IPython
IPython是基於CPython之上的一個交互式解釋器,也就是說,IPython只是在交互方式上有所增強,但是執行Python代碼的功能和CPython是完全一樣的。好比很多國產瀏覽器雖然外觀不同,但內核其實都是調用了IE。
CPython用>>>作為提示符,而IPython用In [序號]:作為提示符。
PyPy
PyPy是另一個Python解釋器,它的目標是執行速度。PyPy采用JIT技術,對Python代碼進行動態編譯(註意不是解釋),所以可以顯著提高Python代碼的執行速度。
絕大部分Python代碼都可以在PyPy下運行,但是PyPy和CPython有一些是不同的,這就導致相同的Python代碼在兩種解釋器下執行可能會有不同的結果。如果你的代碼要放到PyPy下執行,就需要了解PyPy和CPython的不同點。
Jython
Jython是運行在Java平臺上的Python解釋器,可以直接把Python代碼編譯成Java字節碼執行。
IronPython
IronPython和Jython類似,只不過IronPython是運行在微軟.Net平臺上的Python解釋器,可以直接把Python代碼編譯成.Net的字節碼。
1.3 Python的安裝
打開官網 https://www.python.org/downloads/windows/ 下載中心
測試安裝是否成功
windows --> 運行 --> 輸入cmd ,然後回車,彈出cmd程序,輸入python,如果能進入交互環境 ,代表安裝成功。
1.4 第一個Python程序
文件執行
- 用notepad++創建一個文件,輸入以下代碼
-
print("Hello World!") print("Python好簡單呀,我要學好掙大錢!")
- 保存為HelloWorld.py , 註意要強調.py後綴名的作用
- 進入cmd命令行,執行python HelloWorld.py, 看結果 (註意要解釋文件名前面加python 的原因是要把代碼交給python解釋器去解釋執行)
交互器執行
演示在python交互器下 ,輸出hello world !
要強調python交互器是主要用來對代碼進行調試用的
精通各種語言的Hello World
C++
#include <iostream>
int main(void)
{
std::cout<<"Hello world";
}
C
#include <stdio.h>
int main(void)
{
printf("\nhello world!");
return 0;
}
JAVA
public class HelloWorld{
// 程序的入口
public static void main(String args[]){
// 向控制臺輸出信息
System.out.println("Hello World!");
}
}
PHP
<?php
echo "hello world!";
?>
Ruby
日本人開發的,敏感時期容易挨K
puts "Hello world."
GO
package main
import "fmt"
func main(){
fmt.Printf("Hello World!\n God Bless You!");
}
1.5 變量
變量是什麽?
答:把程序運算的中間結果臨時存到內存裏,以備後面的代碼繼續調用,這幾個名字的學名就叫做“變量”
變量的作用:Variables are used to store information to be referenced and manipulated in a computer program. They also provide a way of labeling data with a descriptive name, so our programs can be understood more clearly by the reader and ourselves. It is helpful to think of variables as containers that hold information. Their sole purpose is to label and store data in memory. This data can then be used throughout your program.
聲明變量:
變量定義規則
- 變量名只能是 字母、數字或下劃線的任意組合
- 變量名的第一個字符不能是數字
- 以下關鍵字不能聲明為變量名[‘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‘]
常量
常量即指不變的量,如pai 3.141592653..., 或在程序運行過程中不會改變的量
舉例,假如老男孩老師的年齡會變,那這就是個變量,但在一些情況下,他的年齡不會變了,那就是常量。在Python中沒有一個專門的語法代表常量,程序員約定俗成用變量名全部大寫代表常量
1.6 程序的交互
註釋:代碼註釋分單行和多行註釋, 單行註釋用#
,多行註釋可以用三對雙引號""" """
代碼註釋原則:
- 不用全部加註釋,只需要在自己覺得重要或不好理解的部分加註釋即可
- 註釋可以用中文或英文,但絕對不要拼音噢(一旦用拼音,證明已經涼透了!)
1.7 基本數據類型
現在只說:數字、字符串、布爾類型(別的我也不會啊!)
數字:整型,長整型(註意:在Python3裏不再有long類型了,全都是int)
字符串:在Python中,加了引號的字符都被認為是字符串!
多引號什麽作用呢?作用就是多行字符串必須用多引號
字符串的拼接:能進行"相加"和"相乘"運算。註意,字符串的拼接只能是雙方都是字符串,不能跟數字或其它類型拼接。
布爾型(bool):爾類型很簡單,就兩個值 ,一個True(真),一個False(假), 主要用記邏輯判斷
1.7 基本數據類型
1.int整型、lomg長整型
註意:在Python3裏不再有long類型了,全都是int.
2.字符串:在Python中,加了引號的字符都被認為是字符串!(多引號什麽作用呢?作用就是多行字符串必須用多引號)。
字符串的拼接:只能進行“相加”和“相乘”(註意,字符串的拼接只能是雙方都是字符串,不能跟數字或其它類型拼接)。
布爾型:布爾類型很簡單,就兩個值 ,一個True(真),一個False(假), 主要用記邏輯判斷。
計算機為什麽要描述這種條件呢?因為接下來就可以根據條件結果來幹不同的事情啦呀!比如
if a > b
print(a is bigger than b )
else
print(a is smaller than b )
1.8格式化輸出
格式化輸出:
%s就是代表字符串占位符,除此之外,還有%d,是數字占位符, 如果把上面的age後面的換成%d,就代表你必須只能輸入數字啦。
input接收的所有輸入默認都是字符串格式!
要想程序不出錯,那怎麽辦呢?簡單,你可以把str轉成int
age = int( input("Age:") )
print(type(age))
肯定沒問題了。相反,能不能把數字轉成字符串呢?必然可以。
1.9 基本運算符
算數運算:
比較運算:
賦值運算
邏輯運算:
第一章 python基礎