1. 程式人生 > >Python 1

Python 1

python

python介紹

python是一種解釋型的,面對對象的。帶有動態語義的高級程序設計語言

python簡史

1989年,Guido(龜叔)為ABC 語言寫的一個插件。因Monty Python的喜劇團體的原因,故給這個語言起名為python。linux也是
1989年誕生的,1991年正式發布linux1.0內核;
1990年, 發布python的第一個版本;
2001年發布python2.0版本;
2010年獲年度Tiobe編程語言大獎,TIOBE網站;
TIOBE 編程語言社區排行榜是編程語言流行趨勢的一個指標,每月更新,這份排行榜排名基於互聯網上有經驗的程序員、課程和第三方廠商的數量。排名使用著名的搜 索 引擎 (諸如 Google、MSN、Yahoo!、Wikipedia、YouTube 以及 Baidu 等)進行計算。請註意這個排行榜只是反映某個編程語言的熱門程度,並不能說明一門編程語言好不好,或者一門語言所編寫的代碼數量多少。

2013年發布python3.x版本;


python的優點

創始人評價:簡單、優雅、明確
簡單體現在如果你的母語是英語,寫python腳本就像寫文章,很簡單;
優雅體現在python的格式,比如縮進來確定代碼塊,可避免編程人員進行復雜的嵌套;
明確體現在解決問題的方法只有一種最優選項,而perl語言是每個問題有很多最優解,但不利於團隊協作;
有強大的第三方庫模塊,需要實現一復雜功能,只需要調用現有的庫,可快速實現功能。20多年的發展,各種庫都已經完
備,比如:郵件庫,爬蟲庫......
可跨平臺移植,java有Java的虛擬機,python同樣;
是一種面向對象的語言;
是一種可擴展的語言(與C,C++,Java結合)



python的缺點

代碼執行速度慢,相比C語言,不過現在python的異步並發框架導致執行速度慢;
python是開源的編程語言,代碼不能加密,當然有相應的工具可以將python代碼轉換為exe的二進制可執行碼,但是反解碼也
很容易;



第一個python程序

技術分享


輸出中文

ASCII:美國人發明了計算機,用二進制存儲數據,英文字母加各個字符一共128個,每8位存儲一個字符,2^8=256,可通過 ord() 函數去查看字符對應的ASCII碼。

Unicode:但是ASCII碼忽略了中文,韓文,日文等其他國家的文字,這個時候256個字符的對應關系明顯是不夠用的,這時候就用兩個字節對應一個文字,2**16=65536.

UTF-8:英文字符明明可以通過一個字節存儲,Unicode卻需要2個字節來存儲,對於存儲比較小的計算機來說,是浪費很多不必要占用的空間,這個時候就出現utf-8。那麽什麽是utf-8呢?簡單來說就是可變長度編碼格式,英文字符用ASCII碼來存,而中文呢,就用utf-8來存,這個時候中文就不是兩個字節存儲,而是三個字節來存。

技術分享



ipython

技術分享



pycharm

技術分享




python編程風格
python簡潔明了的編程格式,如果不按照python既定的格式進行編寫程序,直接報錯,所以說,剛開始編寫python代碼會常常報錯。這裏我就用C語言和python語言做簡單的比較。

C語言顯示 hello world
#include <stdio.h>

void hello()
{
printf("hello!\n");
}

void main()
{
hello();
}
從上面的代碼我們會發現,C代碼塊是通過花括號 {} 做以區別。

python顯示 hello world
#!/usr/bin/env python
def hello():
print "hello world"

def main():
hello()

main()

根據上面的兩個不同編程語言實現同一功能的分析,總結python編程初級要掌握的編程風格如下:
不要在行尾加分號;
每行不超過80個字符;
Python語言利用縮進表示語句塊的開始和退出(Off-side規則),而非使用花括號或者某種關鍵字。
增加縮進表示語句塊的開始,而減少縮進則表示語句塊的退出。縮進成為了語法的一部分。


輸入與輸出
輸出: 告訴用戶程序執行的結果
輸入: 告訴計算機程序所需的信息

技術分享


變量
變量是內存中的一塊區域。
變量的命名: 變量名由字母,數字,下劃線組成。
>>> a=1
>>> print a
1
>>> a_1 = 111
>>> _a = 222
>>> print _a
222
>>> 1a = 111
File "<stdin>", line 1
1a = 111
^
SyntaxError: invalid syntax //指語法錯誤,無效的語法


>>> a = 5
>>> b = 3>>> print a + b
8
>>> print a + b +c
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name ‘c‘ is not defined //名稱錯誤
變量的特性:
實際存儲在內存上;
變量名最好見名知意;
變量可重新賦值;
>>> number1 = 1
>>> number2 = 2
>>> number1 + number2
3
python中地址變量與c語言剛好相反,一條數據包含包含多個標簽;
>>> a = 1
>>> b = 1
>>> id(a)
10812520
>>> id(b)
10812520




運算符與表達式
賦值運算符:=, +=, -=, /=, *=, %=
算術運算符:+, -, , /, //, %, *

技術分享




基本數據類型

數字

整型

技術分享


長整型

技術分享

強制定義為長整型

技術分享

浮點數:表示小數

技術分享


復數類型

技術分享


字符串

字符串的定義

# 字符串定義的第一種方式:
>>> str1 = ‘our company is westos‘

# 字符串定義的第二種方式:
>>> str2 = "our company is westos"

# 字符串定義的第三種方式:
>>> str3 = """our company is westos"""

>>> type(str1)
<type ‘str‘>
>>> type(str2)
<type ‘str‘>
>>> type(str3)
<type ‘str‘>


>>> say = ‘let\‘s go‘>>> say
"let‘s go"
>>> say = "let‘s go "
>>> say
"let‘s go "
轉義符號
>>> mail = "tom: hello i am westos "
>>> print mail
tom: hello i am westos
>>> mail = "tom:\n hello\n i am westos "
>>> print mail
tom:
hello
i am westos
三重引號
塊註釋
函數的doc文檔
字符串格式化
>>> mail = """tom:
... i am jack
... good luck
... """
>>> print mail
tom:
i am jack
good luck
>>> mail
‘tom:\n\ti am jack\n\tgood luck\n‘


字符串索引

技術分享


字符串切片

技術分享





Python 1