python的創始人爲吉多·範羅蘇姆(Guido van Rossum)。1989年的聖誕節期間,吉多·範羅蘇姆爲了在阿姆斯特丹打發時間,決心開發一個新的腳本解釋程序,做爲ABC語言的一種繼承。php
Python社區的人賦予他「仁慈大君」 的稱號,這一稱號直接來自英國肥皂劇《Monty Python飛行馬戲團》。Guido當初之因此選中Python做爲語言的名字,是由於他太喜歡這部肥皂劇了。html
引用一段《python基礎教程》開場白:java
編寫C程序就像一羣人拿着剃刀在剛打過蠟的舞場內跳快舞python
------Walidi Ravenslinux
C++:難學更難用,設計如此c++
------匿名shell
在不少方面,Java就是C++ 編程
------Michael Feldmanswift
如今請看一種史無前例的表演......vim
------Monty Python的表演《飛行的馬戲團》
https:
/
/
www.python.org
/
downloads
/
windows:
linux:
查看默認Python版本 python -V 一、安裝gcc,用於編譯Python源碼 yum install gcc 二、下載源碼包,https://www.python.org/ftp/python/ 三、解壓並進入源碼文件 四、編譯安裝 ./configure make all make install 五、查看版本 /usr/local/bin/python2.7 -V 六、修改默認Python版本 mv /usr/bin/python /usr/bin/python2.6 ln -s /usr/local/bin/python2.7 /usr/bin/python 七、防止yum執行異常,修改yum使用的Python版本 vi /usr/bin/yum 將頭部 #!/usr/bin/python 修改成 #!/usr/bin/python2.6
windows:
推薦Notepad++ ,不要用Word和Windows自帶的記事本。Word保存的不是純文本文件,而記事本會自做聰明地在文件開始的地方加上幾個特殊字符(UTF-8 BOM),結果會致使程序運行出現莫名其妙的錯誤!
linux:
# vim hello.py # python hello.py Hello World!
上一步中執行 python hello.py 時,明確的指出 hello.py 腳本由 python 解釋器來執行。
若是想要相似於執行shell腳本同樣執行python腳本,例: ./hello.py
,那麼就須要在 hello.py 文件的頭部指定解釋器,以下:
#!/usr/bin/env python #The first code print "hello,world"
ps:執行前需給予 hello.py 執行權限,chmod 755 hello.py
Python在執行時,解釋器會將.py文件中的源代碼編譯成Python的byte code(字節碼),而後再執行這些編譯好的byte code。
對比下其它語言的hello world
需經過編譯器(compiler)將源代碼編譯成機器碼,以後才能執行的語言。通常需通過編譯(compile)、連接(linker)這兩個步驟。編譯是把源代碼編譯成機器碼,連接是把各個模塊的機器碼和依賴庫串連起來生成可執行文件。
優勢:編譯器通常會有預編譯的過程對代碼進行優化。 由於編譯只作一次,運行時不須要編譯,因此編譯型語言的程序執行效率高 。能夠脫離語言環境獨立運行。
缺點:編譯以後若是須要修改就須要整個模塊從新編譯。編譯的時候根據對應的運行環境生成機器碼,不一樣的操做系統之間移植就會有問題,須要根據運行的操做系統環境編譯不一樣的可執行文件。
表明語言:C、C++、 Pascal、Object-C以及最近很火的蘋果新語言swift
解釋性語言的程序不須要編譯,相比編譯型語言省了道工序,解釋性語言在運行程序的時候才逐行翻譯。
優勢:有良好的平臺兼容性,在任何環境中均可以運行,前提是安裝瞭解釋器(虛擬機)。靈活,修改代碼的時候直接修改就能夠,能夠快速部署,不用停機維護。
缺點:每次運行的時候都要解釋一遍,性能上不如編譯型語言。
表明語言:JavaScript、Python、Erlang、PHP、Perl、Ruby
既然編譯型和解釋型各有缺點就會有人想到把兩種類型整合起來,取其精華去其糟粕。就出現了半編譯型語言。好比C#,C#在編譯的時候不是直接編譯成機器碼而是中間碼,.NET平臺提供了中間語言運行庫運行中間碼,中間語言運行庫相似於Java虛擬機。我我的認爲拋開一切的偏見C#是這個星球上最好的編程語言。惋惜微軟的政策限制了C#的推廣。
Java先生成字節碼再在Java虛擬機中解釋執行。
嚴格來講混合型語言也屬於解釋型語言。
單行注視:# 被註釋內容
多行註釋:""" 被註釋內容 """
# 井號能夠註釋單行代碼 """ 3個雙引號或者單引號 能夠註釋多行內容 """
變量能夠用來存儲數據和被程序調用,它由名字和值兩部分組成,能夠把它想象成一個容器,容器的名字和值會被保存在內存中。
#_*_coding:utf-8_*_ name = "Alex Li" age = 18 sales = 4432.67 / 1.20
變量定義的規則:
name = "Alex Li" name2 = name print(name,name2) name = "Jack" print("What is the value of name2 now?")
輸出:
在print()
括號中加上字符串,就能夠向屏幕上輸出指定的文字。
print('hello, python')
print()
函數也能夠接受多個字符串,用逗號「,」隔開,就能夠連成一串輸出:
name = 「france」 print(「my name is :」,name)
print()
會依次打印每一個字符串,遇到逗號「,」會輸出一個空格。
輸入:
Python提供了一個input()
,可讓用戶輸入字符串
#!/usr/bin/env python print "你好,世界"
錯誤緣由:python解釋器在加載 .py 文件中的代碼時,會對內容進行編碼(默認ASCII碼),但ASCII不支持中文。
字符編碼:
字符編碼(英語:Character encoding)、字集碼是把字符集中的字符編碼爲指定集合中某一對象(例如:比特模式、天然數序列、8位組或者電脈衝),以便文本在計算機中存儲和經過通訊網絡的傳遞。常見的例子包括將拉丁字母表編碼成摩斯電碼和ASCII。其中,ASCII將字母、數字和其它符號編號,並用7比特的二進制來表示這個整數。一般會額外使用一個擴充的比特,以便於以1個字節的方式存儲。
ASCII
ASCII(American Standard Code for Information Interchange,美國標準信息交換代碼)是基於拉丁字母的一套電腦編碼系統,主要用於顯示現代英語和其餘西歐語言,其最多隻能用 8 位來表示(一個字節),即:2**8 = 256-1,因此,ASCII碼最多隻能表示 255 個符號。ASCII規範標準在1967發表,最後一次更新則是在1986年。至今爲止共定義了128個字符。
GB2312/GBK/GB18030
GB 2312 是中國國家標準簡體中文字符集,全稱《信息交換用漢字編碼字符集·基本集》,又稱GB0,由中國國家標準總局在1981年發佈實施。GB 2312標準共收錄6763個漢字。
GBK即漢字內碼擴展規範。共收入21886個漢字和圖形符號。
GB 18030與GB 2312-1980徹底兼容,與GBK基本兼容,支持GB 13000及Unicode的所有統一漢字,共收錄漢字70244個。
各國語言編碼
http://blog.csdn.net/miqi770/article/details/43935273
Unicode
Unicode(中文:萬國碼、國際碼、統一碼、單一碼)是計算機科學領域裏的一項業界標準。它對世界上大部分的文字系統進行了整理、編碼,使得電腦能夠用更爲簡單的方式來呈現和處理文字。
Unicode伴隨着通用字符集的標準而發展,同時也以書本的形式[1]對外發表。Unicode至今仍在不斷增修,每一個新版本都加入更多新的字符。目前最新的版本爲2016年6月21日公佈的9.0.0[2],已經收入超過十萬個字符(第十萬個字符在2005年獲採納)。Unicode涵蓋的數據除了視覺上的字形、編碼方法、標準的字符編碼外,還包含了字符特性,如大小寫字母。
UTF-8
UTF-8(8-bit Unicode Transformation Format)是一種針對Unicode的可變長度字符編碼,也是一種前綴碼。它能夠用來表示Unicode標準中的任何字符,且其編碼中的第一個字節仍與ASCII兼容,這使得原來處理ASCII字符的軟件無須或只須作少部分修改,便可繼續使用。所以,它逐漸成爲電子郵件、網頁及其餘存儲或發送文字的應用中,優先採用的編碼。
UTF-8使用一至六個字節爲每一個字符編碼(儘管如此,2003年11月UTF-8被RFC 3629從新規範,只能使用原來Unicode定義的區域,U+0000到U+10FFFF,也就是說最多四個字節)
改正:應該顯示的告訴python解釋器,用什麼編碼來執行源代碼,即:
#!/usr/bin/env python # -*- coding: utf-8 -*- print "你好,世界"
場景1、用戶登錄驗證
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
# 提示輸入用戶名和密碼
# 驗證用戶名和密碼
# 若是錯誤,則輸出用戶名或密碼錯誤
# 若是成功,則輸出 歡迎,XXX!
#!/usr/bin/env python
# -*- coding: encoding -*-
import
getpass
name
=
raw_input
(
'請輸入用戶名:'
)
pwd
=
getpass.getpass(
'請輸入密碼:'
)
if
name
=
=
"alex"
and
pwd
=
=
"cmd"
:
print
(
"歡迎,alex!"
)
else
:
print
(
"用戶名和密碼錯誤"
)
|
場景2、猜年齡遊戲
在程序裏設定好你的年齡,而後啓動程序讓用戶猜想,用戶輸入後,根據他的輸入提示用戶輸入的是否正確,若是錯誤,提示是猜大了仍是小了
最簡單的循環10次
1
2
3
4
5
6
|
#_*_coding:utf-8_*_
__author__
=
'Alex Li'
for
i
in
range
(
10
):
print
(
"loop:"
, i )
|
輸出:
1
2
3
4
5
6
7
8
9
10
|
loop:
0
loop:
1
loop:
2
loop:
3
loop:
4
loop:
5
loop:
6
loop:
7
loop:
8
loop:
9
|
需求一:仍是上面的程序,可是遇到小於5的循環次數就不走了,直接跳入下一次循環
1
2
3
4
|
for
i
in
range
(
10
):
if
i<
5
:
continue
#不往下走了,直接進入下一次loop
print
(
"loop:"
, i )
|
需求二:仍是上面的程序,可是遇到大於5的循環次數就不走了,直接退出
1
2
3
4
|
for
i
in
range
(
10
):
if
i>
5
:
break
#不往下走了,直接跳出整個loop
print
(
"loop:"
, i )
|
有一種循環叫死循環,一經觸發,就運行個天荒地老、海枯石爛。
海枯石爛代碼
1
2
3
4
5
|
count
=
0
while
True
:
print
(
"你是風兒我是沙,纏纏綿綿到天涯..."
,count)
count
+
=
1
|
其實除了時間,沒有什麼是永恆的,死loop仍是少寫爲好
上面的代碼循環100次就退出吧
回到上面for 循環的例子,如何實現讓用戶不斷的猜年齡,但只給最多3次機會,再猜不對就退出程序。
做業一:博客
做業二:編寫登錄接口